1、.第 1 页 共 32 页Powerdesigner 数据库设计指南1. 概述本指南只介绍用 Powerdesigner 设计概念模型、物理模型及仓库的使用,Powerdesigner其它模型的使用不在本指南的介绍范围。本指南使用的工具为 Powerdesigner15。因 Powerdesigner 各版本间在概念模型、物理模型设计操作上的改变不大,本指南对使用其它版本的 Powerdesigner 具有一定的指导作用。本指南以组织机构模型作为实例。本指南的重点是介绍 Powerdesigner 工具的使用,不介绍建模技术。在实际的设计过程中,不强制要求一定要先建概念模型,再建物理模型。而是
2、根据个人或项目的要求决定建什么模型。2. 术语工作区:workspace。保存当前在 Powerdesigner 中使用的模型文件,下次执行Powerdesigner 时,自动把工作区中的模型文件显示出来。域:Domain。自定义的数据类型。概念模型:Conceptual Data Model。物理模型:Physical Data Model。仓库:Repository。用于保存提交的模型文件,每次提交的模型文件都有一个版本号。方便多人协同设计和版本管理。3. Powerdesigner 的一些特性应用3.1 Name 和 Code 的镜像设置Powerdesigner 的每一个对象都包含 n
3、ame 和 code,在生成代码时,使用的是code,name 是方便我们阅读。建议在建模时,name 栏输入中文,code 栏输入英文字符,这样既方便我们阅读,也方便生成代码。默认情况下,在 name 栏输入的内容会自动填写到 code。如果不希望这样,可执行菜单“Tools/ General Options”,在弹出窗口中选择 Dialog,如下图:.第 2 页 共 32 页取消 Name to Code mirroring 前的选择就可以了。3.2 与仓库的连接设置如果需要设置与仓库连接的参数,可执行“Tools/ General Options”,在弹出窗口中选择 Repository
4、,如下图:.第 3 页 共 32 页相信大家从窗口上各选项的字面意思就能明白该选项是起什么作用了。3.3 排列图元Powerdesigner 提供了快速排列图元位置的工具条 Layout。在工具条位置单击鼠标右键,弹出如下选择:选中 Layout,在工具条位置就会出现如下图元排列调整的工具条:.第 4 页 共 32 页4. 设计概念模型4.1 为什么要建概念模型概念模型的理论基础是实体/关系理论,建立的图形也叫实体/ 关系图,或者 E/R 图。我们也可以把 E/R 图看着是没有方法、只有属性的类图,是类图的一种特例。实体 /关系图能够使我们在建模时先抛开数据库表设计的细节,集中精力把现实世界的
5、实体和关系转换为实体/关系模型,以使我们建立的实体 /关系模型尽量真实的反映现实世界。概念模型与使用的数据库无关,当我们的系统需要使用不同的数据库系统时,我们就可以使用概念模型生成对应该数据库的物理模型,而不需要重新设计。4.2 界面图标说明4.3 模型设置执行“Tools/Model Options” ,在弹出窗口中选择 Model Options,如下图:实体实体关系 继承关系关联实体 关联连接包.第 5 页 共 32 页其中的主要选项说明: Name/Code case sensitive:Name/Code 栏区分大小写。 Notation:实体间关系的几种不同图形表示方式。建议统一选
6、择 E/R+Merise 方式。4.4 设置图元执行“Tools/Display Preferences” ,弹出如下窗口:.第 6 页 共 32 页在 Object View 中可设置各对象需要显示的内容,在 Format 中可设置显示的图形样式。4.5 新建一个概念模型点击 New 按钮,在弹出窗口中选择 Conceptual Data Model,给出模型名称,如下图:.第 7 页 共 32 页确定后即进入概念模型编辑界面。4.6 建立域执行菜单“Model/Domains” ,即弹出域列表窗口,在此窗口中增加数据库设计规范中的域定义,如下图:4.7 建立实体/关系图4.7.1 建立包在
7、开始建立实体关系图前,我们先按照分类或者模块建立包。建立包的好处是便于分类存放实体,增加模型的可读性。不要在一个图上画过多的实体及关系,这样会大大降低 E/R 图的易读性;也不要在一.第 8 页 共 32 页个图上画多页实体及关系,因为在生成文档时,系统是把一个图处理成一个图片,如果一个图上有很多页,生成图片上的实体图就会小到看不清楚。尽量在一个图上只画一页。我们把组织机构模型分成三个包:组织机构信息,人员信息,字典数据。组织机构信息包存放组织机构的实体关系图,人员信息包存放人员的实体关系图,字典数据包存放所有的类别实体。4.7.2 关系图元说明关系图元含义如下:0,10,nA B:一对多关系
8、。一个实体 A 对应 0 到多个实体 B,一个实体 B 对应 01 个实体 A。对应到物理模型,A 的主键作为 B 的外键,可为空。1,10,nA B:强制一对多关系。一个实体 A 对应 0 到多个实体B,一个实体 B 必须对应一个实体 A。对应到物理模型, A 的主键作为 B 的外键,不能为空。1,10,nA B:依赖关系。实体 B 依赖实体 A 而存在,即存在实体 A 不一定存在实体 B,不存在实体 A 肯定不存在实体 B。对应到物理模型,A 的主键作为 B 的主键之一,不能为空。4.7.3 建立图假设我们建立的组织机构模型要满足如下要求:1. 有多个同级别不同行业的组织机构,有的组织机构
9、可能跨多个行业;2. 各组织机构的子机构层数不尽相同;3. 组织机构的类型可能不同;4. 组织机构所处的行政区域不尽相同。我们在组织机构信息包中初步建立的 E/R 图如下:0,10,n0,10,n1,n 1,n0,1 0,n组 织 机 构组 织 机 构 主 键组 织 机 构 名 称 行 业行 业 主 键行 业 名 称 类 型类 型 主 键类 型 名 称 行 政 区 域行 政 区 域 主 键行 政 区 域 组 织 机 构 的 行 业.第 9 页 共 32 页在这个 E/R 图中,我们只是从上面的描述中识别出实体和实体间的关系。因组织机构和行业是多对多的关系,图中的“组织机构的行业”即是组织机构和
10、行业间的关联实体。建立初步的 E/R 图后,我们再检查各实体及实体间的关系。如果要对一个关系做小的调整,双击该关系,弹出关系属性窗口,切换到 cardinalities 页,如下图:在此页面上即可调整关系。建议:在建立、修改 E/R 图的过程中,不要急于输入实体、实体属性的 code 栏内容,也不要急于确定实体属性的数据类型。因为我们在整个建模过程中,会不断增加、删除实体及实体的属性,如果一开始就先给 code 栏输入内容,会增加我们的工作量。等到 E/R 图定型后,再根据数据库设计规范要求一次性输入 code 栏内容、确定实体属性的数据类型。4.7.4 使用另一个包中的实体假设人员信息有如下
11、要求:1. 一个人员必须且只能属于一个组织机构;2. 一个人员可能会有一个职称。我们在人员信息包中建人员模型时,就需要用到组织机构信息包中的组织机构实体。Powerdesigner 提供了 Paste as Shourcut 功能(快捷键 Ctrl+K)来满足这个操作要求。先在组织机构实体上按 copy(快捷键 Ctrl+C) ,然后回到人员信息包中的图上按 Paste as .第 10 页 共 32 页Shourcut 功能(快捷键 Ctrl+K) 。最后建模的结果如下图:0,10,n1,10,n人 员人 员 主 键姓 名 职 称职 称 主 键职 称 组 织 机 构(组 织 机 构 信 息
12、)组 织 机 构 主 键组 织 机 构 名 称 在组织机构名称下面注明其来源于组织机构信息包,在左下角有个快捷符号。有的机构中,一个人员可能会在多个部门任职,这种情况在政府机构中比较常见。我们上面的人员信息模型就无法满足这种要求,需要改成下面这个模型了:0,10,n0,n0,n组 织 机 构(组 织 机 构 信 息 )组 织 机 构 主 键组 织 机 构 名 称 职 称(字 典 数 据 )职 称 主 键职 称 人 员人 员 主 键姓 名 机 构 人 员4.7.5 完善设计在实体及实体关系基本确定后,我们就需要完善各实体的具体内容了。有的人习惯在建实体时就把实体的所有属性都录入进去,这也没什么问
13、题。在前面的 E/R 图中,我们只给出了实体少量属性,这显然是远远不够的。前面之所以这样做,是因为我们想把精力和工作重点放在识别实体和实体关系上。现在我们就需要补充实体的属性了。要补充的属性包括如下几方面:1. 实体本来具有的属性;2. 基于设计考虑要添加的属性;3. 数据库设计规范中要求添加的属性。建议:1. 对同一个实体,设计时的视角不同,系统的要求不同,所需要的实体属性也就不同。尽量不要引入当前系统不需要的属性。2. 尽量多写注释,尤其是一些不容易理解的实体和属性,更应该写上注释。因为设计人员明白的实体和属性,其他人员未必能够明白。或者自己设计时明白了,过了一段时间后可能又忘了。小技巧:在建模时为了方便,我们直接在各包中画需要的字典实体。模型稳定后,再按住各字典实体,拖到字典数据包中。被拖走字典实体的组织结构模型如下图:0,10,n0,1 0,n1,n 1,n0,1 0,n组 织 机 构组 织 机 构 主 键组 织 机 构 名 称 行 业(字 典 数 据 )行 业 主 键行 业 名 称 类 型(字 典 数 据 )类 型 主 键类 型 名 称 行 政 区 域(字 典 数 据 )行 政 区 域 主 键行 政 区 域 组 织 机 构 的 行 业