PowerDesigner使用
Posted 写程序的小王叔叔
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)
展现模型对象之间的交互。可以在模型或包中创建多个图。
模型对象(Model Object)
模型对象泛指与模型相关的所有术语。一些模型对象(比面向对象模型中的类)图形化符号,但另一些对象(比如业务规则)无法显示在图中,只能通过对象浏览器或对象列表访问。
1.2.2 PowerDesigner几种模型文件
概念数据模型 (CDM)
概念数据模型(CDM)帮助你分析信息系统的概念结构,识别主要实体、实体的属性及实体之间的联系。概念数据模型(CDM)比逻辑数据模型 (LDM)和物理数据模型(PDM)抽象。CDM 表现数据库的全部逻辑的结构,与任何的软件或数据存储结构无关。一个概念模型经常包括在物理数据库中仍然不实现的数据对象。CDM可生成LDM、PDM和OOM
逻辑数据模型(LDM)
逻辑数据模型(LDM)帮助分析信息系统的结构,它独立于具体物理数据库的实现。LDM比概念数据模型(CDM)具体,但不允许定义视图、索引以及其他在物理数据模型(PDM)中处理的细节。可以把逻辑数据模型作为数据库设计的中间步骤,它在概念数据模型与物理数据模型之间。
物理数据模型(PDM)
PDM帮助分析数据库中的表、视图及其他对象,还包括数据仓库所需的多维对象。可针对目前主流数据库进行建模、逆向工程以及产生代码。
面向对象模型 (OOM)
一个OOM包含一系列包、类、接口和他们的关系。这些对象一起形成所有的(或部份)一个软件系统的逻辑的设计视图的类结构。 一个OOM 本质上是软件系统的一个静态的概念模型。使用PowerDesigner面向对象模型建立面向对象模型(OOM),能为纯粹地面向对象的系统建立一个OOM,产生Java 文件或者PowerBuilder 文件,或使用一个来自OOM的物理数据模型(PDM)对象,来表示关系数据库设计分析。
业务流程模型 (BPM)
BPM 描述业务的各种不同内在任务和内在流程,而且客户如何以这些任务和流程互相影响。BPM 是从业务合伙人的观点来看业务逻辑和规则的概念模型,使用一个图表描述程序、流程、信息和合作协议之间的交互作用。
2 主要模型文件的介绍和使用
2.1 1.BPM 业务处理模型的介绍
业务处理模型是从业务人员的角度对业务逻辑和规则进行详细描述的概念模型,并使用流程图表示从一个或多个起点到终点间的处理过程、流程、消息和协作协议。通过BPM 可以描述系统的行为和需求。可以使用图形表示对象的概念组织结构,然后生怕民需求的文档。作为一个概念层次的模块,BPM 适用于应用系统的系统分析阶段,完成系统需求分析和逻辑设计。BPM 与PowerDesigner 其他模块之间的关系如图2-1 所示
BPM 是用系统提供的各种对象来描述系统需求,下面简要介绍这些对象。BPM 包括表2-1 所示的对象。
下面以电子订单处理流程图为例,看看各个对象的作用。
图2-3 所示BPM 表示的是电子订单的处理过程。从起点“客户提交订单”开始,“财务部门”将电子订单的说明提供给“销售部门”,“销售部门”记录订单信息后检查货物库存情况并通知“财务部门”检查客户信用卡信息。“财务部门”从银行获取客户信用卡信息,如果信用卡余额不足则发送邮件通知客户其信用额度不足,否则告诉“财务部门”客可信。“销售部门”检查货物库存情况后进行判断,如果货物库存不足则发送邮件通知客户其所需货物库存不足,无法提供货物,否则,发送邮件通知客户订单已经确认并将需要发送的货物清单提供给“库房”,由“库房”发送货物。此BPM 描述了从起点“客户提交订单”到终点“订单完成”、“未确认金额”、“订单无效”经过的“财务部门”、“销售部门”、“库房”3 个部门所进行的业务处理流程图,此流程图还使用了Flow/Resource Flow、Process、Decision、Synchronization、Message Format 等对象
2.2 CDM概念数据模型的使用
2.2.1 概念数据模型概述
数据模型是现实世界中数据特征的抽象。数据模型应该满足三个方面的要求:
1)能够比较真实地模拟现实世界
2)容易为人所理解
3)便于计算机实现
概念数据模型也称信息模型,它以实体-联系(Entity-RelationShip,简称E-R)理论为基础,并对这一理论进行了扩充。它从用户的观点出发对信息进行建模,主要用于数据库的概念级设计。
通常人们先将现实世界抽象为概念世界,然后再将概念世界转为机器世界。换句话说,就是先将现实世界中的客观对象抽象为实体(Entity)和联系(Relationship),它并不依赖于具体的计算机系统或某个DBMS系统,这种模型就是我们所说的CDM;然后再将CDM转换为计算机上某个DBMS所支持的数据模型,这样的模型就是物理数据模型,即PDM。
CDM是一组严格定义的模型元素的集合,这些模型元素精确地描述了系统的静态特性、动态特性以及完整性约束条件等,其中包括了数据结构、数据操作和完整性约束三部分。
1)数据结构表达为实体和属性;
2)数据操作表达为实体中的记录的插入、删除、修改、查询等操作;
3)完整性约束表达为数据的自身完整性约束(如数据类型、检查、规则等)和数据间的参照完整性约束(如联系、继承联系等);
2.2.2 实体、属性及标识符的定义
实体(Entity),也称为实例,对应现实世界中可区别于其他对象的“事件”或“事物”。例如,学校中的每个学生,医院中的每个手术。
每个实体都有用来描述实体特征的一组性质,称之为属性,一个实体由若干个属性来描述。如学生实体可由学号、姓名、性别、出生年月、所在系别、入学年份等属性组成。
实体集(Entity Set)是具体相同类型及相同性质实体的集合。例如学校所有学生的集合可定义为“学生”实体集,“学生”实体集中的每个实体均具有学号、姓名、性别、出生年月、所在系别、入学年份等性质。
实体类型(Entity Type)是实体集中每个实体所具有的共同性质的集合,例如“患者”实体类型为:患者{门诊号,姓名,性别,年龄,身份证号.............}。实体是实体类型的一个实例,在含义明确的情况下,实体、实体类型通常互换使用。
实体类型中的每个实体包含唯一标识它的一个或一组属性,这些属性称为实体类型的标识符(Identifier),如“学号”是学生实体类型的标识符,“姓名”、“出生日期”、“信址”共同组成“公民”实体类型的标识符。
有些实体类型可以有几组属性充当标识符,选定其中一组属性作为实体类型的主标识符,其他的作为次标识符。
2.2.3 实体、属性及标识符的表达
2.3 新建概念数据模型
2.3.1 选择File-->New,弹出如图所示对话框,选择CDM模型(即概念数据模型)建立模型。
2.3.2 完成概念数据模型的创建。以下图示,对当前的工作空间进行简单介绍
2.3.3 选择新增的CDM模型,右击,在弹出的菜单中选择“Properties”属性项,弹出如图所示对话框。在“General”标签里可以输入所建模型的名称、代码、描述、创建者、版本以及默认的图表等等信息。在“Notes”标签里可以输入相关描述及说明信息。当然再有更多的标签,可以点击 "More>>"按钮,这里就不再进行详细解释
2.4 创建新实体
2.4.1 在CDM的图形窗口中,单击工具选项版上的Entity工具,再单击图形窗口的空白处,在单击的位置就出现一个实体符号。点击Pointer工具或右击鼠标,释放Entitiy工具。如图所示
2.4.2 双击刚创建的实体符号,打开下列图标窗口,在此窗口“General”标签中可以输入实体的名称、代码、描述等信息。
2.5 添加实体属性
2.5.1 在上述窗口的“Attribute”选项标签上可以添加属性,如下图所示。
注意:
数据项中的“添加属性”和“重用已有数据项”这两项功能与模型中Data Item的Unique code 和Allow reuse选项有关。
P列表示该属性是否为主标识符;D列表示该属性是否在图形窗口中显示;M列表示该属性是否为强制的,即该列是否为空值。
如果一个实体属性为强制的,那么, 这个属性在每条记录中都必须被赋值,不能为空。
2.5.2 在上图所示窗口中,点击插入属性按钮,弹出属性对话框,如下图所示。
2.5.3 定义属性的标准检查约束 标准检查约束是一组确保属性有效的表达式。在实体属性的特性窗口,打开如图所示的检查选项
在这个选项卡可以定义属性的标准检查约束,窗口中每项的参数的含义,如下
2.5.4 定义属性的附加检查
当Standard checks 或Rules 不能满足检查的要求时,可以在Additional Checks选项卡的Server子页上,通过SQL语句中使用%MINMAX%、%LISTVAL%、%RULES%、%UPPER%、%LOWER%几个变量来定义Standard和Rule,如图所示
2.6 标识符
标识符是实体中一个或多个属性的集合,可用来唯一标识实体中的一个实例。要强调的是,CDM中的标识符等价于PDM中的主键或候选键。
每个实体都必须至少有一个标识符。如果实体只有一个标识符,则它为实体的主标识符。如果实体有多个标识符,则其中一个被指定为主标识符,其余的标识符就是次标识符了。
2.6.1 定义主、次标识符 选择某个实体双击弹出实体的属性对话框。在Identifiers选项卡上可以进行实体标识符的定义。如下图所示
2.6.2 选择第一行“主标识符”,点击属性按钮或双击第一行“主标识符”,弹出属性对话框,如图所示
2.6.3 选择"Attributes"选项卡,再点击“Add Attributes”工具,弹出如图所示窗口,选择某个属性作为标识符就行了。
2.7 数据项
数据项(Data Item)是信息存储的最小单位,它可以附加在实体上作为实体的属性。
注意:模型中允许存在没有附加至任何实体上的数据项。
2.7.1 新建数据项
使用“Model”---> Data Items 菜单,在打开的窗口中显示已有的数据项的列表,点击 “Add a Row”按钮,创建一个新数据项,如图所示
2.7.2 数据项的唯一性代码选项和重用选项
使用Tools--->Model Options->Model Settings。在Data Item组框中定义数据项的唯一性代码选项(Unique Code)与重用选项(Allow Reuse)。
注意:
如果选择Unique Code复选框 ,每个数据项在同一个命名空间有唯一的代码,而选择Allow reuse ,一个数据项可以充当多个实体的属性。
2.7.3 在实体中添加数据项
双击一个实体符号,打开该实体的属性窗口。单击Attributes选项卡,打开如下图所示窗口
注意:
Add a DataItem 与 Reuse a DataItem的区别在于
Add a DataItem 情况下,选择一个已经存在的数据项,系统会自动复制所选择的数据项。如果您设置了UniqueCode选项,那系统在复制过程中,新数据项的Code会自动生成一个唯一的号码,否则与所选择的数据项完全一致。
Reuse a DataItem情况下,只引用不新增,就是引用那些已经存在的数据项,作为新实体的数据项。
2.8 建立关系
联系(Relationship)是指实体集这间或实体集内部实例之间的连接。
实体之间可以通过联系来相互关联。与实体和实体集对应,联系也可以分为联系和联系集,联系集是实体集之间的联系,联系是实体之间的联系,联系是具有方向性的。联系和联系集在含义明确的情况之下均可称为联系。
按照实体类型中实例之间的数量对应关系,通常可将联系分为4类,即一对一(ONE TO ONE)联系、一对多(ONE TO MANY)联系、多对一(MANY TO ONE)联系和多对多联系(MANY TO MANY)。
2.8.1 在CDM工具选项板中除了公共的工具外,还包括如下图所示的其它对象产生工具。
2.8.2 在图形窗口中创建两个实体后,单击“实体间建立联系”工具,单击一个实体,在按下鼠标左键的同时把光标拖至别一个实体上并释放鼠标左键,这样就在两个实体间创建了联系,右键单击图形窗口,释放Relationship工具。如下图所示
2.8.3 四种基本关系 联系
2.8.4 其他几类关系联系
除了4种基本的联系之外,实体集与实体集之间还存在标定联系(Identify Relationship)、非标定联系(Non-Identify RelationShip)和递归联系(Recursive Relationship)。
标定联系:
每个实体类型都有自己的标识符,如果两个实体集之间发生联系,其中一个实体类型的标识符进入另一个实体类型并与该实体类型中的标识符共同组成其标识符时,这种联系则称为标定联系,也叫依赖联系。反之称为非标定联系,也叫非依赖联系。
注意:
在非标定联系中,一个实体集中的部分实例依赖于另一个实例集中的实例,在这种依赖联系中,每个实体必须至少有一个标识符。而在标定联系中,一个实体集中的全部实例完全依赖于另个实体集中的实例,在这种依赖联系中一个实体必须至少有一个标识符,而另一个实体却可以没有自己的标识符。没有标识符的实体用它所依赖的实体的标识符作为自己的标识符。
换句话来理解,在标定联系中,一个实体(选课)依赖 一个实体(学生),那么(学生)实体必须至少有一个标识符,而(选课)实体可以没有自己的标识符,没有标标识符的实体可以用实体(学生)的标识符作为自己的标识符。
递归联系:
递归联系是实体集内部实例之间的一种联系,通常形象地称为自反联系。同一实体类型中不同实体集之间的联系也称为递归联系。
例如:在“职工”实体集中存在很多的职工,这些职工之间必须存在一种领导与被领导的关系。又如“学生”实体信中的实体包含“班长”子实体集与“普通学生”子实体集,这两个子实体集之间的联系就是一种递归联系。创建递归联系时,只需要单击“实体间建立联系”工具从实体的一部分拖至该实体的别一个部分即可。如图
2.9 定义联系的特性
2.9.1 在两个实体间建立了联系后,双击联系线,打开联系特性窗口,如图所示。
2.9.2 定义联系的角色名
在联系的两个方向上各自包含有一个分组框,其中的参数只对这个方向起作用,Role Name为角色名,描述该方向联系的作用,一般用一个动词或动宾组表。
如:“学生 to 课目 ” 组框中应该填写“拥有”,而在“课目To 学生”组框中填写“属于”。(在此只是举例说明,可能有些用词不太合理)。
2.9.3 定义联系的特定性
Mandatory 表洋这个方向联系的强制关系。选中这个复选框,则在联系线上产生一个联系线垂直的竖线。不选择这个复选框则表示联系这个方向上是可选的,在联系线上产生一个小圆圈。
2.9.4 有关的联系基数
联系具有方向性,每个方向上都有一个基数。
举例,
“系”与“学生”两个实体之间的联系是一对多联系,换句话说“学生”和“系”之间的联系是多对一联系。而且一个学生必须属于一个系,并且只能属于一个系,不能属于零个系,所以从“学生”实体至“系”实体的基数为“1,1”,从联系的另一方向考虑,一个系可以拥有多个学生,也可以没有任何学生,即零个学生,所以该方向联系的基数就为“0,n”,如图所示
3将CDM对象转换成PDM对象
当从一个CDM生成PDM时,PowerDesigner将CDM中的对象和数据类型转换为PDM对象和当前DBMS支持的数据类型。PDM转换概念对象到物理对象的对象关系如下表:
同一个表中的两列不能有相同的名称,如果因为外键迁移而导致列名冲突,PowerDesigner会自动对迁移列重命名,新列名由原始实体名的前三个字母加属性的代码名组成。主标识符在生成PDM中的主键和外键,非主标识符则对应生成候选键。在PDM中生成的键类型取决于CDM中用于定义一个Relationship的基数和依赖类型。
3.1 选择Tools->Generate Physical Data Model。PDM生成选项对话框出现。
1. 从数据库管理系统下拉列表框选择一种数据库系统系统。
2. 选择 Share 单选按钮。
3. 指出使用数据库管理系统库中储存的数据库管理系统定义文件。
3.2 点击detail页面。细节页出现。 挑选出来的或清除下列各项选项:
如果选择了Check Model ,模型将会在生成之前被检查。SaveGenerationDependencies 选项决定PowerDesigner 是否为每个模型的对象保存对象识别标签,这个选项主要用于合并由相同CDM生成的两个PDM。 选择Selection 定位键。它列出 CDM 的所有对象。默认地,所有的对象被选择。
3.3 当程序已经完成生成时,关闭结果窗户。PDM 在模型的窗口中出现。
生成PDM后,可能还会对前面的CDM进行更改,若要将所做的更改与所生成的PDM保持一致,这时可以对已有PDM进行更新。这时操作也很简单,Tools->Generate Physical Data Model,在打开的PDM Generation Options窗口中选择Update existing Physical Data Model,并通过Select model下拉框选择将要更新的PDM。如下图:
最后我们在CDM部分的工作应该就是根据所建立的概念模型生成文档了,文档是作为设计成果的输出,也用于开发小组成员交流的媒介,其重要性不能忽视。在PDM中生成的键类型取决于CDM中用于定义一个Relationship的基数和依赖类型。
4 使用物理数据模型创建数据库脚本
可以直接地从PDM产生一个数据库,或产生一个能在特定的数据库管理系统环境中运行的数据库脚本。默认是生成与PDM相同数据库的脚本,但是也可以产生其他数据库的脚本 产生一个数据库创建脚本
4.1 选择Database-> Generate Database
数据库生成对话框出现。 它显示生成参数。 默认参数已经被选择。
SQL的文件名称框中键入脚本文件名。 在目录框中,输入或选择一条路径。 选择生成脚本的按钮。 选择仅仅生成一个文件。 点击Selection 定位键。点击底部表定位键。 表页列出模型中选择可用的所有数据库表。
4.2 全部点击选择工具。这选择所有的表复选框。
4.3 切换Views和Domains选择需要的视图和域。点击Preview,可预览脚本。
4.4 点击确定
可以生成数据库脚本,如果选择ODBC方式,则可以直接连接到数据库,从而直接产生数据库表以及其他数据库对象。
5 逆向工程
Powerdesigner可以逆向工程已存在的数据库,加进新的PDM之内。数据来源可以是脚本文件或一个ODBC数据源。当你逆向工程使用脚本的时候,可以使用单一脚本文件或多个脚本文件。
5.1 从ODBC逆向工程到PDM:
选择File->Reverse Engineer->Database 显示新的物理数据模型的对话框。点击Share 单选框。 选择下拉列表框的一个数据库管理系统。
5.2 点击确定。数据库逆向工程对话框出现。
5.3 点击使用一个ODBC 单选框,选择一个ODBC。点击选项定位键显示选项页。 选择逆向工程选项。
5.4 点击确定。ODBC逆向工程对话框出现。
6 实战PowerDesigner,
从CDM->PDM->数据库
6.1 打开PowerDesigner,点击File->New
6.2 选择Conceptual Data Model,并修改Model name.
6.3 在Palette工具栏中点击Entity工具,并在工作区中建立两个Entity.
如何使用powerdesigner建数据表并生成脚本