Powerdesigner数据库设计指南_第1页
Powerdesigner数据库设计指南_第2页
Powerdesigner数据库设计指南_第3页
Powerdesigner数据库设计指南_第4页
Powerdesigner数据库设计指南_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、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的每一个对象都包含name和code,在生成代码时,使用的是code,name是方便

3、我们阅读。建议在建模时,name栏输入中文,code栏输入英文字符,这样既方便我们阅读,也方便生成代码。默认情况下,在name栏输入的内容会自动填写到code。如果不希望这样,可执行菜单“tools/ general options”,在弹出窗口中选择dialog,如下图:取消name to code mirroring前的选择就可以了。3.2 与仓库的连接设置如果需要设置与仓库连接的参数,可执行“tools/ general options”,在弹出窗口中选择repository,如下图:相信大家从窗口上各选项的字面意思就能明白该选项是起什么作用了。3.3 排列图元powerdesigner

4、提供了快速排列图元位置的工具条layout。在工具条位置单击鼠标右键,弹出如下选择:选中layout,在工具条位置就会出现如下图元排列调整的工具条:4. 设计概念模型4.1 为什么要建概念模型概念模型的理论基础是实体/关系理论,建立的图形也叫实体/关系图,或者e/r图。我们也可以把e/r图看着是没有方法、只有属性的类图,是类图的一种特例。实体/关系图能够使我们在建模时先抛开数据库表设计的细节,集中精力把现实世界的实体和关系转换为实体/关系模型,以使我们建立的实体/关系模型尽量真实的反映现实世界。概念模型与使用的数据库无关,当我们的系统需要使用不同的数据库系统时,我们就可以使用概念模型生成对应该

5、数据库的物理模型,而不需要重新设计。实体实体关系继承关系关联实体关联连接4.2 界面图标说明包4.3 模型设置执行“tools/model options”,在弹出窗口中选择model options,如下图:其中的主要选项说明:l name/code case sensitive:name/code栏区分大小写。l notation:实体间关系的几种不同图形表示方式。建议统一选择e/r+merise方式。4.4 设置图元执行“tools/display preferences”,弹出如下窗口:在object view中可设置各对象需要显示的内容,在format中可设置显示的图形样式。4.5

6、新建一个概念模型点击new按钮,在弹出窗口中选择conceptual data model,给出模型名称,如下图:确定后即进入概念模型编辑界面。4.6 建立域执行菜单“model/domains”,即弹出域列表窗口,在此窗口中增加数据库设计规范中的域定义,如下图:4.7 建立实体/关系图4.7.1 建立包在开始建立实体关系图前,我们先按照分类或者模块建立包。建立包的好处是便于分类存放实体,增加模型的可读性。不要在一个图上画过多的实体及关系,这样会大大降低e/r图的易读性;也不要在一个图上画多页实体及关系,因为在生成文档时,系统是把一个图处理成一个图片,如果一个图上有很多页,生成图片上的实体图就

7、会小到看不清楚。尽量在一个图上只画一页。我们把组织机构模型分成三个包:组织机构信息,人员信息,字典数据。组织机构信息包存放组织机构的实体关系图,人员信息包存放人员的实体关系图,字典数据包存放所有的类别实体。4.7.2 关系图元说明关系图元含义如下:一对多关系。一个实体a对应0到多个实体b,一个实体b对应01个实体a。对应到物理模型,a的主键作为b的外键,可为空。:强制一对多关系。一个实体a对应0到多个实体b,一个实体b必须对应一个实体a。对应到物理模型,a的主键作为b的外键,不能为空。:依赖关系。实体b依赖实体a而存在,即存在实体a不一定存在实体b,不存在实体a肯定不存在实体b。对应到物理模型

8、,a的主键作为b的主键之一,不能为空。4.7.3 建立图假设我们建立的组织机构模型要满足如下要求:1. 有多个同级别不同行业的组织机构,有的组织机构可能跨多个行业;2. 各组织机构的子机构层数不尽相同;3. 组织机构的类型可能不同;4. 组织机构所处的行政区域不尽相同。我们在组织机构信息包中初步建立的e/r图如下:在这个e/r图中,我们只是从上面的描述中识别出实体和实体间的关系。因组织机构和行业是多对多的关系,图中的“组织机构的行业”即是组织机构和行业间的关联实体。建立初步的e/r图后,我们再检查各实体及实体间的关系。如果要对一个关系做小的调整,双击该关系,弹出关系属性窗口,切换到cardin

9、alities页,如下图:在此页面上即可调整关系。建议:在建立、修改e/r图的过程中,不要急于输入实体、实体属性的code栏内容,也不要急于确定实体属性的数据类型。因为我们在整个建模过程中,会不断增加、删除实体及实体的属性,如果一开始就先给code栏输入内容,会增加我们的工作量。等到e/r图定型后,再根据数据库设计规范要求一次性输入code栏内容、确定实体属性的数据类型。4.7.4 使用另一个包中的实体假设人员信息有如下要求:1. 一个人员必须且只能属于一个组织机构;2. 一个人员可能会有一个职称。我们在人员信息包中建人员模型时,就需要用到组织机构信息包中的组织机构实体。powerdesign

10、er提供了paste as shourcut功能(快捷键ctrl+k)来满足这个操作要求。先在组织机构实体上按copy(快捷键ctrl+c),然后回到人员信息包中的图上按paste as shourcut功能(快捷键ctrl+k)。最后建模的结果如下图:在组织机构名称下面注明其来源于组织机构信息包,在左下角有个快捷符号。有的机构中,一个人员可能会在多个部门任职,这种情况在政府机构中比较常见。我们上面的人员信息模型就无法满足这种要求,需要改成下面这个模型了:4.7.5 完善设计在实体及实体关系基本确定后,我们就需要完善各实体的具体内容了。有的人习惯在建实体时就把实体的所有属性都录入进去,这也没什

11、么问题。在前面的e/r图中,我们只给出了实体少量属性,这显然是远远不够的。前面之所以这样做,是因为我们想把精力和工作重点放在识别实体和实体关系上。现在我们就需要补充实体的属性了。要补充的属性包括如下几方面:1. 实体本来具有的属性;2. 基于设计考虑要添加的属性;3. 数据库设计规范中要求添加的属性。建议:1. 对同一个实体,设计时的视角不同,系统的要求不同,所需要的实体属性也就不同。尽量不要引入当前系统不需要的属性。2. 尽量多写注释,尤其是一些不容易理解的实体和属性,更应该写上注释。因为设计人员明白的实体和属性,其他人员未必能够明白。或者自己设计时明白了,过了一段时间后可能又忘了。小技巧:

12、在建模时为了方便,我们直接在各包中画需要的字典实体。模型稳定后,再按住各字典实体,拖到字典数据包中。被拖走字典实体的组织结构模型如下图:说明:本指南中就不完善各实体的属性了,有兴趣的同事可以去补充完善。4.7.6 确定编码和数据类型前面的工作完成后,这一步的工作就比较简单了。按照数据库设计规范,输入实体、属性的code,选择实体的数据类型就行了。选择实体的数据类型时,优先使用前面定义的域,域中没有需要的数据类型时,再自己选择数据类型。双击一个实体,然后切换到attributes页,就是属性的编码和数据类型编辑界面了,如下图:上图中三个选择列的意思如下:l m:强制。选上该项后,即表示该属性的值

13、不能为空。l p:主键。这个就不用解释了。l d:显示。如果不选该项,即表示该属性不需要显示。这个主要是针对c/s结构设计的,使用默认值就行了。当我们选择域后,该域的数据类型就自动显示在属性的数据类型列了。4.8 检查powerdesigner提供的check model功能可帮助我们找出、改正设计模型中的错误和疏漏。执行“tools/check model”,弹出如下窗口:在“options”页选择要检查的项目,在“selection”页选择要检查的内容,然后确定,powerdesinger就开始检查并把检查结果显示出来。建议:在生成物理模型前一定要执行检查功能。检查结果中没有错误,最好也没

14、有警告后才生成物理模型。4.9 生成物理模型完成前面各步骤的工作,通过检查后,就可以生成物理模型了。执行“tools/generate physical data model”,弹出如下窗口:general页上有“生成新的物理模型”、“修改存在的物理模型”选项。生成新的物理模型:选择物理模型使用的数据库,给出物理模型的name和code(都有默认值)。修改存在的物理模型:系统会先进行差异比较,并把比较结果显示出来,如下图:上图中的“性别”是概念模型有而存在的物理模型中没有的,用户可以选择是否生成到物理模型中。4.10 生成报表powerdesigner提供了比较方便的报表模板定制和报表生成功能

15、。用好这个功能,以后就不用再辛苦的写数据库设计文档,直接根据建好的模型生成数据库设计文档就行了。4.10.1 定制报表模板执行“report/report templates”,弹出如下窗口:powerdesigner提供了几种报表模板,如果觉得不合适,可以点击上图中的新建按钮来创建一个新的报表模板,也可以修改现有的模板。powerdesigner报表模板定制不仅能定制段内容,还能定制表格列、列的标题、列宽、字体。4.10.2 生成报表执行“report/generate report”,弹出如下窗口:选择报表模板,生成报表的格式和保存路径,就可以生成报表了。5. 设计物理模型5.1 界面图标

16、说明表视图关联关系存储过程5.2 模型设置执行“tools/model options”,在弹出窗口中选择model settings,如下图:其中的主要选项说明:l name/code case sensitive:name/code栏区分大小写。l notation:表间关系的几种不同图形表示方式。建议统一选择codasyl方式。5.3 设置图元执行“tools/display preferences”,弹出如下窗口:在object view中可设置各对象需要显示的内容,在format中可设置显示的图形样式。5.4 新建一个物理模型点击new按钮,在弹出窗口中选择conceptual da

17、ta model,给出模型名称,选择数据库类型,如下图:确定后即进入概念模型编辑界面。5.5 建立表及表关联与概念数据模型中不同,在物理模型中,当我们建立两个表间的关联关系时,系统会自动把一个表的主键作为另一个表的外键插入到该表中。下图是从概念模型生成的物理模型:对比一下概念模型:“组织机构的行业”表生成了复合主键。组织机构表中的自关联关系生成了一个外键,并自动给了个命名,我们可以修改这个命名,使其符合我们的命名规范。如果是根据已建好的概念模型生成的物理模型,在表及关联上就不需要做什么调整了。5.6 建立视图powerdesigner建立视图时,需要输入sql语句,如下图:得到的视图显示如下:

18、奇怪,在我印象中,建视图时只需要把相关表中的字段选择过来,就会自动生成sql语句,怎么powerdesigner还需要输入sql语句呢。我们还可以在general页面设置视图的用途,如下图:useage栏有三个选择项:l query only:仅能查询视图数据。l updatable:能够查询视图数据,修改视图关联表的数据。l with check options:除了具有updatable的功能外,插入数据时还进行数据项的合法性检查。type栏有两个选择项:l view:视图。l withoptions:比view多了index、physical options属性页。在index中可以为视

19、图建立索引。physical options有三个选项。这个选项仅对部分支持视图类型的数据库服务器有用。记得在comment栏填写视图的注释哦。5.7 建立存储过程与建立视图一样,建立存储过程时,也需要自己编写程序。存储过程的程序在definition页编写,如下图:建议:使用存储过程实现对复杂、大量的数据计算和数据处理。因为存储过程是直接在数据库服务器中运行,比把数据从数据库中读取出来再处理的速度要快很多。记得在comment栏填写视图的存储过程哦。5.8 检查完成物理模型后,在生成数据库之前,千万不要忘记执行检查功能。物理模型的检查与概念模型的检查操作一样,具体请参见“设计概念模型”中的“

20、检查”。记住,要检查到没有错误和警告后,才能生成数据库。概念模型生成物理模型时容易出问题的地方:l 概念模型的自关联关系生成物理模型时,因为需要把本表中的主键作为本表的外键,而一个表中的字段名是不允许相同的,所以powerdesigner就自己给生成的这个外键取了一个名,而这个字段名可能不符合设计规范,需要我们为其改名。l 概念模型的多对多关系生成物理模型时,会生成重复的索引。因为powerdesigner在生成物理模型时,会为所有的主键、外键生成索引。就是除了为复合主键生成一个复合索引外,还会为每个作为外键的主键生成一个索引。建议删除重复的索引。5.9 生成数据库建议:开发和调试时,不用生成

21、外键和索引。交付测试及以后的版本生成外键和索引,以保证数据的完整性和一致性。5.9.1 改变当前数据库系统要生成的数据库与物理模型当前的数据库不同时,需要执行此功能。执行“database/change current dbms”,弹出如下窗口:选择新的数据库即可。5.9.2 配置数据库连接我们要把powerdesigner与数据库服务器连接上,才能直接从物理模型生成数据库。否则就只有先生成sql脚本,再到数据库服务器上执行了。执行“database/configure connections”,弹出如下窗口:如果列表中已有odbc连接,选中就行了。如果没有,就要新建一个。配置好数据库连接后,

22、执行“database/ connect”,弹出如下窗口:选择前面建立的odbc,输入登录数据库服务器的用户名和密码,点击“connect”,就连接上数据库了。5.9.3 生成数据库执行“database/ generate database”,弹出如下窗口:上图中的目录是指生成的sql脚本文件的保存目录,文件名是指生成的sql脚本文件的文件名。可以自己选择sql脚本文件的保存目录,自己给定sql脚本的文件名。generation type选项是选择生成脚本还是直接生成数据库。如果选择“script generation”,则只生成sql脚本文件。如果选择“direct generation”

23、则在生成sql脚本文件的同时,也把物理模型中选择生成的对象生成到数据库中。可以在preview页预览sql脚本。完成选择后,按确定即开始执行sql脚本,生成数据库。5.9.4 更新数据库如果数据库已经存在,我们只是想用修改后的物理模型更新数据库,则执行“database/ apply model changes to database”,弹出如下窗口:在“get database schema”中选择“using a data source”,按确定后,系统先对比物理模型和数据库,并显示对比结果:上图中左边是物理模型的对象,右边是数据库中的对象。有带!的黄色标签的目录,表示该目录下有对象变动。

24、在右边窗口中,对象前的“”号表示数据库中无此对象。用户勾选上后,就可以生成到数据库中了。如果右边窗口中对象前是“”号,表示数据库中的对象在物理模型中没有。如果勾选上,生成数据库时就在数据库中删除勾选的对象。如果右边窗口中对象前是“”号,表示该对象在两边的内容不一致。如果勾选上,生成数据库时就会用物理模型中的对象替换数据库中的对象。5.9.5 只生成物理模型与数据库不一致部分的sql脚本5.9.4中已经说明用物理模型更新已经存在的数据库时,powerdesigner会先比较物理模型和数据库,并显示比较结果中不一致的内容。我们可以利用这个功能,只生成物理模型与数据库不一致部分的sql脚本。建议:为

25、了不出现混乱,不要手工直接改数据库中的内容,所有需要的修改都先修改物理模型,然后用物理模型来更新数据库,并且把更新的内容通知项目组的所有人员。执行“database/ apply model changes to database”,弹出如下窗口:在弹出的窗口中,先做如下设置:l 在directory栏选择sql脚本的保存路径;l 在file name栏给定sql脚本的名称(系统默认给出了保存路径和名称);l 在generation type处选择script generation,勾选上one file only;l 在get database schema处选择using a data s

26、ource,并给定已建立的odbc数据源。然后点击“确定”,弹出如下窗口:在左上角的下拉选择框中选择对应的数据库,然后点击“ok”,弹出如下窗口:在这个窗口中详细列出了模型和数据库的差异(已在5.9.4中说明了窗口中差异的含义),选择要更新的项,然后点击“ok”,需要的sql脚本文件就生成了。5.10 逆向工程执行“file/reverse engineer/database”,按照弹出窗口一步步操作,就可以从数据库中逆向生成物理模型。5.11 生成报表见“设计概念模型/生成报表”。6. 仓库的使用6.1 仓库的作用powerdesigner的仓库所起的作用类似配置管理工具。但其更方便多人协作,共同在一个模型文件上进行设计工作。例如几个人分工合作设计一个系统的数据库。6.2 需要的环境powerdesigner使用数据库作为仓库的存储工具,支持多种数据库系统。因此要使用powerdesigner的仓库功能,必须要有相应的数据库系统。6.3 使用前

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论