PowerDesigner中的对象与关系映射建模

PowerDesigner中的对象与关系映射建模
PowerDesigner中的对象与关系映射建模

PowerDesigner中的对象与关系映射建模

Sybase 公司PowerDesigner上海研发中心余亚,王晓昀

概述

从80年代中期开始,随着C++语言的成功,面向对象语言已经成为软件开发中的主导语言。现在很多商用软件,尤其是企业信息系统,都是使用面向对象语言进行开发的。应用面向对象方法,我们通过类来抽象不同类别的实体,属性来表示实体的静态特征,关联来抽象实体间的联系,继承来抽象类别的包含关系。

很多的应用程序都需要进行数据存储,关系型数据库是最常用的数据管理系统。在关系型数据库中,表、列和外键是抽象数据的基本元素。关系型数据库是建立在关系计算和布尔代数基础之上的,SQL是数据库的操作语言,通过关系运算,连接、联合等,来操作数据。

我们很容易的看出,面向对象模型和关系模型是不完全匹配的。比如

1. 对象可以存储到多张表,表也可以存储多个类的对象。

2. 对象之间的关系是双向的,而表之间的关系是单向的。

3. 对象之间有继承关系,表之间没有。

为了解决这种不匹配,人们定义了很多映射模式来建立两种模型间的对应关系。这些映射模式逻辑上解决了模型间的不匹配,使得面向对象程序能够正确地和关系关系型数据库进行交互,但是对于程序的开发,仍然有很多问题需要解决。

问题

对于设计人员来说,他们需要找到并且描述这两种模型元素间的映射关系,以便编程人员能够正确地实现数据的存储和查询。现在很多建模工具仅提供其中一种模型的支持,比如Together仅支持对象建模,ERWin仅支持数据建模。即使同时支持两种模型,这种支持也很不完整,比如Rose中的数据建模功能。分析设计人员常常需要两种不同的工具来进行建模,如果他们想描述这两种模型元素间的对应关系,他们只能通过文档或者表格的形式。这很容易产生错误,并且如果模型发生改变,这些文档需要手工更改,容易造成不一致,维护起来很困难。

对于编码人员,他们需要应用某种技术来实现模型的这种对应关系。如果通过语言提供的数据库访问接口,比如Java 的JDBC或者.Net的https://www.360docs.net/doc/6c3117493.html,,对于每一个对象的每一个存储操作,编码人员需要编写存取操作的SQL,数据库控制和访问代码,这是一项繁琐、重复性的劳动。即使应用O/R 映射的框架,比如Hibernate, EJB 3.0或者.Net平台的NHibernate,他们需要编写映射文件或者通过标记来定义O/R映射框架所需要的映射元数据。这些映射元数据只不过是我们在设计阶段定义的映射关系另外一种表现方式,转换成XML或者标记的方式,无疑这种转换增加了错误的可能性和维护的难度。

PowerDesigner解决之道

PowerDesigner提供对于多达8种模型的支持,其中包括面向对象模型和关系数据模型。作为一个集成的企业建模工具,PowerDesigner并不是简单的将几种模型工具罗列在一起。各种模型相互之间可以建立关联,通过这种关联,它提供了企业模型统一、一致的视图。其中模型间的映射和自动生成是建立模型间关联重要的手段。

模型可以描述系统的静态特征和动态特征,而静态特征可以用来表述系统的持久状态,比如面向对象模型中的实体类,数据库模型的表,XML模型中的元素节点等。在PowerDesigner中,我们可以在各种可以描述持久状态模型间建立映射,比如XML模型到面向对象模型间的映射,面向对象模型到关系数据模型的映射等。下面我们就来看一下,PowerDesigner 是如何支持面向对象模型到关系模型的映射的。

1.1 对象/关系映射

下表列出了PowerDesigner中面向对象元素和关系模型元素间的对应关系:

OOM 元素PDM 元素

域域

类表

接口无

属性列

标识符键

操作(具有存储过程范型)存储过程

操作(具有存储功能范型)存储功能

关联外键或者表

关联类表和两个指向关联的类所生成表的外键

继承表或者外键

依赖无

实现无

引用无

在PowerDesigner中,我们可以通过三种方式来建立面向对象模型和关系模型间的映射:

1. 手工建立映射。

2. 自动模型生成。

它们分别适用于不同的开发需求,下面我们就来看如何通过这两种方式来建立映射。

1.2 手工建立映射

这种方式适用于以下几种情况:

1. 在已经存在的模型间建立映射。企业的信息系统是一个异构的环境,很多应用程序和数据库都是独立开发的,它们具有不同的模型,如果它们之间需要进行数据交互,则需要建立它们之间的映射,比如新的ERP系统中和企业原有的数据库间的映射。

2. 数据库和程序由不同的组负责设计。大型的企业应用程序可能包含很多业务子系统,每个业务子系统只考虑如何实现它自己的业务需求,而数据库设计要从整体出发,考虑整个应用程序的需求。对于每个业务模块,需要定义它的逻辑模型和数据库模型间的映射。

在建立映射之前,我们需要给面向对象模型创建数据源,然后添加要映射的数据库模型。表1中可以映射的面向对象元素

都有一个映射的定义窗口,比如下图所示的类的映射属性页。通过这个映射属性页,用户可以添加或者删除对应的数据库模型元素,这些元素只能是表1中该元素对应的类型。

像其他模型的元数据一样,PowerDesigner会把映射元数据存储在模型中,映射元数据通过快捷方式来记录对应的模型元素。如果对应的模型发生改变,比如表的名称发生改变,对于映射元数据没有影响。当用户需要得到对应元数据的属性的时候,PowerDesigner会解析快捷方式,找到目标元素,用户得到的是当前元素的信息,对比于文档或者表格,这种方式提高了一致性和可维护性。而且PowerDesigner提供了变更影响分析视图,它可以帮助用户在变更之前分析可能产生的影响,比如在改变列的类型之前,用户可以了解到是否会造成映射到此列的属性类型的不匹配。

也许用户认为这种操作方式太复杂,用户需要切换到每个面向对象的窗口来定义它的映射。从PowerDesigner 12开始,用户可以通过另外一种更加便捷的方式,映射编辑器,来定义元素间的映射关系。映射编辑器提供了一种All-In-One的操作方式,通过元模型和目标模型的树状视图,用户可以方便的通过托拽的方式来定义所有的映射。

1.3 模型自动生成

在很多时候我们要开发一个全新的系统,而数据库仅仅考虑这个系统的数据管理需求,或者开发新的应用程序访问已有的数据库。采用面向对象方法的软件开发通常采用自顶向下的开发过程,先建立企业的应用模型,然后再进行数据库设计。用户也可以采用自底向上的开发过程,也就是以数据为中心的开发过程,先进行数据库设计,或者应用已有的数据库模型,

再设计应用程序模型。

既然我们定义了模型间映射模式,如果有了一种模型,为什么不能自动生成另外一模型,并且建立它们间的映射。PowerDesigner就提供了这种模型的自动生成功能,使得用户能够重用现有的模型,方便的生成目标模型。对于面向对象模型和数据库模型来说,这种自动生成功能是双向的,即可以通过面向对象模型来生成数据库模型,也可以通过数据库模型来生成面向对象模型。

1.3.1 自动生成数据库模型

这种模式适合于自顶向下的开发过程,即先建立应用程序模型,再设计数据库。我们可以应用PowerDesigner提供的转换模式,将应用程序模型中描述持久信息的面向对象元素,实体类、关联、继承,生成数据库模型对应的元素。

根据已经被证明的映射模式,PowerDesigner提供了一些缺省的转换模式,用户也可以定制转换模式来控制生成过程

1.3.1.1 基本转换模式

1. 类

用户可以通过类的持久属性和生成类型来控制类的自动转换,PowerDesigner仅会自动转换持久的类。转换的类型有表、迁移列和抽象数据类型,其中表和抽象数据类型都容易理解,迁移列主要控制继承中类的转换,我们会在继承转换中详细讨论它的用法。用户还可以指定生成表的名称。

2. 属性

如果持久类的生成类型不是抽象数据类型,PowerDesigner会将该类中的持久属性转换成表的列。PowerDesigner提供了一些缺省的转换模式,比如数据类型的对应关系。用户可以定制转换的过程,他可以定义生成列的一些属性,名称、类型、长度等。

3. 标识符

持久类的标识符会被转换成表的键,主标识符会被转换成主键。

4. 操作

如果持久类的操作具有存储过程或者存储函数的范型,相应的存储过程或者存储函数会被生成。

1.3.1.2 关联转换

PowerDesigner会根据关联生成外键和表,支持所有的关联映射模式。

关联转换规则

一对一对于单向的关联,一个外键会生成,外键的方向和关联的方向一致,父表的主键会迁移到子表中作为外键。对于双向的关联,两个外键会被生成,用户需要手动删除其中的一个

一对多

不管单项还是双向,只有一个外键被生成,多端持久类生成的表为子表,父表

的主键会迁移到子表中作为外键

一对多迁移主键

这是一对多关联的变体,如果一对多关联具有组合并且由一端包含多端,那么

被迁移到子表的列同时又会是主键的一部分

多对多

会生成一个中间关联表和两个外键,其中两端持久类的表的主键会迁移到关联

表中作为主键和外键,两个外键由中间关联表分别指向它们

用户可以通过端点的度来控制外键是否为必需的,如果子表对应的持久类端的最小度为1,那么外键为必需的,即子表的外键列是非空的;如果为0,那么外键为可选的。

1.3.1.3 继承转换

PowerDesigner会将继承转换成表和关联,用户通过基本映射中提到的生成类型来控制转换,生成类型表表示对于该持久类单独的表会生成,生成类型迁移列表示该类属性生成的列会存在于其他类生成的表中,没有单独的表会被生成。

映射模式说明设定

继承层次到单表映

射整个继承层次会被转换成一张表,通过

表中的分类列来区分不同的类

根类生成类型为表,其他所有子类

的生成类型为迁移列,根类需要设

置主标识符

每类一表映射对于继承层次中的每一个类,单独的表

会被生成,子类的表和父类的表通过外

键关联,外键的列同时作为子类表的主

所有类的生成类型为表,根类需要

设置主标识符

每具体类一表映射只有继承层次中的叶子节点类会被转

换成表,每一个非叶子节点类属性生成

的列会被迁移到叶子类的表

所有非叶子节点子类的生成类型为

迁移列,叶子节点的生成类型为表,

根类需要设置主标识符

PowerDesigner也支持混合映射模式的转换,不过这种转换并不常用,用户可以参考PowerDesigner的文档查看详细用法。

1.3.1.4 其他映射模式的支持

PowerDesigner还可以通过嵌入来支持细粒度的转换。比如,在员工信息类中,我们有一个属性家庭住址,该属性是对象类型,类型为地址类。我们不想为地址类单独生成表,只想把它嵌入到员工信息表中。在PowerDesigner中,我们可以通过,设置属性的类生成类型为嵌入来实现这一点。

1.3.2 自动生成面向对象模型

PDM到OOM的转换适合于自底向上的开发过程,对于以数据为中心的应用系统或者访问已有数据库上的应用系统,这种转换是非常有用的。PDM到OOM的转换类似于OOM到PDM转换的逆过程,PowerDesigner会把PDM中的元素转换成OOM中对应的元素。但是其中继承的转换是不可逆的,因为PDM中没有子类的概念,所以用户需要手工更改生成后的对象模型。

1.3.3 模型和并

PowerDesigner提供了模型合并功能,支持迭代式的模型自动转换。自动生成的目标模型并不一定完全满足我们的需要,我们常常要对它进行修改,但是源模型也发生了改变,有时我们既想同步目标模型和源模型,又想保持我们对目标模型所作的修改,这时模型的合并显得非常重要。通过PowerDesigner的模型合并窗口,用户可以了解到重新生成的模型和当前

的目标模型的差异,从而可以根据自己的需要,选择是否保持或者覆盖以前的模型。

用户还可以通过PowerDesigner的流体模型了解源模型和目标模型间的转换关系。

1.4 自动代码生成

从上面可以看到,通过PowerDesigner,设计人员可以方便的完成应用程序的设计、数据库设计以及O/R映射定义,那么编程人员通过编码实现这些设计。对于O/R映射的实现,我们可以看到,不管使用什么技术,编码人员都需要进行大量的工作。

我们知道MDA的目标就是把现有的以代码为中心的开发模式转换成以模型为中心的开发模式,让模型生成代码,把开发人员从繁琐的编码工作中解放出来,从而专注于系统的架构和业务逻辑上。PowerDesigner通过其可扩展性提供了对于MDA的支持。在PowerDesigner中,所有的模型都是通过元模型进行描述的,可以通过GTL(通用模板语言)和VBScript 来访问这些元模型。那么我们可以通过元模型的信息来做他想要做的事,包括自动代码生成。

PowerDesigner已经提供了对于主要持久化技术的支持,Hibernate、EJB 3、NHibernate、https://www.360docs.net/doc/6c3117493.html,等,用户可以直接使用这些扩展模型。除了O/R映射实现代码,这些扩展模型还可以生成测试代码,方便用户对生成的代码进行测试。用户只需要添加相应的扩展模型,并且通过扩展属性设置特定扩展模型所需的信息,就可以实现自动代码生成。下图是应用Hibernate扩展模型生成映射文件的预览窗口。

用户也可以对这些扩展模型进行定制或者开发他自己的扩展模型,以满足自己的需要。关于如何扩展PowerDesigner,可以参阅PowerDesigner用户文档和高级使用手册。

结论

我们可以看出,通过PowerDesigner的模型映射,设计人员可以很方便的定义O/R映射,不管是手工的方式还是通过自动模型转换。O/R映射元数据同模型保存在一起,保证了一致性,方便的和模型同步,提高了可维护性。通过自动代码生成,编码人员不再需要进行繁琐、重复性的劳动,提高了开发的生产率。

出师表

两汉:诸葛亮

先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也。

宫中府中,俱为一体;陟罚臧否,不宜异同。若有作奸犯科及为忠善者,宜付有司论其刑赏,以昭陛下平明之理;不宜偏私,使内外异法也。

侍中、侍郎郭攸之、费祎、董允等,此皆良实,志虑忠纯,是以先帝简拔以遗陛下:愚以为宫中之事,事无大小,悉以咨之,然后施行,必能裨补阙漏,有所广益。

将军向宠,性行淑均,晓畅军事,试用于昔日,先帝称之曰“能”,是以众议举宠为督:愚以为营中之事,悉以咨之,必能使行阵和睦,优劣得所。

亲贤臣,远小人,此先汉所以兴隆也;亲小人,远贤臣,此后汉所以倾颓也。先帝在时,每与臣论此事,未尝不叹息痛恨于桓、灵也。侍中、尚书、长史、参军,此悉贞良死节之臣,愿陛下亲之、信之,则汉室之隆,可计日而待也。

臣本布衣,躬耕于南阳,苟全性命于乱世,不求闻达于诸侯。先帝不以臣卑鄙,猥自枉屈,三顾臣于草庐之中,咨臣以当世之事,由是感激,遂许先帝以驱驰。后值倾覆,受任于败军之际,奉命于危难之间,尔来二十有一年矣。

先帝知臣谨慎,故临崩寄臣以大事也。受命以来,夙夜忧叹,恐托付不效,以伤先帝之明;故五月渡泸,深入不毛。今南方已定,兵甲已足,当奖率三军,北定中原,庶竭驽钝,攘除奸凶,兴复汉室,还于旧都。此臣所以报先帝而忠陛下之职分也。至于斟酌损益,进尽忠言,则攸之、祎、允之任也。

愿陛下托臣以讨贼兴复之效,不效,则治臣之罪,以告先帝之灵。若无兴德之言,则责攸之、祎、允等之慢,以彰其咎;陛下亦宜自谋,以咨诹善道,察纳雅言,深追先帝遗诏。臣不胜受恩感激。

今当远离,临表涕零,不知所言。

powerdesigner使用心得

PowerDesigner使用心得 PowerDesigner想必没人不知道吧?著名的CASE工具,目前最新版本为15.2,用于软件建模,可以从需求直到物理模型,支持UML2.0语法,可用于UML图绘制。最大特色是能够使设计到实现无缝衔接,如:概念模型->逻辑模型->物理模型,概念模型->OOM,而且能够生成多种DBMS的脚本或代码脚本。 1 name/code默认总是一起修改,很烦躁,在tool ->general options,取消即可。 2 概念模型->物理模型转换,会为“1对1”关系自动生成两条引用,每次都要手工删除,很麻烦。在概念模型中为关系指定dominant role即可。

3 设定计算列,在物理模型中选择某个列,勾选computed,然后在detail中设置计算表达式即可 修改表达式,可引用表中的其他列。

4 设定列中数据为自增量类型,勾选列属性中的identity。 5 修改某个列的数据类型后,使用它做外键的表中相应数据类型并不会变化,如果被引用的地方多,那修改起来可是一个大工程,而且容易出错,此时可在check model设置为自动修正。

6 PD无法直接生成GUID类型的测试数据,GUID 的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每个 x 是 0-9 或 a-f 范围内的一个十六进制的数字。例如: 6F9619FF-8B86-D011-B42D-00C04FC964FF 即为有效的 GUID 值。默认DBMS配置文件有问题,需要修改数据类型为VA36(= varchar(36) )、长度为36位( 32位16进制数字 + 4个“-”)。Database->edit current DBMS,修改PhysDataType中uniqueidentifier的内容为VA36.也可下载补丁: https://www.360docs.net/doc/6c3117493.html,/source/2284780

PowerDesigner15.1使用手册

一、PowerDesigner简介 1.1常用模型文件 公司主要使用PowerDesigner的以下两类模型文件: 逻辑模型(CDM):描述了与任何软件和数据存储系统无关的数据库整体逻辑结构,通常包含了与物理数据库无关的数据对象,提供了一种描述企业运行或业务行为的 形象化的表达方式。 物理模型(PDM):叙述数据库的物理实现。主要目的是把CDM中建立的现实世界模型生成特定的DBMS脚本,产生数据库中保存信息的储存结构,保证数据在 数据库中的完整性和一致性。

1.2PowerDesigner使用环境 树形模型管理器:以树形方式展示模型所包含的内容以及内容之间的层次关系 图表窗口:组织模型中的图表,以图形方式展示模型中各对象之间的关系 输出窗口:显示操作结果 常用工具面板:用于在图表窗口插入对象的常用工具,主要有以下一些:

二、创建和管理CDM 1.1 新建CDM 1.选择菜单栏File->New,打开New窗口

2.在左边模型类型(Model type)列表中,选中Conceptual Data Model,单击“确认” 按钮即新建了一个默认名为ConceptualDataModel_1的CDM工程

3.在树形模型管理器中,右键单击新建的CDM工程名,从出现的菜单中选中Rename, 即可将新建CDM工程名修改为自己想要的,如:NG-CRM5.5逻辑模型 4.在树形模型管理器中,右键单击新建的CDM工程名,从出现的菜单中选择 New->Package即可新建一个包(Package)。Package用于对一个CDM工程的图表按照业务等规则分类存放,如NG-CRM5.5数据模型分为客户域、用户域、帐户域等多个域

三维建模第06周 创建复合对象(第21-24课)

第五章创建复合对象 教学目标: 掌握3dsmax2012中各种复合对象的创建命令及方法 请学生上台演示:竹篮模型制作 教学内容: 5.1创建复合对象 将多个对象组合成一个对象的建模方法。3ds Max 2012提供了12种复合工具。 5.1.1 复合建模的12种复合工具简述 散布:将一个物体无序地散布在另一个物体 的表面上。 一致:将一个对象的顶点投射到另一个对象 上,使被投射的物体变形(是一个对象遵从 另一个对象的表面造型。将一个对象的顶点 在另一对象上进行投影产生新的对象,进行 “一致”操作的对象必须是“网格面”对象) 连接:在两个对象对应的删除面之间创建曲 面,将二者连接起来。(对于两个分离对象 之间的连接十分有用,每个分离对象必须都

有开方面或者空洞,方可进行连接) 水滴网格:将距离很近的物体融合到一起,可用于表现流动的液体。 图形合并:将二维对象融合到三维网格对象上。 变形:通过两个或两个以上物体间的形状变化来制作动画。 (通过把一个对象中初始对象的顶点,查不到第二个对象的顶点位置上创建“变形”的动画,原始对象称为“基本对象”,第二个对象称为“目标对象”,基本对象和目标对象必须有相同的顶点数,一个原始对象可变形为几个目标对象) 布尔:将物体按照交、并、减规则进行合并。 地形:将一个或多个二维对象转换为一个面。 放样:将两个或两个以上的二维图形生成一个三维对象。(是来自造船的工业术语,描述了造船的一种方法,使用这种方法可以创建并定位横截面,然后沿着横截面的长度生成一个表面,若要创建“放样”对象,至少需要两条样条线形状,一个用于定义放样的路径,另一个定义它的横截面) 网格化:以每帧为基准将程序对象转换为网格对象,从而方便应用修改器。 ProBoolean:该工具用于将二维对象和三维对象组合在一起。 ProCutter:该工具用于爆炸、断开、装配、建立截面或将对象拟合在一起。 5.2 复合工具介绍 5.2.1图形合并工具 项目实训(一):印章模型创建 (1)打开素材文档,场景中已经创建了一个无纹印章和印纹的截面图形,并

关系映射annotation

一对一(One-To-One) 使用@OneToOne注解建立实体Bean之间的一对一关联。一对一关联有三种情况:(1).关联的实体都共享同样的主键,(2).其中一个实体通过外键关联到另一个实体的主键(注意要模拟一对一关联必须在外键列上添加唯一约束),(3).通过关联表来保存两个实体之间的连接关系(要模拟一对一关联必须在每一个外键上 添加唯一约束)。 1.共享主键的一对一关联映射: @Entity @Table(name="Test_Body") public class Body { private Integer id; private Heart heart; @Id public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } @OneToOne @PrimaryKeyJoinColumn public Heart getHeart() { return heart; }

public void setHeart(Heart heart) { this.heart = heart; } } @Entity @Table(name="Test_Heart") public class Heart { private Integer id; @Id public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } } 通过@PrimaryKeyJoinColumn批注定义了一对一关联 2.使用外键进行实体一对一关联: @Entity @Table(name="Test_Trousers") public class Trousers { @Id public Integer id;

必修1映射经典习题(含答案)

映射例题答案: 例1、在下列对应中、哪些是映射、那些映射是函数、那些不是?为什么? 设A={1,2,3,4},B={3,5,7,9},对应关系是f(x)=2x+1,x属于A 设A={1,4,9},B+{-1,1,-2,2,-3,3}对应关系是‘A中的元素开平方’ 设A=R,B=R,对应关系是f(x)=x的3次方,x属于A 设A=R,B=R,对应关系是f(x)=2x的2次方+1,x属于A 解析:1、是一一映射,且是函数 2、不是映射(象是有且唯一) 3、是一一映射,且是函数 4、是映射,但不是函数,因为B中不是所有值在A中都有对应。 例2、设A={a,b,c},B={0,1},请写出两个从A到B的映射 从A到B的映射共有2^3=8个: (a,b,c)→(0,0,0); (a,b,c)→(0,0,1); (a,b,c)→(0,1,0); (a,b,c)→(1,0,0); (a,b,c)→(0,1,1); (a,b,c)→(1,0,1); (a,b,c)→(1,1,0); (a,b,c)→(1,1,1)。 例3、假设集合m={0 -1 1} n={-2 -1 0 1 2} 映射f:M→N 满足条件“对任意的x属于M ,x+f(x) 是奇数”,这样的映射有____个 ①当x=-1时,x+f(x)=-1+f(-1)恒为奇数,相当于题目中的限制条件“使对任意的x属于M,都有x+f(x)是奇数” f(-1)=-2,0,2 ②当x=0时,x+f(x)=f(0),根据题目中的限制条件“使对任意的x属于M,都有x+f(x)是奇数”可知f(0)只能等于-1和1 ③当x=1时,x+f(x)=1+f(1)恒为奇数 f(1)=-2,0,2 综上①②③可知,只有第②种情况有限制,所以这样的映射共有3×2×3=18个 例4、设集合A={-1,0,1} B={2,3,4,5,6 } 从A到B的映射 f满足条件:对每个X∈A 有 f(X)+X为偶数那么这样的映射f的个数是多少?

UML类图-关系数据库之间的映射

UML类图与关系数据库之间的映射策略 摘要:UML是目前面向对象程序设计中的一种标准的建模技术。在关系数据库系统的设计过程中,我们可先利用UML建立商业模型,然后将其映射成表。本文主要讨论如何将UML 类图中的类映射成表的策略。 关键词:UML 类表关系建模映射 一.概论 在关系数据库设计中,用来创建数据库逻辑模型的标准方法是使用实体关系模型(ER 模型)。ER模型的中心思想是:可以仅通过实体和它们之间的关系合理地体现一个组织的数据模型。但这样做似乎对描述一个组织的信息过于简单化,并且词汇量也远远不足。所以,迫切需要使用更加灵活、健壮的模型来代替ER模型。 标准建模语言UML是由世界著名的面向对象技术专家发起的,在综合了著名的Booch 方法、OMT方法和OOSE方法的基础上而形成的一种建模技术,它通过用例图、类图、交互图、活动图等模型来描述复杂系统的全貌及其相关部件之间的联系。UML可以完成ER 模型的所有建模工作,而且可以描述ER模型所不能表示的关系。 在UML中,类图主要用于描述系统中各种类及其对象之间的静态结构。在关系数据库领域中,类与表相对应。本文主要讨论将UML类图中的类及其对象映射成关系型数据库中的表的策略。 二.UML类图中的类映射成表的策略 UML中的类图主要由类及其关系组成,而类之间的关系又可以细分为: (1)泛化:在UML类图中,如果子类型的接口包括超类型的接口中的每个元素。则超类与子类之间构成泛化关系。泛化通常可以用继承或授权的方式实现。 (2)关联:在UML类图中,关联表示类的实例之间存在的某种关系。它通常可以有1对1、1对多和多对多等情形。 (3)聚集:在UML类图中,聚集描述了部分与整体之间的关系。 (4)组成:在UML类图中,组成由聚集演变而成,它表示一个部分对象仅属于一个整体,并且部分对象通常与整体对象共存亡。 下面结合例子,分别讨论在将类映射成表的过程中这些关系的实现技术。 假设,有一个电脑公司专门从事软件开发,其项目主要由项目开发部门承担,它们之间构成多对多的关联(即一个项目可由多个部门承担,而一个部门又可以承担多个项目的开发工作);项目开发部门由经理及一般职员组成,项目开发部门和组成人员之间构成聚集关系,而人(抽象类)又可以进一步和一般职员及经理两个子类之间构成继承关系;每个项目具有一定的属性,它们之间构成组成关系。 综上所述,其主要关系的UML类图如图1所示。

过程控制系统第2章对象特性习题与解答

过程控制系统第二章(对象特性)习题 2-1.什么是被控过程的数学模型 2-1解答: 被控过程的数学模型是描述被控过程在输入(控制输入与扰动输入)作用下,其状态和输出(被控参数)变化的数学表达式。 2-2.建立被控过程数学模型的目的是什么过程控制对数学模型有什么要求 2-2解答: 1)目的:○1设计过程控制系统及整定控制参数; ○2指导生产工艺及其设备的设计与操作; ○3对被控过程进行仿真研究; ○4培训运行操作人员; ○5工业过程的故障检测与诊断。 2)要求:总的原则一是尽量简单,二是正确可靠。阶次一般不高于三阶,大量采用具有纯滞后的一阶和二阶模型,最常用的是带纯滞后的一阶形式。 2-2.简述建立对象的数学模型两种主要方法。 2-2解答: 一是机理分析法。机理分析法是通过对对象内部运动机理的分析,根据对象中物理或化学变化的规律(比如三大守恒定律等),在忽略一些次要因素或做出一些近似处理后推导出的对象特性方程。通过这种方法得到的数学模型称之为机理模型,它们的表现形式往往是微分方程或代数方程。 二是实验测取法。实验测取法是在所要研究的对象上,人为施加一定的输入作用,然后,用仪器测取并记录表征对象特性的物理量随时间变化的规律,即得到一系列实验数据或实验曲线。然后对这些数据或曲线进行必要的数据处理,求取对象的特性参数,进而得到对象的数学模型。 5-12 何为测试法建模它有什么特点 2-3解答: 1)是根据工业过程输入、输出的实测数据进行某种数学处理后得到数学模型。

2)可以在不十分清楚内部机理的情况下,把被研究的对象视为一个黑匣子,完全通过外部测试来描述它的特性。 2-3.描述简单对象特性的参数有哪些各有何物理意义 2-3解答: 描述对象特性的参数分别是放大系数K 、时间常数T 、滞后时间τ。 放大系数K 放大系数K 在数值上等于对象处于稳定状态时输出的变化量与输入的变 化量之比,即 输入的变化量 输出的变化量=K 由于放大系数K 反映的是对象处于稳定状态下的输出和输入之间的关系,所以放大系数是描述对象静态特性的参数。 时间常数T 时间常数是指当对象受到阶跃输入作用后,被控变量如果保持初始速度变 化,达到新的稳态值所需的时间。或当对象受到阶跃输入作用后,被控变量达到新的稳态值的63.2%所需时间。 时间常数T 是反映被控变量变化快慢的参数,因此它是对象的一个重要的动态参数。 滞后时间τ滞后时间τ是纯滞后时间0τ和容量滞后c τ的总和。 输出变量的变化落后于输入变量变化的时间称为纯滞后时间,纯滞后的产生一般是由于介质的输送或热的传递需要一段时间引起的。容量滞后一般是因为物料或能量的传递需要通过一定的阻力而引起的。 滞后时间τ也是反映对象动态特性的重要参数。 5-6 什么是自衡特性具有自衡特性被控过程的系统框图有什么特点 2-3解答: 1)在扰动作用破坏其平衡工况后,被控过程在没有外部干预的情况下自动恢复平衡的特性,称为自衡特性。 2)被控过程输出对扰动存在负反馈。

PowerDesigner使用技巧

PowerDesigner使用技巧 版本 <1.0>修订历史记录

目录 1.PDM生成PB中DW的列标题3 1.1对PD的版本要求3 1.2PD10的使用方法3 1.2.1PDM设置3 1.2.2ExtendAttribute设置3 1.2.3生成3 1.2.4Oracle设置3 2.PDM生成表3 2.1生成Oracle表3 2.1.1解决生成的SQL字段名上加双引号的问题3 2.1.2避免生成comment 4 3.其它4

PowerDesigner使用技巧 1.PDM生成PB中DW的列标题 1.1对PD的版本要求 PD8不支持,PD低版本反而可以。 1.2PD10的使用方法 1.2.1PDM设置 1.菜单modle/extended Model Definitions,import选择PowerBuilder。 2.表的OWNER,注意要大写。如果没有设置,生成的属性中pbc_ownc='system',需要修 改 1.2.2ExtendAttribute设置 1.让数据窗口自动为宋体9号:修改Table 的字体。或者执行下面的SQL: //connect system ; UPDATE pbcattbl SET pbd_fhgt=-9,pbd_fwgt=400,pbd_fitl='N',pbd_funl='N',pbd_fchr=0, pbd_fptc=34,pbd_ffce='宋体',pbh_fhgt=-9,pbh_fwgt=400,pbh_fitl='N', pbh_funl='N',pbh_fchr=0,pbh_fptc=34,pbh_ffce='宋体',pbl_fhgt=-9, pbl_fwgt=400,pbl_fitl='N',pbl_funl='N',pbl_fchr=0,pbl_fptc=34, pbl_ffce='宋体'; commit; 2.不生成comment:清空Table、Column的comment。有些时候comment会导致不能成功 生成,具体原因没有深究。 1.2.3生成 菜单Tools/PowerBuilder/Generate Extended Attribute,选择表即可。 1.2.4Oracle设置 1.生成的数据只有是System下,才有效。PD默认也是生成在它之下。可以在Extended Attribute中修改,但不要修改 2.内容必须是大写PB才能识别,运行下面的SQL //connect system ; //delete pbcatcol where pbc_tnam= upper('');// 如果是重新生成 //delete pbcattbl where pbt_tnam=upper(''); // 如果是重新生成 update pbcatcol set pbc_tnam=upper(pbc_tnam),pbc_cnam=upper(pbc_cnam),pbc_ownr=upper(pbc_ownr) ; update pbcattbl SET pbt_tnam=upper(pbt_tnam),pbt_ownr=upper(pbt_ownr); commit ; 2.PDM生成表 2.1生成Oracle表 2.1.1解决生成的SQL字段名上加双引号的问题 Database/Edit Current DBMS/Script/Sql/Format/CaseSensitivityUsingQuote/No Tools/Resource/DBMS可以改所有的DBMS

映射详解(经典)

课题:§1.2.2映射 教学目的:(1)了解映射的概念及表示方法,了解象、原象的概念; (2)结合简单的对应图示,了解一一映射的概念. 教学重点:映射的概念. 教学难点:映射的概念. 教学过程: 一、引入课题 复习初中已经遇到过的对应: 1.对于任何一个实数a,数轴上都有唯一的点P和它对应; 2.对于坐标平面内任何一个点A,都有唯一的有序实数对(x,y)和它对应; 3.对于任意一个三角形,都有唯一确定的面积和它对应; 4.某影院的某场电影的每一张电影票有唯一确定的座位与它对应; 5.函数的概念. 二、新课教学 1.我们已经知道,函数是建立在两个非空数集间的一种对应,若将其中的条件“非空数集”弱化为“任意两个非空集合”,按照某种法则可以建立起更为普通的元素之间的对应关系,这种的对应就叫映射(mapping)(板书课题). 2.先看几个例子,两个集合A、B的元素之间的一些对应关系 (1)开平方; (2)求正弦 (3)求平方; (4)乘以2; 3.什么叫做映射? 一般地,设A、B是两个非空的集合,如果按某一个确定的对应法则f,使对于集合A中的任意一个元素x,在集合B中都有唯一确定的元素y与之对应,那么就称对应f:A→B为从集合A到集合B的一个映射(mapping). 记作“f:A→B” 说明: (1)这两个集合有先后顺序,A到B的射与B到A的映射是截然不同的.其

中f表示具体的对应法则,可以用汉字叙述. (2)“都有唯一”什么意思? 包含两层意思:一是必有一个;二是只有一个,也就是说有且只有一个的意思。4.例题分析:下列哪些对应是从集合A到集合B的映射? (1)A={P | P是数轴上的点},B=R,对应关系f:数轴上的点与它所代表的实数对应; (2)A={ P | P是平面直角体系中的点},B={(x,y)| x∈R,y∈R},对应关系f:平面直角体系中的点与它的坐标对应; (3)A={三角形},B={x | x是圆},对应关系f:每一个三角形都对应它的内切圆; (4)A={x | x是新华中学的班级},B={x | x是新华中学的学生},对应关系f:每一个班级都对应班里的学生. 思考: 将(3)中的对应关系f改为:每一个圆都对应它的内接三角形;(4)中的对应关系f改为:每一个学生都对应他的班级,那么对应f:B A是从集合B到集合A的映射吗? 5.完成课本练习 三、作业布置 补充习题

建立数学模型方法步骤特点及分类

建立数学模型的方法、步骤、特点及分类 [学习目标] 1.能表述建立数学模型的方法、步骤; 2.能表述建立数学模型的逼真性、可行性、渐进性、强健性、可转移性、非 预制性、条理性、技艺性和局限性等特点;; 3.能表述数学建模的分类; 4.会采用灵活的表述方法建立数学模型; 5.培养建模的想象力和洞察力。 一、建立数学模型的方法和步骤 —般说来建立数学模型的方法大体上可分为两大类、一类是机理分析方法,一类是测试分析方法.机理分析是根据对现实对象特性的认识、分析其因果关系,找出反映内部机理的规律,建立的模型常有明确的物理或现实意义.测试分折将研究对象视为一个“黑箱”系统,内部机理无法直接寻求,可以测量系统的输人输出数据、并以此为基础运用统计分析方法,按照事先确定的准则在某一类模型中选出一个与数据拟合得最好的模型。这种方法称为系统辨识(System Identification).将这两种方法结合起来也是常用的建模方法。即用机理分析建立模型的结构,用系统辨识确定模型的参数. 可以看出,用上面的哪一类方法建模主要是根据我们对研究对象的了解程度和建模目的决定的.如果掌握了机理方面的一定知识,模型也要求具有反映内部特性的物理意义。那么应该以机理分析方法为主.当然,若需要模型参数的具体数值,还可以用系统辨识或其他统计方法得到.如果对象的内部机理基本上没掌握,模型也不用于分析内部特性,譬如仅用来做输出预报,则可以系统辩识方法

为主.系统辨识是一门专门学科,需要一定的控制理论和随机过程方面的知识.以下所谓建模方法只指机理分析。 建模要经过哪些步骤并没有一定的模式,通常与实际问题的性质、建模的目的等有关,从 §16.2节的几个例子也可以看出这点.下面给出建模的—般步骤,如图16-5所示. 图16-5 建模步骤示意图 模型准备首先要了解问题的实际背景,明确建模的目的搜集建模必需的各种信息如现象、数据等,尽量弄清对象的特征,由此初步确定用哪一类模型,总之是做好建模的准备工作.情况明才能方法对,这一步一定不能忽视,碰到问题要虚心向从事实际工作的同志请教,尽量掌握第一手资料. 模型假设根据对象的特征和建模的目的,对问题进行必要的、合理的简化,用精确的语言做出假设,可以说是建模的关键一步.一般地说,一个实际问题不经过简化假设就很难翻译成数学问题,即使可能,也很难求解.不同的简化假设会得到不同的模型.假设作得不合理或过份简单,会导致模型失败或部分失败,于是应该修改和补充假设;假设作得过分详细,试图把复杂对象的各方面因素都考虑进去,可能使你很难甚至无法继续下一步的工作.通常,作假设的依据,一是出于对问题内在规律的认识,二是来自对数据或现象的分析,也可以是二者的综合.作假设时既要运用与问题相关的物理、化学、生物、经济等方面的知识,又要充分发挥想象力、洞察力和判断力,善于辨别问题的主次,果断地抓住主要因素,舍弃次要因素,尽量将问题线性化、均匀化.经验在这里也常起重要作用.写出假设时,语言要精确,就象做习题时写出已知条件那样.

PowerDesigner 使用手册

PowerDesigner使用手册 1 PowerDesigner整体框架介绍 1.1 PowerDesigner 介绍 PowerDesigner是Sybase公司的CASE工具集,是图形化、易于使用的企业建模环境。使用它可以方便地对管理信息系统进行分析设计,它几乎包括了数据库模型设计的全过程。利用PowerDesigner可以制作数据流程图、概念数据模型、物理数据模型,可以生成多种客户端开发工具的应用程序,还可为数据仓库制作结构模型,也能对团队设计模型进行控制。它可与许多流行的数据库设计软件,例如:PowerBuilder、Delphi、VB等相配合使用来缩短开发时间和使系统设计更优化 PowerDesigner 主要包括以下功能: 集成多种建模能力,能建立的模型包括: 数据模型(E/R, Merise) 业务模型(BPMN, BPEL, ebXML) 应用模型(UML)

1.2 PowerDesigner环境介绍 1.2.1对象浏览器介绍 工作空间(Workspace) 它是浏览器中树的根,是组织及管理所有设计元素的虚拟环境。你可以通过保存工作空间保存自己的设计空间信息以便再次打开时可以还原到保存前的状 态。 项目(Project) 作为容纳你所有开发出的制品的容器,项目中的所有对象可以作为一个单元存到PowerDesigner库中。每个项目自动维护一张图用以显示模型以及文档之间的依赖。 文件夹(folder) 工作空间可以包含用户自定义的文件夹用以组织模型和文件。例如,你有两个独立的项目,希望在一个工作空间中处理,此时可以使用文件夹。 模型(Model) 模型是PowerDesigner中的基本设计单元。每个模型中有一个或多个图以及若干模型对象。 包(Package) 当模型较大时,可能需要把模型拆分成多个“子模型”以便于操作,这些子模型就叫做包,今后可以把不同的包分配给不同的开发组。 图(Diagram) 展现模型对象之间的交互。可以在模型或包中创建多个图。

PowerDesigner教程(完整)

前言 在CSDN上转悠经常看到有网友寻求PowerDesigner相关资料的帖子,Baidu,Google上找找还真很少;同时也有不少网友发来Email询问相关PowerDesigner问题或索要相关资料的,故下定决心制作本文档。折腾二十多天,终于输出了现在的文档,其中绝大部分内容都是依照PowerDesigner自带的帮助文档翻译过来,乐意啃英文的朋友最好还是看其”原汁”教程,同时本文档仅用于帮助分析设计人员更快熟悉掌握PowerDesigner的使用方法,不包含分析设计方面的理论,所以要作好系统的分析设计工作还是需要用户深厚的项目实践功底。 起初想尽量按照PowerDesigner自带帮助文档完整地进行,尝试了一上午的工作之后这种方案马上就被我否决,原因有二:1.内容太多,工作量太多。2.原帮助文档特别周全,个人觉得可以在内容上作很大程度的压缩。姑决定按原帮助文档写,同时加入自己目前正在做的技术论坛分析设计过程以便于理解。 对本文档内容的几点说明: 1.本文档只包括PowerDesigner部分内容(RQM,Report,CDM,PDM),内容不够全面。 2.内容尽量简略,一些相同或类似操作过程尽量不再重复。 3.部分术语参考了飞思科技产品研发中心监制电子工业出版社的《PowerDesigner数据库系统分析设计与应用》。 4.暂时没有包含OOM,XML,BPM,ILM等模型内容,我将会在后期陆续更新。 版本说明:我使用的是PowerDesigner Trial 11英文版,因此文档中一些菜单,按钮名称也用英文写出(因当心自己译出的名称和中文版上的名称不一致而造成理解不便),若是给使用中文版的朋友带来不便,我在这说声”抱歉”了!同时由于各版本不同部分操作可能会有所区别。 这里要感谢在我进行翻译工作期间给我发送Email关注的网友,感谢一直支持我的朋友们!由于第一次做翻译工作,限于水平有限,文档中肯定存在很多不足和错误之处,衷心欢迎各位网友指点迷津,期望得到您的指导! Email:dingchungao@https://www.360docs.net/doc/6c3117493.html, dingchungao@https://www.360docs.net/doc/6c3117493.html, QQ:330982401 Blog:http:\\https://www.360docs.net/doc/6c3117493.html, Slash 2006.8.31 需求模型 PowerDesigner11.0.0.1363评估版 为了更好的将原文含义再现,不加入我个人语言习惯,我尽量按照原文档内容翻译。 环境简介

PowerDesigner15使用时的十五个问题

简介 PowerDesigner的主要作用一般还是数据库建模,并生成对应的数据库设计文档,可以与数据库保持同步。 一般常用的有CDM,PDM,UML建模,CDM可以转为PDM。 支持正向[生成数据库]和逆向工程[从数据库中生成],并直接关联到到数据库中,PDM可以直接和数据库进行关联,并将数据库,表,视图,触发器等数据库对象生成到数据库中,也可将这些对象更新到PDM中。 PowerDesigner的几个主要常用菜单是MODEL、DATEBASE、Tool,这三个菜单下命令使用比较多,要熟悉。PD 还可以用来画用例图,序列图,类图等UML图。 也可以画企业架构图,软件应用架构图等等图形 15个问题列表: No.1:是不是一定要从CDM开始设计,然后在进行PDM的设计? NO.2:工具栏palette不见了,如何把它找出来? NO.3: 如何建立与数据库的关联? NO.4: 域和数据项有何作用? No.5: 如何生成主键的自定义增长列,SQL Server和Oracle数据分别是如何操作的? No.6: NAME和CODE联动,如何取消? NO.7. 如何实现字段的NAME和Comment属性互换? NO.8: 如何修改某个对象的命名规则,比如外键,比如主键,比如触发器等? No.9: 如何用PD生成测试数据,以便测试? No.10 如何把CODE的NAME中文也生成在脚本中,也就是列名后就是NAME的说明文字? NO.11 如何将数据库结构,表名,表的字段导出到Word中,或者生成HTML文件以便查看? No.12 如何去除生成SQL时的双引号问题,双引号在Oracle中可以保证大小写,却异常麻烦? NO.13 如何修改PD的显示样式? No.14 如何去除表名,字段的长度限制? No.15 如何进行数据库的逆向工程? 说明:本文提到的PD基于PD15.英文版。 No1:是不是一定要从CDM开始设计,然后在进行PDM的设计? 本人觉得没有必要,项目的大小、熟悉程度、起步和个人习惯不一样,熟练业务的,项目小的直接用PDM设计未尝不可。 NO2:工具栏palette不见了,如何把它找出来? 这个问题我找了所有的菜单才找到,在【Tools】-【Customize Toolbars】点击打开,列表项里的【palette】选中即可,此外,这个窗口中还可以设计对齐的方式等等。

PowerDesigner中的对象与关系映射建模

PowerDesigner中的对象与关系映射建模 Sybase 公司PowerDesigner上海研发中心余亚,王晓昀 概述 从80年代中期开始,随着C++语言的成功,面向对象语言已经成为软件开发中的主导语言。现在很多商用软件,尤其是企业信息系统,都是使用面向对象语言进行开发的。应用面向对象方法,我们通过类来抽象不同类别的实体,属性来表示实体的静态特征,关联来抽象实体间的联系,继承来抽象类别的包含关系。 很多的应用程序都需要进行数据存储,关系型数据库是最常用的数据管理系统。在关系型数据库中,表、列和外键是抽象数据的基本元素。关系型数据库是建立在关系计算和布尔代数基础之上的,SQL是数据库的操作语言,通过关系运算,连接、联合等,来操作数据。 我们很容易的看出,面向对象模型和关系模型是不完全匹配的。比如 1. 对象可以存储到多张表,表也可以存储多个类的对象。 2. 对象之间的关系是双向的,而表之间的关系是单向的。 3. 对象之间有继承关系,表之间没有。 为了解决这种不匹配,人们定义了很多映射模式来建立两种模型间的对应关系。这些映射模式逻辑上解决了模型间的不匹配,使得面向对象程序能够正确地和关系关系型数据库进行交互,但是对于程序的开发,仍然有很多问题需要解决。 问题 对于设计人员来说,他们需要找到并且描述这两种模型元素间的映射关系,以便编程人员能够正确地实现数据的存储和查询。现在很多建模工具仅提供其中一种模型的支持,比如Together仅支持对象建模,ERWin仅支持数据建模。即使同时支持两种模型,这种支持也很不完整,比如Rose中的数据建模功能。分析设计人员常常需要两种不同的工具来进行建模,如果他们想描述这两种模型元素间的对应关系,他们只能通过文档或者表格的形式。这很容易产生错误,并且如果模型发生改变,这些文档需要手工更改,容易造成不一致,维护起来很困难。 对于编码人员,他们需要应用某种技术来实现模型的这种对应关系。如果通过语言提供的数据库访问接口,比如Java 的JDBC或者.Net的https://www.360docs.net/doc/6c3117493.html,,对于每一个对象的每一个存储操作,编码人员需要编写存取操作的SQL,数据库控制和访问代码,这是一项繁琐、重复性的劳动。即使应用O/R 映射的框架,比如Hibernate, EJB 3.0或者.Net平台的NHibernate,他们需要编写映射文件或者通过标记来定义O/R映射框架所需要的映射元数据。这些映射元数据只不过是我们在设计阶段定义的映射关系另外一种表现方式,转换成XML或者标记的方式,无疑这种转换增加了错误的可能性和维护的难度。 PowerDesigner解决之道 PowerDesigner提供对于多达8种模型的支持,其中包括面向对象模型和关系数据模型。作为一个集成的企业建模工具,PowerDesigner并不是简单的将几种模型工具罗列在一起。各种模型相互之间可以建立关联,通过这种关联,它提供了企业模型统一、一致的视图。其中模型间的映射和自动生成是建立模型间关联重要的手段。 模型可以描述系统的静态特征和动态特征,而静态特征可以用来表述系统的持久状态,比如面向对象模型中的实体类,数据库模型的表,XML模型中的元素节点等。在PowerDesigner中,我们可以在各种可以描述持久状态模型间建立映射,比如XML模型到面向对象模型间的映射,面向对象模型到关系数据模型的映射等。下面我们就来看一下,PowerDesigner 是如何支持面向对象模型到关系模型的映射的。

使用PowerDesigner功能简介

对于很多使用过PowerDesigner的人来讲,他们使用PowerDesigner就是使用它来进行数据库物理建模,创建数据库表对象、建立表与表之间的关联关系、创建索引,最后,使用PowerDesigner的Generate DataBase功能生成数据库的DDL语句,最后,将这些DDL语句使用数据库工具进行导入。使用再高级一点的话,我们还可以创建数据源,并在PowerDesigner建立与数据源的连接后,最后,直接通过Generate DataBase的ODBC Generation功能直接在数据库当中建表、建外键、建约束、建索引等数据库对象。 PowerDesigner对很多很多应用服务器,外部工具,开源框架有着很好的支持,这个是PowerDesigner 的最大优势。默认情况下,这些扩展模块都没有启用,我们可以使用Extended Model来启用相应的模块支持,比如Hibernate。这篇文章将使用Object-Oriented Model结合Physical Data Model,并启用Hibernate Extended Model来进行建模,并最终生成相应的Java代码、Hiberante配置文件和映射文件、DataBase DDL语句等。 首先:我们先创建新的Object-Oritented Model,将Object Language选项当中Java,First diagram选择为Class Diagram,如下图所示: 配置完后,点击Extended Model Definitions面板,在扩展的模型当中选择Hiberante,最后点击确定按钮,如下图所示:

PowerDesigner_11_使用方法简介

PowerDesigner 使用方法简介 一、从网上下载软件。路径为:计算机系\软件工程与项目管理(CMM)\工具 二、安装软件 三、软件使用过程 根据下述过程建立如图所示的E-R图。 1、点击PowerDesigner图标启动软件。进入到初始页面,如图2所示

2、点击菜单中的文件项,选择新建,出现要求选择建立何种模型的模型类型对话框。 其中Conceptual Data Model CDM,为概念(数据)模型,它建立的就是E-R图Business Process Model BPM,业务处理模型 Object-Oriented Model OOM,面向对象模型 Physical Data Model PDM,物理(数据)模型,它建立的就是数据库表 选择CDM并单击确认按钮。 3、进入PowerDesigner的CDM操作窗口 4、 界面上出现一个小工具条palette,里面包括常用的数据库建模工具。 用鼠标单击工具条中的工具后,到界面中央单击或拖动即可。 为了能够完成前述图1的内容,选中图标,在界面中间单击五次,形成如图所示画面。 此时,每一个实体都是空的。需要逐个进行定义和描述。

5、定义实体 双击其中的一个实体,弹出实体属性定义对话框。 对“General”选项卡上的内容进行定义。 Name :定义实体的显示名称(图书) Code :定义实体的代码中表示名称(book),必须是英文。 Number :实体中实例(记录)的最大个数(100000000,它表示图书馆的最大藏书量可达一亿册)。 这个数字的作用是便于估计数据库服务器的磁盘容量。 6、定义属性、属性的约束和算法 “Attribute”选项卡上定义属性,如图所示

3DS max精品详细教程(从入门到精通)4复合对象建模

在3ds Max中的创建复合对象 4.1.1 散布 “散布”复合对象能够将源对象分布于另一个对象的表面,并且可以设置对象分布的数量、状态等,还可以设置为动画。创建“散布”对象的步骤如下: (1)首先打开本书附带光盘\Chapter-04\“练习1.max”文件,在该场景中包括草和一个平面对象,我们需要将草对象铺满整个平面对象。 (2)在场景中选择“草”对象,进入“创建”命令面板的“几何体”次命令面板,在该面板的下拉列表栏中选择“复合对象”选项,然后单击“散布”命令按钮,如图4-2所示。 图4-2 单击“散布”命令按钮 (3)在出现的“拾取分布对象”卷展栏中单击“拾取分布对象”按钮,在视图中拾取平面对象,这时平面对象上仅有一组草对象,如图4-3所示。

图4-3 拾取分布对象 (4)在“散布对象”卷展栏中的“源对象参数”选项组中将“重复数”设置为500,这时整个平面对象上将铺满草对象,如图4-4所示。 图4-4 “散布”对象效果 4.1.2 一致 “一致”复合对象主要有2种功能,第1种功能是可以将一个对象的所有顶点都在一个平行的方向投影,该功能能够将马路适应崎岖的地面;第2种功能允许有不同顶点的两个对象相互变形,它能够使用一个网格对象的周围收缩应用另一个网格对象。创建“一致”对象的步骤如下: (1)打开本书附带光盘\Chapter-04\“练习2.max”文件,首先在场景中选择作为包裹器的“公路”对象。 (2)进入“创建”命令面板的“几何体”次命令面板,在该面板的下拉列表栏中选择“复合对象”选项,然后单击“一致”命令按钮。 (3)在出现的“拾取包裹到对象”卷展栏中单击“拾取包裹对象”按钮,然后在“顶”视图中拾取包裹对象“山地”,效果如图4-5所示。

powerDesigner使用

PDM文件路径D:\Program Files (x86)\Sybase\PowerDesigner 16 oracle 11g 用户名及口令都是yudexiao oracle_home D:\orcl\asus1\product\11.2.0\dbhome_1 tns_admin F:\orclClient\instantclient_11_2_x64 client F:\orclClient\instantclient_11_2_x64 F:\orclClient\instantclient_11_2_x32 TNSNAMES.ORA------- GTGISMANAGER = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.200)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) ) jdk C:\ProjectOne\Java\jdk1.7.0_51 问题一:Could not initialize JavaVM 在网上查了许多资料, 有的地方说jdk安装在program Files文件里面, 可能因为这个空格的原因造成的, 我先把jdk装在了C:\java目录下面 还是不行, 我使用的jdk是64位的又重新安装了一个windows x86版本的jdk, 改了一下JAVA_HOME 其他设置如下,我使用的15.3版本的powerdesigner: 1.系统变量-classpath:加入mysql jar包的地址(例如C:\mysql-connector-java-3.1.13-bin.jar)

过程控制系统第2章对象特性习题与解答

过程控制系统第二章(对象特性)习题2-1.什么是被控过程的数学模型 2-1解答: 被控过程的数学模型是描述被控过程在输入(控制输入与扰动输入)作用下,其状态和输出(被控参数)变化的数学表达式。 2-2.建立被控过程数学模型的目的是什么过程控制对数学模型有什么要求 2-2解答: 1)目的:○1设计过程控制系统及整定控制参数; ○2指导生产工艺及其设备的设计与操作; ○3对被控过程进行仿真研究; ○4培训运行操作人员; ○5工业过程的故障检测与诊断。 2)要求:总的原则一是尽量简单,二是正确可靠。阶次一般不高于三阶,大量采用具有纯滞后的一阶和二阶模型,最常用的是带纯滞后的一阶形式。 2-2.简述建立对象的数学模型两种主要方法。 2-2解答: 一是机理分析法。机理分析法是通过对对象内部运动机理的分析,根据对象中物理或化学变化的规律(比如三大守恒定律等),在忽略一些次要因素或做出一些近似处理后推导出的对象特性方程。通过这种方法得到的数学模型称之为机理模型,它们的表现形式往往是微分方程或代数方程。 二是实验测取法。实验测取法是在所要研究的对象上,人为施加一定的输入作用,然后,用仪器测取并记录表征对象特性的物理量随时间变化的规律,即得到一系列实验数据或实验曲线。然后对这些数据或曲线进行必要的数据处理,求取对象的特性参数,进而得到对象的数学模型。 5-12 何为测试法建模它有什么特点 2-3解答: 1)是根据工业过程输入、输出的实测数据进行某种数学处理后得到数学模型。

2)可以在不十分清楚内部机理的情况下,把被研究的对象视为一个黑匣子,完全通过外部测试来描述它的特性。 2-3.描述简单对象特性的参数有哪些各有何物理意义 2-3解答: 描述对象特性的参数分别是放大系数K 、时间常数T 、滞后时间τ。 放大系数K 放大系数K 在数值上等于对象处于稳定状态时输出的变化量与输入的变 化量之比,即 输入的变化量 输出的变化量=K 由于放大系数K 反映的是对象处于稳定状态下的输出和输入之间的关系,所以放大系数是描述对象静态特性的参数。 时间常数T 时间常数是指当对象受到阶跃输入作用后,被控变量如果保持初始速度变 化,达到新的稳态值所需的时间。或当对象受到阶跃输入作用后,被控变量达到新的稳态值的63.2%所需时间。 时间常数T 是反映被控变量变化快慢的参数,因此它是对象的一个重要的动态参数。 滞后时间τ滞后时间τ是纯滞后时间0τ和容量滞后c τ的总和。 输出变量的变化落后于输入变量变化的时间称为纯滞后时间,纯滞后的产生一般是由于介质的输送或热的传递需要一段时间引起的。容量滞后一般是因为物料或能量的传递需要通过一定的阻力而引起的。 滞后时间τ也是反映对象动态特性的重要参数。 5-6 什么是自衡特性具有自衡特性被控过程的系统框图有什么特点 2-3解答: 1)在扰动作用破坏其平衡工况后,被控过程在没有外部干预的情况下自动恢复平衡的特性,称为自衡特性。 2)被控过程输出对扰动存在负反馈。 5-7 什么是单容过程和多容过程 2-3解答: 1)单容:只有一个储蓄容量。

相关文档
最新文档