- 数据库系统原理及MySQL应用教程
- 李辉等编著
- 2787字
- 2021-04-03 18:18:19
4.10 利用PowerDesigner设计数据库系统实验
一、实验目的
1)了解数据库设计的过程。
2)学会用PowerDesigner等数据库设计工具进行数据库设计。
3)学会从实际需求进行数据库的设计。
二、验证性实验
1.根据详细步骤完成奖学金模块数据库设计
用PowerDesigner软件设计奖学金模块。该模块的功能设计中有四个实体,具体信息如表4-1至表4-4所示。
表4-1 班级表(t_class)
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/89_01.jpg?sign=1739517749-A9qAvxUgffwEHW70pbnnPuOBH7k71FvU-0-a41c9949c638aff33d26900ea1b59af6)
表4-2 学生表(t_stu)
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/89_02.jpg?sign=1739517749-AjAY621z80aBljMweBWaIJAXX6v8nE58-0-57fbe93c288cee217098cd9546bfb1ca)
表4-3 成绩表(t_grade)
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/89_03.jpg?sign=1739517749-LSlamdElz71JxYreZwbATaRni3pz1VGm-0-b5290995001f3bfef8125c33a06b2000)
表4-4 奖学金表(t_scholarship)
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/89_04.jpg?sign=1739517749-hIfCwOLS6ThNNzboMFzLBnXETI1mjLUo-0-814a485767adb9a7b1ae67d496955cf2)
(1)利用PowerDesigner软件设计概念模型
概念模型也称为信息模型,以E-R图理论为基础,并对其进行了扩充。该模型是从用户的观点对信息进行建模,主要用于数据库的概念数据模型设计。利用PowerDesigner软件设计概念模型时,一般会经过创建实体,添加实体之间的关系两个阶段。
1)创建实体。创建实体的操作如下:
打开PowerDesigner软件,选择“File”→“New Model”命令,打开“New Model”对话框,在该对话框中选择“Conceptual Data Model”模型类型,同时设置“Model name”模型名称的信息,如图4-12所示。
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/90_01.jpg?sign=1739517749-KvvI9OqDqhdID5X14uZVFW2CEEqrFhrf-0-a66200d21077fcc4a1045a471c62170c)
图4-12 选择设计概念数据模型选项
单击“OK”按钮,进入概念数据模型主界面,为了保证概念数据模型图能绘制到一个表格中,通过选择“View”→“Zoom In”命令,对图标窗口中的表格进行放大,如图4-13所示。
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/90_02.jpg?sign=1739517749-vyvczL3WVIHht66xHnVzCOUo5wUyvhcK-0-63b3d3c7ed6359a521fa601309103382)
图4-13 在图表窗口中设置工作区
为便于查看,对中间的表格进行标注,方法是通过选择“Toolbox”面板中的Free Sym-bols中的“Text”工具按钮,对其标注为奖学金模块,如图4-14所示。如果没找到“Tool-box”面板,可以通过选择菜单View->Toolbox来调出Toolbox面板。
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/91_01.jpg?sign=1739517749-lWnVe46OQGK6xlMkKoBWwDQYYeIJ2qUn-0-a9b1db7fd8bb86ada37b3d008004096c)
图4-14 利用Text工具进行标注
接着选择“Toolbox”中的“Entity”工具按钮,添加班级实体,如图4-15所示。
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/91_03.jpg?sign=1739517749-fGhJijxLcBO53ZtWJmfnt01AtjfNGE5u-0-c4fe4982efeae29722e32f2df1f69e49)
图4-15 添加班级实体
双击实体,弹出实体属性设置窗口。在“General”选项卡中设置用于标识实体名称的“Name”选项为“班级表”,设置用于标识实体代码的“Code”选项为“t_class”,设置用于对实体注释的“Comment”选项为“关于班级的表格”,如图4-16所示。
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/91_04.jpg?sign=1739517749-alkVPFcACmFHtZYgzvLAzvTVwTh0YfCG-0-6586aff27fce3127eba2fff9a6d2027f)
图4-16 “General”选项卡
切换到用来设置实体属性的“Attributes”选项卡,其中,“Name”字段用于标识字段名称,“Code”字段用于标识字段代码,“Data Type”字段、“Length”字段和“Precision”字段用于设置字段的类型。对班级表实体属性设置如图4-17所示。
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/92_01.jpg?sign=1739517749-HCczmCHm1oYcp4vXStrCMQ8shCL6meBH-0-87ba7bf4747062fd9ef8e1eed9b132b0)
图4-17 “Attributes”选项卡
单击“确定”按钮,得到最终的关于班级的实体信息,如图4-18所示。
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/92_02.jpg?sign=1739517749-CoqaEk39kBB8MDnu4fvfndeGCsuYmdXw-0-e860abfd5c0e36113a9f5ef81b2e9fb4)
图4-18 最终的班级实体
下面以同样的方式设计“奖学金模块”中的学生、成绩、奖学金实体,如图4-19至图4-24所示。
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/92_03.jpg?sign=1739517749-lK600s1FUIclpPknWtZDDaIq9O6Q2POo-0-c3afc72a2696804e7453e4510d2b8202)
图4-19 学生实体普通属性
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/93_01.jpg?sign=1739517749-c4OBlxy8BpCuu30rBCD0hwYajTpKQDhE-0-70064d57ec88cbc7db714b44cdccfd4e)
图4-20 学生实体所具有的属性
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/93_02.jpg?sign=1739517749-tk7pGg6zDfJig5XaB2h54FIoh1AdBMja-0-2a65a0a140e9410f53a84534d830adcc)
图4-21 成绩实体普通属性
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/93_03.jpg?sign=1739517749-koMrNsisPROR2QVGBvKsgNP4DOd5hHs1-0-abd021a0460691f091b74b3969085ba9)
图4-22 成绩实体所具有的属性
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/93_04.jpg?sign=1739517749-VmTiorAOvH4aGB9QxY7pzM59Bktkd3hd-0-50ecd4f8bdb9619b5b870ea27df9a388)
图4-23 奖学金实体普通属性
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/94_01.jpg?sign=1739517749-N7EgQhYQDbHnSMapoBMLp4ribmYYJbqi-0-7619f4d4c6e17be0a62e9ad7ad005dac)
图4-24 奖学金实体所具有的属性
最终,关于奖学金模块的四个实体对象具体信息,如图4-25所示。
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/94_02.jpg?sign=1739517749-opLI9EYOVojjkyIiQbKWXr8RpUi5MLAV-0-ce63eda09ba1d938008e76e606b72405)
图4-25 奖学金模块的实体
2)添加实体之间的关系。具体操作如下:
在数据库设计中,实体之间存在三种关系,分别是“一对一关系”“一对多关系”“多对多关系”。在此次设计中,先添加班级与学生之间的关系。选择“Toolbox”中的“Rela-tionship”工具按钮,为创建好的班级实体和学生实体添加联系,如图4-26所示。
添加成功后,双击关系图标,弹出“Relationship Properties”窗口,设置班级实体与学生实体之间的属性信息。在“General”选项卡中设置用来标识实体间关系名称的“Name”选项为“班级学生关系”,设置用来标识实体间关系代码的“Code”选项为“class_stu_r”,设置对实体经行注释的“Comment”选项为“班级与学生的关系”,如图4-27所示。
在“Cardinalities”选项卡中存在一个“Cardinalities”选项组,可用来设置实体间的各种关系。班级与学生是一对多关系,选择“One-many”单选按钮,如图4-28所示。
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/95_01.jpg?sign=1739517749-czxtJxp2ILOjfMk92YVbLvOMSzyJ762l-0-e456b5c992615fda5564999c6ab7be7d)
图4-26 为班级实体和学生实体添加联系
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/95_02.jpg?sign=1739517749-pJx2CgoQtnz906QzAM2SMDD1GgRrPEVq-0-89a81cd556e5d49d918c28386699e534)
图4-27 关系普通属性
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/95_03.jpg?sign=1739517749-4y58u2OR321D3uSeBdwwIhzRlw7czRGL-0-89df3d01588728a3d89ce9ec1c6f06c3)
图4-28 设置实体之间的关系
单击“确定”按钮,就设置好了班级与学生实体之间的关系,如图4-29所示。
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/95_04.jpg?sign=1739517749-vgCsKPG1ipIIMKrt1ieGuSppZJuvJqwk-0-360d4b49d193557e787acb52798e0864)
图4-29 班级与学生实体之间的关系
以同样的方式创建并设置其他的实体之间的关系。学生实体与成绩实体是一对一关系(One-One),学生实体与奖学金实体是多对多关系(Many-Many),设置如图4-30至图4-33所示。
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/96_01.jpg?sign=1739517749-WlE97GVa25FST2wW1LHdrIvxaXQ23YXX-0-e75a0badfdee3218b56862d997fd186b)
图4-30 关系普通属性
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/96_02.jpg?sign=1739517749-MPsVcxSzpY9jW1lnQzKzcBWGre9h3Yaq-0-7b4b8758846001c1b5da56991912e786)
图4-31 设置实体之间的关系
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/97_01.jpg?sign=1739517749-FbcarLDqBJN4UNmElkUqlyyShb1qbVPA-0-2450e8ed297687bfdaa70aeb154313f2)
图4-32 关系普通属性
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/97_02.jpg?sign=1739517749-kpCHziqgMk41HVypEWveNaaBPbTMOSz6-0-227c85463baac5416354787da70ef3a1)
图4-33 设置实体之间的关系
至此,关于奖学金模块的概念模型设计完成,如图4-34所示。
(2)利用PowerDesigner软件转换生成物理数据模型
物理数据模型,就是根据计算机系统的特点,为给定的概念数据模型确定合理的存储结构和存取方法。其中合理主要是指设计出的物理数据库占用的存储空间少,对数据库上数据的操作能有更高的效率。
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/98_01.jpg?sign=1739517749-BziQc5CAUk7OpEIHvoJ6LaR3IaryyCxJ-0-8addab08b9bfd38a8cae13b545dd8847)
图4-34 奖学金模块的概念模型
当概念数据模型设计完成后,选择“Tool”→“Gen-erate Physical Data Model”命令,弹出“PDM Generation Option”窗口,然后在该窗口中设置“DBMS”为“MySQL 5.0”,同时设置“Name”、“Code”都为“schol-arshipPDM”,如图4-35所示。
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/98_02.jpg?sign=1739517749-nX6wAJtIhLFpvRQG8VziuEdz8L2UeSn3-0-36c876d323394eea9eacc69dd3b182ba)
图4-35 选择设计物理数据模型选项
单击“确定”按钮,在物理模型主界面中会根据概念模型,结合所给出的数据库管理系统设计出合理的表和表之间的关系,具体信息如图4-36所示。
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/98_03.jpg?sign=1739517749-LWTPKzQhLPHRuWuaXRlSIWGVDk81ov6a-0-9af60501c8d8df56e0fedaf075bc3302)
图4-36 奖学金模块的物理数据模型
至此,即完成了订单管理模块的物理数据模型。
(3)生成数据库创建脚本
生成物理数据模型后,就可以利用PowerDesigner软件将其转换为数据库脚本。打开物理数据模型scholarshipPDM,选择“Database”→“Generate Database”命令,打开图4-37所示的窗口,然后在窗口中设置数据库脚本的名称和位置。
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/99_01.jpg?sign=1739517749-Iy7eYAqqvOGI1WwPzJg81jdQuH84yVDV-0-146adac3874818eaa6ceaa707a6a1b94)
图4-37 设置数据库的脚本信息
打开数据库脚本文件,具体内容如下:
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/99_02.jpg?sign=1739517749-lqPT9xrNXNKIU3q0l5bj46MB5NOj3fBq-0-ec708a98936e1d5e4cc3f9ca1f26ce76)
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/100_01.jpg?sign=1739517749-MIez30EvlDa4xKwObwfM5PjlMteg6MGP-0-b7f12d304898dfb3670e4a148cb32f5f)
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/101_01.jpg?sign=1739517749-MCdtxdfAYCB0Vp0eHVPR8cTljA4AVcf5-0-9d1e959ab66a4fe31e61aedca4977c4a)
三、设计性实验
1.用PowerDesigner软件为在线图书销售系统中的订单管理模块设计数据库。
该模块的功能设计中有四个实体,具体信息如表4-5至表4-8所示。
表4-5 用户表(t_user)
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/101_02.jpg?sign=1739517749-MOeo9iZ3c5xPctqHEkkReKUfPnp1cBrd-0-d940bbe621137fe8ed7ab7cb86cc73dd)
表4-6 书籍表(t_book)
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/101_03.jpg?sign=1739517749-sNXBGTo0Q8ohfaTfKhqLGlrdqbhSWkk7-0-c98bcc88087b5e81f876c2cc0023ffbe)
表4-7 订单表(t_order)
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/102_01.jpg?sign=1739517749-s7BLrqWkLeXJtq41sLtYDLy2mXL6UgK5-0-edd2184c9a4a2b8832be930ff5bfe651)
表4-8 订单明细表(t_item)
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/102_02.jpg?sign=1739517749-4en2CVBuqkgVIMeg7Fd1lg4IdDCSiFwD-0-123eeda2c4d21957358f99dbc5b72672)
1)利用PowerDesigner软件设计概念模型。
①创建实体。
②添加属性。
③设置每个实体的主码。
④添加实体之间的联系。
2)利用PowerDesigner软件转换成物理数据模型。
3)利用PowerDesigner软件生成创建数据库表的SQL脚本,并在MySQL中生成数据库。
2.根据图4-38所示的“交通违章处罚通知书”设计数据库。
图中显示一张交通违章处罚通知单,根据这张通知单所提供的信息,设计一个存储相关信息的E-R模型,并将E-R模型转换成关系数据模型,要求标注各关系模式的主键和外键(其中:一张违章通知书可能有多项处罚,例如,警告+罚款)。
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/102_03.jpg?sign=1739517749-ghpgazfGvTIjOC4ZTGtiHA1VymBznFks-0-bb0466a23c415ff2e1e94ca6e2ecf3ae)
图4-38 交通违章处罚通知书
1)找出实体、实体的属性、实体的主码。
2)找出实体间的联系及联系类型。
3)用PowerDesigner画出E-R图。
4)选择MySQL作为DBMS,把E-R图转换成物理模型,根据日常生活中的情况合理设置数据类型,其中通知书编号长度请参照示例“TZ11719”,警察编号长度是三个字符。在MySQL中创建违章数据库(wzdb),并利用PowerDesigner生成所有的数据表。
3.根据提供的网页,设计数据库(另外上交打印的报告)。
下面所提供的网页是关于图书检索的。图4-39中下拉列表框中的数据要求从数据库中读取。根据图4-39中的检索条件,在图4-40中得到符合条件的图书列表。
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/103_01.jpg?sign=1739517749-taUkFl4T0M7hfucqWVNKQBZpemINjyE9-0-47af465091f3bfcc08e88b9921954f04)
图4-39 检索条件选择
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/103_02.jpg?sign=1739517749-HBdeyKgpgkR0TwsWqvIV9bbG1tYL8ij0-0-2f0244f416b36cfb35886426150c5710)
图4-40 图书列表
1)用PowerDesigner画出E-R图,要求包含网页中所需的所有属性,设置每个实体的主码。
2)选择MySQL作为DBMS,转换成物理模型,设置合理的数据类型。
3)生成建表SQL脚本,并在MySQL中创建readbook数据库,并生成相应数据表。
四、观察与思考
1)使用PowerDesigner将概念模型转换成物理模型后,实体、属性、联系有哪些变化?
2)PowerDesigner工具中的自动模型转换是否符合模型转换的理论规则?
3)尝试设计一个一对一的实体联系,看看PowerDesigner工具将如何处理。结合模型转换的理论规则,说说PowerDesigner工具这样处理是否妥当?你是否能想出更有创新的处理办法?