PowerDesigner操作手册
北京思特奇信息技术股份有限公司
二零一零年七月
本文档及其所含信息为机密材料
并且由北京思特奇信息技术股份有限公司(SI-TECH)拥有
未经SI-TECH书面授权,不得将材料泄露给第三方
Copyright?2010SI-TECH版权
保留所有的权利
文档信息 文档名称: PowerDesigner操作手册 电子文档: PowerDesigner操作手册.doc 版本号: V1.0 密级: 保密 文档编号: 编写人: 日期: 校对人: 日期: 审核人: 日期: 批准人: 日期: 更改记录 更改
序号 更改原因 更改
页码 更改前版本号 更改后版本号 更改人 生效日期 备注 1
目录
一、PowerDesigner简介 4
1.1 常用模型文件 4
1.2 PowerDesigner使用环境 5
二、创建和管理CDM 6
1.1 新建CDM 6
1.2 实体及实体间关系 10
1.2.1 新建实体 10
1.2.2 使用实体间关系 17
1.2.2.1 使用联系 18
1.2.2.2 使用继承 25
1.3 新建和使用域 27
三、CDM生成PDM 31
四、PDM生成建表脚本 34
五、PDM生成REPORT 40
六、总结 44
一、PowerDesigner简介
常用模型文件
公司主要使用PowerDesigner的以下两类模型文件:
逻辑模型(CDM):描述了与任何软件和数据存储系统无关的数据库整体逻辑结构,通常包含了与物理数据库无关的数据对象,提供了一种描述企业运行或业务行为的形象化的表达方式。
物理模型(PDM):叙述数据库的物理实现。主要目的是把CDM中建立的现实世界模型生成特定的DBMS脚本,产生数据库中保存信息的储存结构,保证数据在数据库中的完整性和一致性
二、创建和管理CDM
新建CDM
选择菜单栏File->New,打开New窗口
在左边模型类型(Modeltype)列表中,选中ConceptualDataModel,单击“确认”按钮即新建了一个默认名为ConceptualDataModel_1的CDM工程
在树形模型管理器中,右键单击新建的CDM工程名,从出现的菜单中选中Rename,即可将新建CDM工程名修改为自己想要的,如:NG-CRM5.5逻辑模型
在树形模型管理器中,右键单击新建的CDM工程名,从出现的菜单中选择New->Package即可新建一个包(Package)。Package用于对一个CDM工程的图表按照业务等规则分类存放,如NG-CRM5.5数据模型分为客户域、用户域、帐户域等多个域
在树形模型管理器中,右键单击新建的Package名,从出现的菜单中选择New->ConceptualDiagram即可Package下新建一个Diagram
实体及实体间关系
新建实体
在新建的CDM中,选择常用工具面板中的实体(Entity)工具,再在图标窗口空白区域单击鼠标左键,即添加了一个实体
双击新建的实体,打开实体属性窗口,输入实体的名称(Name)和代码(Code)
双击新建的实体,打开实体属性窗口,切换到Attributes标签页,单击属性窗口工具栏中的AddaRow工具或者直接单击属性列表的某一空白行即为实体添加了一个属性,同时可设置属性的Name、Code、数据类型(DataType),是否不能为空(M复选框),是否为主键字段(P复选框)等
PowerDesigner考虑到主键外键名称可能冲突的问题,默认两个不同实体中不能存在相同名称的属性,但在实际设计的时候,为了便于理解,通常需要在两个实体中使用相同的属性名,如NG-CRM5.5中所有信息(INFO)表都存在4个字段:操作流水(LOGIN_ACCEPT)、操作工号(LOGIN_NO)、操作代码(OP_CODE)、操作时间(OP_TIME),由于这些字段在所有实体中的作用意义一样,所以最好使用同样的名称。为此需要更改PowerDesigner的相关设置,更改操作为:选择菜单栏的Tools->ModelOptions,打开ModelOptions窗口,取消选中的Uniquecode即可
若要更改实体属性列表中显示的相关选项可以通过单击工具栏中的CustomizeColumnsandFilter工具打开CustomizeColumnsandFilter窗口,在列表中选择需要显示的项目即可完成设置
更改了名称和添加了属性的新建实体如下图所示
若要更改实体的显示方式,选择菜单栏的Tools->DisplayPreferences,打开DisplayPreferences窗口,选中ObjectView下的Entity进行设置。如若只显示实体的名称,不显示实体属性字段和标识符(Identifiers),取消选中的Attributes复选框和Identifiers复选框即可
使用实体间关系
完成实体定义后,应该在它们之间建立关系。实体之间的关系通常是根据业务规则确定
的,如对于移动运营商来说,一个客户拥有多个用户,这就是客户和用户之间的关系。
实体之间的关系常用的主要有联系和继承两大类,在常用工具面板中分别用标注为黄色和红色的工具表示。
使用联系
在CDM中,联系是用实体间的一条线来表示的,联系的具体含义是通过线两端的符号
来表示的,在两个实体间创建联系的步骤如下:
在工具面板中左键单击联系(Relationship)工具
在实体A上单击鼠标左键,按住不放,拖拽鼠标到实体B上后才松开,这样就建立了实体A和实体B之间的Relationship
双击新建的关系,打开关系属性窗口
输入属性Name和Code(可以采用默认的),之后切换到Cardinalities标签页,进行详细的设置
联系是通过实体间的一条线来表示的,而联系的具体含义则是通过配置联系属性页面的内容以更改线两端的符号来表示的。联系可配置的属性主要包括上图中用红色椭圆标注的4部分:
onetoone,onetomany和manytomany是最常见的联系属性,用来配置一个实体中的实例数与另一个实体中的实例数的比值关系
Mandatory:强制表示实体间的联系是否是可选的。在CDM中用穿过联系线的一条短直线表示强制,用联系线上的一个小圆圈表示可选
上图表达了两个含义:其一是一个用户必须归属于且只能归属于一个客户;其二是一个客户可以有多个用户,也可以一个用户都没有。
两个实体间实例的比值关系以及联系是否强制,可用出现在联系线两端的下述符号表示:
Dependent:每个实体都有自己的标识符(Identifier,用于唯一标识实体中的一条记录,由实体的一个属性字段或多个属性字段组成),如果两个实体之间发生关联,其中一个实体的标识符所包含的属性字段是构成另外一个实体的标识符的一部分,则称后一个实体依赖于前一个实体,后一个实体部分的被前一个实体确定。在CDM中依赖联系用一个三角形表示,三角形的顶点指向被依赖的实体,下图表示了客户联系信息和客户信息之间的依赖关系
Dominantrole:用于指明联系的主从表关系,仅作用于onetoone的联系。在A,B两个实体型的联系中,如果A(B被指定为dominent,那么A为联系的主表,B为从表,在生成PDM的时候,A的Identifier字段会被引用到B实体(如果不指定,A的Identifier会被引用到B实体,B的Identifier也会被引用到A实体),下图表示了客户和合作伙伴商户之间的一对一联系
这种联系的属性页面的设置如下图所示:
如果觉得联系线的外观不太好看,比如下图这样的
可在联系线上单击鼠标右键,选中Format,打开SymbolFormat窗口,选中LineStyle标签页,调整Corners下拉列表框的内容即可
如果想调整联系线的显示内容,如下图联系线上展示了联系的名称
若不想在线上显示联系的名称,选择菜单栏的Tools->DisplayPreferences,打开DisplayPreferences窗口,选中ObjectView下的Relationship进行设置,取消对Name复选框的选择即可
使用继承
继承允许你定义一个实体为另一个更一般的特例,涉及到继承的实体间有着共同相似的
特征,但却是不同的。父类指那些包含共同特征的更一般的类,而特例则被称为子类型。在CDM中创建继承的操作如下:
在工具面板中左键单击继承(Inheritance)工具
在子类实体上单击鼠标左键,按住不放,拖拽鼠标到父类实体后才松开,这样就建立了父子实体之间的Inheritance关系,如下图所示,客户信息是父类,个人客户、家庭客户、集团客户是子类
子类可以只继承父类的主键,也可以继承所有的字段,可通过继承属性页面进程设置,双击新建的继承关系线,打开继承关系属性窗口,切换到Genaration标签页,调整红色椭圆标注区域的单选框的选择即可
继承关系线上的半球形图标里是否有叉叉图标,表示子类之间是否是互斥关系,也就是说父类实体的一个实例(通俗的讲,就是一条记录),是只能对应一个子类实体的实例,还是能对应多个子类实体的实例。如上述的客户信息是父类实体,它的一个实例,要么是个人客户,要么是集团客户,要么是家庭客户,不可能既是个人客户又是集团客户等。可通过继承关系的属性页面设置是否是互斥关系,具体操作为:双击新建的继承关系线,打开继承关系属性窗口,切换到Genaral标签页,调整复选框Mutuallyexclusivechildren是否被选中即可
新建和使用域
域定义适用于多个数据项目的数据结构,当修正一个域时,将更新全部与域关联的数据项目,这使得更改相同用途的数据项目的数据类型和长度变得比较容易。比如NG-CRM5.5模型中所有存放钱的字段的数据类型统一要求为NUMBER(14,2),如此可定义一个域,数据类型为NUMBER(14,2),然后将此域应用到模型中所有与钱有关的字段,日后如果要求将与钱有关的字段的数据类型更改为NUMBER(14),只需修改域即可。
创建一个域的步骤如下:
选择菜单Model->Domains,打开模型中已有Domain的列表
点击AddaRow工具新添加一个域,新建域有一个默认的Name和Code
修改新建域的Name和Code,设置DataType,点击OK,一个新域就创建完成了
在CDM中使用域,如用户停机实体中,属性应收费用与钱有关,只要对应Row的Damain列的下拉框中选中新建的域(钱),则DataType字段的值自动调整为N14,2
三、CDM生成PDM
CDM生成PDM,操作步骤如下:
选择菜单栏上的Tools->GeneratePhysicalDataModel,打开PDMGenerationOptions窗口,选择GeneratenewPhysicalDataModel,在Name和Code文本框中输入生成的物理模型的Name和Code
切换到Detail标签页,按照下图设置,PKindexnames、keyindexnames、FKindexnames表示生成的各类索引的命名规则,可根据具体项目的命名规则更改;选中Checkmodel,模型将会在生成之前被检查,如果不想被检查,取消选中即可
切换到Selection标签页,列出CDM的所有对象,你可以选择对哪些对象进行转换,一般默认全部选中
确认各项设置后,点击“确认”按钮,即生成相应的PDM模型
由于在第二步中选中了Checkmodel,所以在生成PDM时,会先对CDM进行检查,检查结果可能会包含ERROR,这样就不能成功生成PDM,需要先将错误解决。有一种最简单的办法,就是取消对Checkmodel复选框的选择,但一般不建议这么做
生成PDM后,我们可能还会对前面的CDM进行更改,若要将所做的更改与所生成的
PDM保持一致,可对已有PDM进行更新,操作为:选择菜单栏上的Tools->GeneratePhysicalDataModel,打开PDMGenerationOptions,选择UpdateexistingPhysicalDataModel,并通过Selectmodel下拉框,选择需要更新的PDM
备注:Preservemodifications:当已经生成一个PDM文件,并在已生成的PDM中对某些对象做了修改(比如更改了对象的位置),现在要从CDM再次生成PDM文件时(更新),而需要保护原来在PDM中所做的修改,这时应选择这个选项。
四、PDM生成建表脚本
PDM生成数据库建表脚本的步骤如下:
选择菜单栏Database->GenerateDatabase,打开DatabaseGeneration窗口,其中包括生成数据库的各种参数选项。在Director后选择脚本文件的存放目录,并在File文本框输入脚本文件名称。勾选上Onefileon,表示所生成脚本将包含于一个文件中。在Generation选项栏中选择Scriptgeneral单选框,确认生成数据库方式为直接生成脚本文件
按上图设置Tables&Views标签页的参数
按下图设置Keys&Indexes标签页的参数
按下图设置Database标签页的参数
按下图设置Options标签页的参数
切换到Selection标签,选择需要生成脚本的PDM对象,标注红色的两个按钮分别可以实现全选和全部不选功能
各项设置确认没有问题后,点击“确定”按钮,即可生成建表脚本
PDM生成建表脚本时,常见的两个问题及解决方法如下:
pdm生成建表脚本时,字段超过15字符就发生错误(oracle)打开PDM后,会出现Database的菜单栏,进入Database-EditCurrentDBMS-script-objects-column-maxlen,把value值调大(原为30),比如改成60。出现表或者其它对象的长度也有这种错误的话都可以选择对应的objects照此种方法更改生成的建表脚本中如何把对象的双引号去掉选择Database->Editcurrentdatabase->Script->Sql->Format,有一项CaseSensitivityUsingQuote,它的comment为“Determinesifthecasesensitivityforidentifiersismanagedusingdoublequotes”,表示是否适用双引号来规定标识符的大小写,可以看到右边的values默认值为“YES”改为“No”即可
从Availableitems中拖拽需要显示的部分到Reportitems窗口
修改输出选项的内容以及内容的展示格式
确认各种设置完成后,右键单击新建的Report文件名,选择Generate->HTML即可生成HTML格式的Report文件
六、总结
第27页共44页
北京神州数码思特奇信息技术股份有限公司 2010年11月24日
|
|