PowerDesinger教程
简介
PowerDesigner是Sybase公司的CASE工具集,使用它可以方便地对管理信息系统进行分析设计,它几乎包括了数据库模型设计的全过程。利用PowerDesigner可以制作数据流程图、概念数据模型、物理数据模型,可以生成多种客户端开发工具的应用程序,还可为数据仓库制作结构模型,也能对团队设计模型进行控制。它可与许多流行的数据库设计软件,例如:PowerBuilder,Delphi,VB等相配合使用来缩短开发时间和使系统设计更优化。
简洁教程
- 正向工程:
CDM(概念模型)——>PDM(物理模型)——>SQL(数据库sql语句)——>OOM(面向对象模型) - 反过来为逆向工程
- 建立模型方法:
CDM:File - New model - Model types - CDM
PDM:方法可以同上。方法二:在CDM文件页面下,Tools - Generate PDM
SQL:在PDM下,先配置数据库环境,Database - Change current DBMS。Database - Generate database,保存文件名后缀为 .sql
OOM:在CDM,PDM或SQL页面下,Tools - Generate OOM - 使用SQL:在相应的数据库工具中,右键表,执行SQL语句,选择导出的sql文件
- 查看SQL和OOM页面的代码:双击实体或表,点击Preview
详细教程
功能
- DataArchitect
这是一个强大的数据库设计工具,使用DataArchitect可利用实体-关系图为一个信息系统创建"概念数据模型"-CDM(Conceptual Data Model)。并且可根据CDM产生基于某一特定数据库管理系统(例如:Sybase System 11)的"物理数据模型"-PDM(Physical Data Model)。还可优化PDM,产生为特定DBMS创建数据库的SQL语句并可以文件形式存储以便在其他时刻运行这些SQL语句创建数据库。另外,DataArchitect还可根据已存在的数据库反向生成PDM,CDM及创建数据库的SQL脚本。 - ProcessAnalyst
这部分用于创建功能模型和数据流图,创建"处理层次关系"。 - AppModeler
为客户/服务器应用程序创建应用模型。 - ODBC Administrator
此部分用来管理系统的各种数据源。
四种模型文件
-
概念数据模型 (CDM)
CDM 表现数据库的全部逻辑的结构,与任何的软件或数据储藏结构无关。 一个概念模型经常包括在物理数据库中仍然不实现的数据对象。它给运行计划或业务活动的数据一个正式表现方式。 -
物理数据模型 (PDM)
PDM 叙述数据库的物理实现。 藉由 PDM ,你考虑真实的物理实现的细节。 它进入帐户两个软件或数据储藏结构之内拿。 你能修正 PDM 适合你的表现或物理约束。 -
面向对象模型 (OOM)
一个OOM包含一系列包,类,接口 , 和他们的关系。 这些对象一起形成所有的 ( 或部份) 一个软件系统的逻辑的设计视图的类结构。一个OOM本质上是软件系统的一个静态的概念模型。
你使用 PowerDesigner 面向对象模型建立面向对象模型.(OOM) 你能为纯粹地对象- 导向的靠模切目的建立一个OOM, 产生Java文件或者PowerBuilder文件,或你能使用一个来自OOM的物理数据模型(PDM)对象 , 来表示关系数据库设计分析。 -
业务程序模型 (BPM)
BPM 描述业务的各种不同内在任务和内在流程,而且客户如何以这些任务和流程互相影响。BPM 是从业务合伙人的观点来看业务逻辑和规则的概念模型,使用一个图表描述 程序,流程,信息和合作协议之间的交互作用。
概念模型工具及业务规则
定义业务规则
业务规则是业务活动中必须遵循的规则,是业务信息之间约束的表达式,它反映了业务信息数据之间的彝族完整性约束.每当信息实体中包含的信息发生变化的时候,系统都会检查这些信息是否违反特定的业务规则。
业务规则有的六种类型: 事实,定义,公式,确认,需求和约束。
当你使用业务规则约束 CDM 的时候,他们不被转变为可执行的代码。 业务规则可能被实现为 PDM 的约束。
产生一条新的业务规则
你将会产生一条业务规则标明该如何将版税归因于作家。
- 选择模型的业务规则。
业务规则的列表对话框显示已存在的业务规则。 - 点击增加一行工具。
一支箭头在新空行的开始处出现,并且一个默认的名字和代码被输入。默认为定义类型的业务规则 - 在名字列中键入的Author Percent。
这是业务规则的名字。 相同的代码自动地在代码列中被输入。 - 选择规则类型列下拉列表中的确认类型。这样定义了确认类型的业务规则。
- 点击应用。
新创建的业务规则被提交。名字点击字母顺序排列
当你点击的应用或者OK的时候,列表中的所有的名字按照字母顺序排列。 - 点击新的业务规则栏。一支箭头出现在最后的一行。
- 点击属性工具。
- 点击注释栏。注释对话框被打开,可以输入规则的描述。
- 在描述对话框中, 输入The percentage of royalties paid to all authors of a book adds up to 100% of the total royalties
这段文本解释业务规则的意义。
数据项目与实体
关于数据项目
一个数据项目是一个基本的信息。
创建一个新的数据项目
要管理多个作家的多个书, 你将会对每位作家版税的百分比创建数据项目并且为作家列表中的的作家名称排序。
- 选择菜单栏的模型数据项目。数据项目的列表显示已存在的数据项目。
- 点击增加一行工具。
一个箭头在第一个空白行的开始和一个默认的名称出现,而且代码被进入。 - 键入名称列的 TitleAuthor Percent 。
这是数据项目的名称。 相同的代码自动地在代码列中被输入入。 - 点击应用。
新创建的数据项目的被提交。名称按字母顺序地分类,当按应用或列表的确定的时候, 所有的名称按字母顺序地被分类。 列表的名称次序将会以其中任何一个操作而改变。 - 点击新的数据项目行。一个箭头在行开始处出现。
- 点击属性工具。或在行开始处双击箭头。
属性页为新创建的数据项目。 - 选择对话框的底部,域下拉列表框的 Percent 。
这应用 Percent 域的数据类型到新的数据项目。 在数据类型列中, SI 指出短整数型。 - 点击确定回到数据项目的列表。
- 点击增加一行工具。
一个箭头在第一个空白行的开始,一个默认的名称出现,相同的代码被输入。 - 输入 TitleAuthor Order 到名称列。
这是数据项目的名称。 相同的代码自动地在代码列中被输入。 - 点击应用。新创建的数据项目被提交。
- 点击新的数据项目行。一个箭头在行开始处出现。
- 点击属性工具。或在行开始处双击箭头。
属性页为新的数据项目出现。 - 点击问号按钮旁边数据类型下拉列表框。
标准数据类型对话框出现。 - 点击整数型 Radio 按钮。
这给 TitleAuthor Order数据项目一个整数型数据类型。 - 在每一个对话框中好点击。
创建一个新的实体 (回到模型的窗口)
你将会创建一个包含照片的信息,一个关联对主题到作者的实体 , 和二个主题种类不同的的实体: periodicals and non-periodicals
- 点击工具面板的实体工具。
- 点击图表的一个空白处。一个实体符号在点击位置出现。
在创建时的实体叫做Entity_n,n是一个对象创建次序的实体数字。 - 点击工具面板的指针工具。
- 双击你刚刚创建的实体符号。
实体特性页出现。 - 输入Picture 到名称框 。
这是实体的名称。 相同的代码自动地在代码列中被输入。 - 点击确定。新的实体显示名称 Picture 。
- 选择菜单中的模型->实体。实体对话框的列表显示已存在的实体。
- 点击增加一行工具。
- 键入periodicals到名称列。
代码自动地设定与名称相同。 - 点击应用。新的实体创建被提交。名称按字母顺序地分类
- 点击增加一行工具。
一个箭头在第一个空白行的开始处,一个默认的名称和代码被输入进入对话况中。 - 键入Nonperiodical到名称列。
- 点击应用。新的实体创建被提交。新的实体在列表上出现。
- 点击确定。
新的实体在 CDM 中出现。
定义实体间的联系和角色
创建关系
你将会创建在AUTHOR和PICTURE之间的关系实体。
- 点击工具面板的指针工具。
- 拖拉PICTURE实体符号到AUTHOR实体符号下面。
- 点击工具面板的关系工具。
- 在AUTHOR实体之内点击,当不要松开鼠标左键,拖拉光标到PICTURE实体。 在PICTURE实体之内放开鼠标按钮。
这创建在二个实体之间的关系。
在关系选项里面定义角色
你将会定义AUTHOR于PICTURE之间的关系选项。 一位AUTHOR不必要必须有一张PICTURE。 一张PICTURE不必要必须有一位AUTHOR。
- 点击工具面板的指针工具。
- 双击在AUTHOR和PICTURE之间的关系行。
关系特性页出现: - 输入Author Picture到名称框。这是关系的名称。
- 点击详细资料。详细资料页出现
- 在"AUTHOR"到 “PICTURE"中的角色名称框输入” is shown in"。
- 在"PICTURE"到 “AUTHOR"中的角色名称框输入” shows"。
- 点击确定。
关系在模型中出现
定义和使用域
关于域
一个域定义你能适用于多个数据项目的标准数据结构。 当你修正一个域时,你将更新全部与域关联的数据项目。 当你作任何变化的时候 , 这导致数据一致化特性比较容易。这样,就可以创建一些自己常用的域,来应用到数据对象上,就不会导致相同的用途,但是数据类型和长度不一致
创建一个新的域
你将会创建二个域以将会为钱数量定义一个标准化数据类型和模型中的百分比。
- 选择来自菜单栏的模型域。
域对话框的列表显示已存在的域。 - 点击增加一行工具。
一支箭头在第一空行的开始处出现,一个默认的名字和代码被进入。 - 在名字列输入Amount。
这是域的名字。 相同的代码自动地在代码列中被进入。 - 点击应用。新创建的域被提交。
- 点击新的域行。
- 点击属性工具。
- 点击紧邻数据类型下拉列表的问号按钮。
- 点击Momey的Radio按钮。
域现在有一个Money数据类型。 一个Money数据类型用一个固定长度的数字来储存数字。 稍后,当你应用这一个域用来储存Money的数量数据项目的时候,你将会他们继承这一个数据类型。 - 在长度框中打字 8 。
附到这一个域的数据项目的最大的长度将会是 8. - 在精密框中打字 2 。
附到这一个域的数据项目在小数点之后能带二个位置。 - 点击 OK 。
回到域特性页。 值 MN8,2 在数据类型列表框中出现。 MN 是一个Money数据类型的代码。 8指出Money类型能有 8个长度。 2指出数量有 2 个小数位精度. - 点击OK,回到域的列表。
- 点击增加一行工具。
一支箭头在第一个空白行的开始处,一个默认的名字和代码被输入。 - 名称列键入Percent。
这是域的名称。 相同的代码自动地在代码列中被进入。 - 点击应用。
新的域创建被提交。 - 点击新的域行。
一个箭头在行开始处出现。 - 点击属性工具。或在行开始处双击箭头。属性页为新创建的域。
- 点击问号按钮旁边数据类型下拉列表框。
标准数据类型对话框出现。 使用这一个对话框指定被域影响的数据形式。 - 点击短整数型 Radio 按钮。
代码 SI 指出Percent域有短整数型数据类型。 因为你不能为短整数型数据类型指定长度和精度 , 所以长度和精度框不可用的。 - 在每一个对话框中好点击。 域最大的好处就是可以很快的付给数据项目数据类型,并且保证加入到域中的所有数据项目保持一致(例如,很多数据库的表都有一个ID,那么这个ID在很多时候都是相同的数据类型和长度,那么就可以直接定义一个ID的域,这样,当你需要修改ID长度的时候,就不用一个一个的修改啦)
定义和使用继承
创建一个继承连接
你从子实体到父实体创建一个继承连接。你将会从 PERIODICAL 和 NONPERIODICAL 实体到 TITLE 实体定义一个继承。
-
选择工具面板的继承工具。
-
在 NONPERIODICAL 实体之内点击,按住鼠标左键不放,拖拉光标到 TITLE 实体。 在 TITLE 实体之内放开鼠标按钮。
一个继承连接出现在这些实体之间。 连接中间有一个半圆形, 和一个指向TITLE父实体的箭头。 NONPERIODICAL 是子实体。 子实体继承它的父实体。
-
选择工具板上的继承工具,点击半圆形,按住鼠标左键不放,拖拉光标到 PERIODICAL 实体。 在PERIODICAL实体内放开鼠标按钮。 继承符号因此改变。
定义继承属性
你将会分配一个主题到继承,使它互斥,而且定义它的生成模态。
- 点击工具面板的指针工具。
- 双击继承连接的中央半圆形。
继承特性页出现。 - 类型名称在名称框中继承。这是继承的名称。
- 选择子对象互斥的复选框。
因为主题是一份期刊或一份非期刊,不能两个兼有,所以是互斥的。 - 点击生成定位键。生成页出现。
- 在生成模式分组框中确定产生子对象复选框没有被选择。
这里的选择将影响继承如何产生物理数据模型PDM。 仅仅生成父对象意味着只有一个表将被生成,在这里例子中,你只需要知道在每个子对象中的属性是不同的。 - 输入Periodical到名称列中。
- 在数据类型列中点击。
- 点击下拉列表箭头。一个下拉列表框出现。
- 选择来自下拉列表框的 BL 。
你为那个指定属性定义 Boolean(BL) 数据类型。 - 移动到右边,知道出现 M 复选框。
这是强制性的复选框 。当选择的时候,它指出当Periodical列被产生的时候不能包含NULL价值。 - 选择 M 复选框 。
- 点击确定。
十字架在半圆形中出现,指出继承是互斥的。
继承不只是出现在编程中,在数据库设计中同样用到.
将CDM对象转换成PDM对象
- 选择Tools->Generate Physical Data Model。PDM生成选项对话框出现。
- 从数据库管理系统下拉列表框选择 Sybase AS Anywhere 8 。
这个对话框处理前面生成的教程文件名称作为PDM文件的名称,但是扩展名为PDM。 - 选择 Share 单选按钮。
正向工程和逆向工程
你能直接地从 PDM产生一个数据库, 或产生一个能在你的数据库管理系统环境中运行的数据库脚本,这是正向工程。
默认是生成与PDM相同数据库的脚本,但是也可以产生其他数据库的脚本。
产生一个数据库创建脚本
- 选择Database-> Generate Database。
数据库生成对话框出现。 它显示生成叁数。 默认叁数已经被选择。 - SQL的文件名称框中键入 PDM_TUTORIAL 。
- 在目录框中,输入一条路径。
- 选择生成脚本的按钮。
- 选择仅仅生成一个文件。
- 点击Selection 定位键。
- 点击底部表定位键。
表页列出模型中选择可用的所有数据库表。 - 全部点击选择工具。这选择所有的表复选框。
- 切换Views和Domains选择需要的视图和域。
- 点击确定。
可以生成数据库脚本,如果选择ODBC方式,则可以直接连接到数据库,从而直接产生数据库表以及其他数据库对象。
逆向工程
你能逆向工程已存在的数据库进新的 PDM 之内。 数据来源可能是从脚本文件或一个开放数据库连接数据来源。 当你逆向工程使用脚本的时候,你能使用一个单一脚本文件或一些脚本文件。
逆向工程数据库对象从一个脚本文件到新的 PDM
逆向工程来自一个脚本文件的数据库对象:
- 选择File->Reverse Engineer->Database 显示新的物理数据模型的对话框。
- 点击部份 Radio 按钮。
- 选择下拉列表框的一个数据库管理系统。
- 点击确定。数据库逆向工程对话框出现。
- 点击使用脚本文件的 Radio 按钮。
- 浏览适当的目录选择脚本文件。
- 点击选项定位键显示选项页。
- 选择逆向工程选项。
- 点击确定。
输出窗口的信息指出被指定的文件完全逆向工程。
逆向工程一个ODBC到新的 PDM:
- 选择File->Reverse Engineer->Database 显示新的物理数据模型的对话框。
- 点击Share 单选框。
- 选择下拉列表框的一个数据库管理系统。
- 点击确定。数据库逆向工程对话框出现。。
- 点击使用一个ODBC 单选框,选择一个ODBC。
- 点击选项定位键显示选项页。
- 选择逆向工程选项。
- 点击确定。ODBC逆向工程对话框出现。
- 在上面部份对话框的下拉列表框中选择限定词和拥有者。
- 点击一个对象类型定位键。
- 点击确定。
输出窗口的信息显示哪些表被转换而且指出数据库成功逆向工程。 - 生成报表及总结
当设计出数据库以后,就需要讨论,那么有一份正规的DOC文件是很必要的,那么,我们最后来讲讲生成报表,基本都是操作的事情,没有什么技巧。
生成报表
- 新建立报表文件
- 拖拉需要显示的部分到报表输出选项
- 修改输出选项的内容
- 修改列的宽度和需要显示的内容
- 生成RTF或者其他的类型的报表文件
举例
下面举例创建一个概念模型来看看PD的操作方式
- 按工具面板的实体工具。
当光标移动进图表的时候 , 变成实体的形状。 - 在 CDM 图表中点击任何一处。
一个实体符号在点击位置出现。实体名字为 Entity_n,n 是一个创建对象的次序编号。 - 实体工具仍然是可使用的, 因此点击再一次在 CDM 图表中产生另外的一个实体。
现在有 CDM 图表的二个实体。 - 点击工具面板的关系工具。
实体工具被现在释放,而且关系工具是可使用的。 - 点击在第一个实体之内而且当继续按着鼠标按钮的时候,拖拉光标到第二个实体。 在第二个实体之内放开鼠标按钮。这样可以产生关系。
- 点击鼠标右键,释放关系工具。
释放一个工具
一个工具保持可使用直到释放它。 释放一个工具, 可以选择另外的一个工具或按鼠标右键。 默认的 ,当按鼠标右键,指针工具被激活。 - 点击面板的套索工具,套索工具是现在可使用。
- 在第一个实体的上面角落点击光标,按着鼠标按钮, 拖拉光标拉一个包括两个实体的长方形,放开鼠标按钮,实体和关系被选择。
- 拖拉实体到一个新位置,关系跟随实体一起移动。
- 点击面板的文本工具。文本工具是现在可使用。
- 在关系下面点击光标,一些文本在被长方形指出的区域中出现。
- 点击鼠标右键,你释放文本工具。
- 双击文本,一个文本框出现。
- 在文本框中输入短文本。
- 点击OK,文本在图表中出现。
- 点击文本框的一个柄,按着鼠标左键,拖拉光标到右边直到所有的文本出现,放开鼠标按钮,在图表背景上点击,文本框柄消失。
- 点击面板的指针工具。你将使用这个工具选择并且删除符号。
- 在实体符号上点击,选择你想删除的对象。
- 按键盘上的 DEL 键,确认信息对话框出现, 问你如何删除选择。
如果你选择删除对象,你将删除图标符号并且删除模型中的对象。 如果你只选择删除符号,你将删除图标符号, 但是保存模型的对象。 - 点击OK,图表中的实体和联合的关系被移动。 对象也从模型删除。
- 点击剩余的实体,当你点击文本的时候 ,按着键盘的SHIFT键,二个对象将被选择。
- 按 DEL 键 , 并且在删除信息出现的时候点击 OK ,剩余的实体和文本被删除。
总结
- PowerDesigner仅仅是实现的工具
不要以为Power能帮你把关系什么的全部建立好,很多数据库理论只是还是需要的,设计数据库的时候,那些范式什么的,一定要掌握。
设计一个好的数据库,最好的工具不是必须的,但是基础理论是一定要的。 - PowerDesigner用途不局限与数据建模
正如以上所讲,PowerDesigner还可以进行业务流程建模,面向对象建模。以前我转贴过用PowerDweigner设计web service的一片文章,可以看看 - 并不是每个设计都需要用到PD
用Powerdesigner对付比较大型的项目,是很好的,对于短平快类型的项目,如果时间要求你1个星期完成一个程序,那么完全没有必要用PowerDesigner,直接维护数据库就可以了,当表的数量超过10个(一个小系统的表在10个左右)的时候,建议还是用用PowerDesigner。