1. 概述
本指南只介绍用Powerdesigner设计业务流程模型、概念模型、物理模型及仓库的使用,Powerdesigner其它模型的使用不在本指南的介绍范围.
本指南使用的工具为Powerdesigner15。因Powerdesigner各版本间在业务流程模型、概念模型、物理模型设计操作上的改变不大,本指南对使用其它版本的Powerdesigner具有一定的指导作用。
本指南以组织机构模型作为实例。
本指南的重点是介绍Powerdesigner工具的使用,不介绍建模技术。
在实际的设计过程中,不强制要求一定要先建概念模型,再建物理模型.而是根据个人或项目的要求决定建什么模型.
2. 术语
工作区:workspace.保存当前在Powerdesigner中使用的模型文件,下次执行Powerdesigner时,自动把工作区中的模型文件显示出来。
域:Domain。自定义的数据类型。 概念模型:Conceptual Data Model。 物理模型:Physical Data Model。
仓库:Repository.用于保存提交的模型文件,每次提交的模型文件都有一个版本号。方便多人协同设计和版本管理。
3. Powerdesigner的一些特性应用
3.1 Name和Code的镜像设置
Powerdesigner的每一个对象都包含name和code,在生成代码时,使用的是code,name是方便我们阅读。
建议在建模时,name栏输入中文,code栏输入英文字符,这样既方便我们阅读,也方便生成代码.
默认情况下,在name栏输入的内容会自动填写到code.如果不希望这样,可执行菜单“Tools/ General Options\",在弹出窗口中选择Dialog,如下图:
第 1 页 共 33 页
.
取消Name to Code mirroring前的选择就可以了.
3.2 与仓库的连接设置
如果需要设置与仓库连接的参数,可执行“Tools/ General Options”,在弹出窗口中选择Repository,如下图:
第 2 页 共 33 页
.
相信大家从窗口上各选项的字面意思就能明白该选项是起什么作用了。
3.3 排列图元
Powerdesigner提供了快速排列图元位置的工具条Layout。在工具条位置单击鼠标右键,弹出如下选择:
选中Layout,在工具条位置就会出现如下图元排列调整的工具条:
第 3 页 共 33 页
.
4. 设计业务流程模型
业务流程模型(Business Process Model),指一个由图形对象(graphical objects)组成的网状图,主要的图形对象包括流程(Process)和用于定义这些活动执行顺序的流程控制器(Flow controls).
4.1 界面图标说明 结束 流程处理 条件判断 泳道 流程控制
开始 并行流程 资源 4.2 新建一个业务流程模型
点击New按钮,在弹出窗口中选择Business Process Model,给出模型名称,如下图:
确定后即进入业务流程模型编辑界面.
第 4 页 共 33 页
. 4.3 建立业务流程图 4.3.1 建立包
如果一个业务模型比较大,业务流程图多,建议按照一定的分类原则建立分类包,然后在各包下建立业务流程图,这样便于分类管理.
4.3.2 建业务流程图的一些注意事项
1. 一个流程有且只有一个开始,不能为一个流程画多个开始.但一个流程可以有多个结
束;
2. 可以把一个有子流程的流程处理设为复合流程处理,复合流程的图标是
Process_1,即在流程名称下面有个+号.设复合流程的方法是在流程上点击鼠标
右键,在弹出的菜单中选择decompose process。
5. 设计概念模型
5.1 为什么要建概念模型
概念模型的理论基础是实体/关系理论,建立的图形也叫实体/关系图,或者E/R图。我们也可以把E/R图看着是没有方法、只有属性的类图,是类图的一种特例。实体/关系图能够使我们在建模时先抛开数据库表设计的细节,集中精力把现实世界的实体和关系转换为实体/关系模型,以使我们建立的实体/关系模型尽量真实的反映现实世界。
概念模型与使用的数据库无关,当我们的系统需要使用不同的数据库系统时,我们就可以使用概念模型生成对应该数据库的物理模型,而不需要重新设计。
5.2 界面图标说明
包 实体关系 继承关系
实体 关联实体 关联连接 5.3 模型设置
执行“Tools/Model Options”,在弹出窗口中选择Model Options,如下图:
第 5 页 共 33 页
.
其中的主要选项说明:
Name/Code case sensitive:Name/Code栏区分大小写。
Notation:实体间关系的几种不同图形表示方式。建议统一选择E/R+Merise方式。
5.4 设置图元
执行“Tools/Display Preferences\",弹出如下窗口:
第 6 页 共 33 页
.
在Object View中可设置各对象需要显示的内容,在Format中可设置显示的图形样式.
5.5 新建一个概念模型
点击New按钮,在弹出窗口中选择Conceptual Data Model,给出模型名称,如下图:
第 7 页 共 33 页
.
确定后即进入概念模型编辑界面.
5.6 建立域
执行菜单“Model/Domains”,即弹出域列表窗口,在此窗口中增加《数据库设计规范》中的域定义,如下图:
5.7 建立实体/关系图 5.7.1 建立包
在开始建立实体关系图前,我们先按照分类或者模块建立包。建立包的好处是便于分类存放实体,增加模型的可读性。
不要在一个图上画过多的实体及关系,这样会大大降低E/R图的易读性;也不要在一个
第 8 页 共 33 页
. 图上画多页实体及关系,因为在生成文档时,系统是把一个图处理成一个图片,如果一个图上有很多页,生成图片上的实体图就会小到看不清楚.尽量在一个图上只画一页。
我们把组织机构模型分成三个包:组织机构信息,人员信息,字典数据.组织机构信息包存放组织机构的实体关系图,人员信息包存放人员的实体关系图,字典数据包存放所有的类别实体。
5.7.2 关系图元说明
关系图元含义如下:
A0,10,nB:一对多关系。一个实体A对应0到多个实体B,一
个实体B对应0~1个实体A。对应到物理模型,A的主键作为B的外键,可为空.
A1,10,nB:强制一对多关系。一个实体A对应0到多个实体
B,一个实体B必须对应一个实体A。对应到物理模型,A的主键作为B的外键,不能为空。
A1,10,nB:依赖关系。实体B依赖实体A而存在,即存在实体A
不一定存在实体B,不存在实体A肯定不存在实体B。对应到物理模型,A的主键作为B的主键之一,不能为空。
5.7.3 建立图
假设我们建立的组织机构模型要满足如下要求:
1. 有多个同级别不同行业的组织机构,有的组织机构可能跨多个行业; 2. 各组织机构的子机构层数不尽相同; 3. 组织机构的类型可能不同; 4. 组织机构所处的行政区域不尽相同.
我们在组织机构信息包中初步建立的E/R图如下:
0,1类型类型主键 第 9 页 共 33 页 . 行业是多对多的关系,图中的“组织机构的行业”即是组织机构和行业间的关联实体。 建立初步的E/R图后,我们再检查各实体及实体间的关系。如果要对一个关系做小的调整,双击该关系,弹出关系属性窗口,切换到cardinalities页,如下图: 在此页面上即可调整关系. 建议:在建立、修改E/R图的过程中,不要急于输入实体、实体属性的code栏内容,也不要急于确定实体属性的数据类型。因为我们在整个建模过程中,会不断增加、删除实体及实体的属性,如果一开始就先给code栏输入内容,会增加我们的工作量。等到E/R图定型后,再根据《数据库设计规范》要求一次性输入code栏内容、确定实体属性的数据类型。 5.7.4 使用另一个包中的实体 假设人员信息有如下要求: 1. 一个人员必须且只能属于一个组织机构; 2. 一个人员可能会有一个职称。 我们在人员信息包中建人员模型时,就需要用到组织机构信息包中的组织机构实体.Powerdesigner提供了Paste as Shourcut功能(快捷键Ctrl+K)来满足这个操作要求。先在组织机构实体上按copy(快捷键Ctrl+C),然后回到人员信息包中的图上按Paste as Shourcut功能(快捷键Ctrl+K)。最后建模的结果如下图: 第 10 页 共 33 页 . 组织机构(组织机构信息)组织机构主键 组织机构(组织机构信息)组织机构主键 在实体及实体关系基本确定后,我们就需要完善各实体的具体内容了。有的人习惯在建实体时就把实体的所有属性都录入进去,这也没什么问题。 在前面的E/R图中,我们只给出了实体少量属性,这显然是远远不够的。前面之所以这样做,是因为我们想把精力和工作重点放在识别实体和实体关系上。现在我们就需要补充实体的属性了。要补充的属性包括如下几方面: 1. 实体本来具有的属性; 2. 基于设计考虑要添加的属性; 3. 《数据库设计规范》中要求添加的属性。 建议: 1. 对同一个实体,设计时的视角不同,系统的要求不同,所需要的实体属性也就不同. 尽量不要引入当前系统不需要的属性。 2. 尽量多写注释,尤其是一些不容易理解的实体和属性,更应该写上注释.因为设计人 员明白的实体和属性,其他人员未必能够明白。或者自己设计时明白了,过了一段时间后可能又忘了。 小技巧:在建模时为了方便,我们直接在各包中画需要的字典实体。模型稳定后,再按住各字典实体,拖到字典数据包中.被拖走字典实体的组织结构模型如下图: 0,1类型(字典数据)类型主键 第 11 页 共 33 页 . 5.7.6 确定编码和数据类型 前面的工作完成后,这一步的工作就比较简单了。按照《数据库设计规范》,输入实体、属性的Code,选择实体的数据类型就行了. 选择实体的数据类型时,优先使用前面定义的域,域中没有需要的数据类型时,再自己选择数据类型. 双击一个实体,然后切换到Attributes页,就是属性的编码和数据类型编辑界面了,如下图: 上图中三个选择列的意思如下: M:强制。选上该项后,即表示该属性的值不能为空。 P:主键。这个就不用解释了. D:显示。如果不选该项,即表示该属性不需要显示.这个主要是针对C/S结构设计 的,使用默认值就行了。 当我们选择域后,该域的数据类型就自动显示在属性的数据类型列了。 5.8 检查 Powerdesigner提供的Check Model功能可帮助我们找出、改正设计模型中的错误和疏漏。执行“Tools/Check Model\",弹出如下窗口: 第 12 页 共 33 页 . 在“Options”页选择要检查的项目,在“Selection”页选择要检查的内容,然后确定,Powerdesinger就开始检查并把检查结果显示出来。 建议:在生成物理模型前一定要执行检查功能。检查结果中没有错误,最好也没有警告后才生成物理模型. 5.9 生成物理模型 完成前面各步骤的工作,通过检查后,就可以生成物理模型了。 执行“Tools/Generate Physical Data Model”,弹出如下窗口: 第 13 页 共 33 页 . General页上有“生成新的物理模型”、“修改存在的物理模型\"选项。 生成新的物理模型:选择物理模型使用的数据库,给出物理模型的Name和Code(都有默认值). 修改存在的物理模型:系统会先进行差异比较,并把比较结果显示出来,如下图: 第 14 页 共 33 页 . 上图中的“性别”是概念模型有而存在的物理模型中没有的,用户可以选择是否生成到物理模型中. 5.10 生成报表 Powerdesigner提供了比较方便的报表模板定制和报表生成功能。 用好这个功能,以后就不用再辛苦的写数据库设计文档,直接根据建好的模型生成数据库设计文档就行了. 5.10.1 定制报表模板 执行“Report/Report Templates”,弹出如下窗口: 第 15 页 共 33 页 . Powerdesigner提供了几种报表模板,如果觉得不合适,可以点击上图中的新建按钮来创建一个新的报表模板,也可以修改现有的模板。 Powerdesigner报表模板定制不仅能定制段内容,还能定制表格列、列的标题、列宽、字体。 5.10.2 生成报表 执行“Report/Generate Report”,弹出如下窗口: 选择报表模板,生成报表的格式和保存路径,就可以生成报表了。 第 16 页 共 33 页 . 6. 设计物理模型 6.1 界面图标说明 表 存储过程 视图 关联关系 6.2 模型设置 执行“Tools/Model Options\",在弹出窗口中选择Model Settings,如下图: 其中的主要选项说明: Name/Code case sensitive:Name/Code栏区分大小写。 Notation:表间关系的几种不同图形表示方式。建议统一选择CODASYL方式. 6.3 设置图元 执行“Tools/Display Preferences”,弹出如下窗口: 第 17 页 共 33 页 . 在Object View中可设置各对象需要显示的内容,在Format中可设置显示的图形样式. 6.4 新建一个物理模型 点击New按钮,在弹出窗口中选择Conceptual Data Model,给出模型名称,选择数据库 第 18 页 共 33 页 . 类型,如下图: 确定后即进入概念模型编辑界面。 6.5 建立表及表关联 与概念数据模型中不同,在物理模型中,当我们建立两个表间的关联关系时,系统会自动把一个表的主键作为另一个表的外键插入到该表中。下图是从概念模型生成的物理模型: 类型(字典数据)类型主键 0,1类型(字典数据)类型主键 第 19 页 共 33 页 . 如果是根据已建好的概念模型生成的物理模型,在表及关联上就不需要做什么调整了。 6.6 建立视图 Powerdesigner建立视图时,需要输入SQL语句,如下图: 得到的视图显示如下: 类型(字典数据)类型主键 我们还可以在General页面设置视图的用途,如下图: 第 20 页 共 33 页 . Useage栏有三个选择项: Query only:仅能查询视图数据. Updatable:能够查询视图数据,修改视图关联表的数据。 With check options:除了具有updatable的功能外,插入数据时还进行数据项的合法 性检查。 Type栏有两个选择项: View:视图。 Withoptions:比View多了Index、Physical Options属性页.在Index中可以为视图 建立索引。Physical Options有三个选项。这个选项仅对部分支持视图类型的数据库服务器有用。 记得在Comment栏填写视图的注释哦. 6.7 建立存储过程 与建立视图一样,建立存储过程时,也需要自己编写程序。存储过程的程序在Definition页编写,如下图: 第 21 页 共 33 页 . 建议:使用存储过程实现对复杂、大量的数据计算和数据处理.因为存储过程是直接在数据库服务器中运行,比把数据从数据库中读取出来再处理的速度要快很多. 记得在Comment栏填写视图的存储过程哦。 6.8 检查 完成物理模型后,在生成数据库之前,千万不要忘记执行检查功能。 物理模型的检查与概念模型的检查操作一样,具体请参见“设计概念模型\"中的“检查\". 记住,要检查到没有错误和警告后,才能生成数据库。 概念模型生成物理模型时容易出问题的地方: 概念模型的自关联关系生成物理模型时,因为需要把本表中的主键作为本表的外 键,而一个表中的字段名是不允许相同的,所以Powerdesigner就自己给生成的这个外键取了一个名,而这个字段名可能不符合设计规范,需要我们为其改名. 概念模型的多对多关系生成物理模型时,会生成重复的索引。因为Powerdesigner 在生成物理模型时,会为所有的主键、外键生成索引。就是除了为复合主键生成一个复合索引外,还会为每个作为外键的主键生成一个索引.建议删除重复的索引. 6.9 生成数据库 建议:开发和调试时,不用生成外键和索引。交付测试及以后的版本生成外键和索引,以保证数据的完整性和一致性。 6.9.1 改变当前数据库系统 要生成的数据库与物理模型当前的数据库不同时,需要执行此功能。 执行“Database/Change Current DBMS”,弹出如下窗口: 第 22 页 共 33 页 . 选择新的数据库即可. 6.9.2 配置数据库连接 我们要把Powerdesigner与数据库服务器连接上,才能直接从物理模型生成数据库。否则就只有先生成SQL脚本,再到数据库服务器上执行了。 执行“Database/Configure Connections”,弹出如下窗口: 第 23 页 共 33 页 . 如果列表中已有ODBC连接,选中就行了。如果没有,就要新建一个。 配置好数据库连接后,执行“Database/ Connect”,弹出如下窗口: 选择前面建立的ODBC,输入登录数据库服务器的用户名和密码,点击“Connect”,就连接上数据库了。 第 24 页 共 33 页 . 6.9.3 生成数据库 执行“Database/ Generate Database\",弹出如下窗口: 上图中的目录是指生成的SQL脚本文件的保存目录,文件名是指生成的SQL脚本文件的文件名.可以自己选择SQL脚本文件的保存目录,自己给定SQL脚本的文件名。 Generation Type选项是选择生成脚本还是直接生成数据库.如果选择“Script generation\",则只生成SQL脚本文件.如果选择“Direct generation\"则在生成SQL脚本文件的同时,也把物理模型中选择生成的对象生成到数据库中。 可以在Preview页预览SQL脚本。 完成选择后,按确定即开始执行SQL脚本,生成数据库. 6.9.4 更新数据库 如果数据库已经存在,我们只是想用修改后的物理模型更新数据库,则执行“Database/ Apply Model Changes to Database\",弹出如下窗口: 第 25 页 共 33 页 . 在“Get database schema”中选择“Using a data source\",按确定后,系统先对比物理模型和数据库,并显示对比结果: 第 26 页 共 33 页 . 上图中左边是物理模型的对象,右边是数据库中的对象。 有带!的黄色标签的目录,表示该目录下有对象变动。 在右边窗口中,对象前的“+”号表示数据库中无此对象。用户勾选上后,就可以生成到数据库中了。 如果右边窗口中对象前是“-”号,表示数据库中的对象在物理模型中没有.如果勾选上,生成数据库时就在数据库中删除勾选的对象。 如果右边窗口中对象前是“=”号,表示该对象在两边的内容不一致。如果勾选上,生成数据库时就会用物理模型中的对象替换数据库中的对象。 6.9.5 只生成物理模型与数据库不一致部分的SQL脚本 5。9。4中已经说明用物理模型更新已经存在的数据库时,Powerdesigner会先比较物理模型和数据库,并显示比较结果中不一致的内容。我们可以利用这个功能,只生成物理模型与数据库不一致部分的SQL脚本。 建议:为了不出现混乱,不要手工直接改数据库中的内容,所有需要的修改都先修改物理模型,然后用物理模型来更新数据库,并且把更新的内容通知项目组的所有人员. 执行“Database/ Apply Model Changes to Database”,弹出如下窗口: 第 27 页 共 33 页 . 在弹出的窗口中,先做如下设置: 在Directory栏选择SQL脚本的保存路径; 在File name栏给定SQL脚本的名称(系统默认给出了保存路径和名称); 在Generation Type处选择Script generation,勾选上One file only; 在Get Database schema处选择Using a data source,并给定已建立的ODBC数据源。 然后点击“确定”,弹出如下窗口: 第 28 页 共 33 页 . 在左上角的下拉选择框中选择对应的数据库,然后点击“OK”,弹出如下窗口: 在这个窗口中详细列出了模型和数据库的差异(已在5.9.4中说明了窗口中差异的含义),选择要更新的项,然后点击“OK”,需要的SQL脚本文件就生成了。 第 29 页 共 33 页 . 6.10 逆向工程 执行“File/Reverse Engineer/Database”,按照弹出窗口一步步操作,就可以从数据库中逆向生成物理模型。 6.11 生成报表 见“设计概念模型/生成报表”。 7. 仓库的使用 7.1 仓库的作用 Powerdesigner的仓库所起的作用类似配置管理工具。但其更方便多人协作,共同在一个模型文件上进行设计工作。例如几个人分工合作设计一个系统的数据库。 7.2 需要的环境 Powerdesigner使用数据库作为仓库的存储工具,支持多种数据库系统.因此要使用Powerdesigner的仓库功能,必须要有相应的数据库系统. 7.3 使用前的准备 在使用Powerdesigner的仓库前,需要先建立一个供Powerdesigner使用的数据源。建议用Windows的ODBC建立数据源。 建好数据源后,执行“Repository/Repository Definitions”,在弹出的窗口中新增一个Repository Definition,然后双击其前面的按钮条,弹出如下窗口: 默认的登录用户是ADMIN,无密码。 填写仓库名称,选择数据源,填写数据库用户名及密码,点击OK就可以了. 7.4 初次使用 Powerdesigner先创建仓库需要用的数据库,创建成功后,仓库就可以正常使用了。 第 30 页 共 33 页 . 7.5 增加仓库用户 用ADMIN登录仓库后,执行“Repository/Users”,弹出仓库用户编辑窗口,如下图: 我们就可以增加用户了。双击用户名前面的按钮条,弹出用户信息编辑窗口如下: 在此窗口中可编辑用户的相关信息. 建议:Full name用中文姓名,Login name用编码。这样既方便我们登录,也方便查看版本信息,如下图: 第 31 页 共 33 页 . 上图中,中文姓名比编码更清楚的看到是谁提交的版本。 7.6 存入仓库数据 执行“Repository/Check In”,在弹出的窗口中按新增文档按钮,弹出如下窗口: 选择本地工作区中要保存的文档,在仓库文档栏选择保存方式,然后按OK,所选择的文件就保存到仓库中了。 第 32 页 共 33 页 . 如果是第一次上传文档,仓库文档保存方式就选择New。 建议:每次上传时,保存方式选择Integrate。这样Powerdesigner就会把当前版本和仓库中的版本进行比较,并把比较结果显示出来,由用户决定有差异的地方该如何保存。 7.7 提取仓库数据 执行“Repository/Check Out”就可以从仓库中选择需要提取的文档及版本了。 7.8 权限管理 系统默认有两个权限组:Administrators,All users。All users的权限如下图: 系统默认勾选了“Manage All Documents”,这使得该用户组下的每个用户都能够管理仓库中的所有文档,这显然不利于多项目共同使用一个仓库,故取消了这个权限。 第 33 页 共 33 页 因篇幅问题不能全部显示,请点此查看更多更全内容