- 数据库系统原理及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=1738866974-7yC73NvyfXvkS09mviDsnSygsaGMTmQ0-0-843d569186bdb31a825811d9a768868e)
表4-2 学生表(t_stu)
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/89_02.jpg?sign=1738866974-oGW0UqzBYAJC6TZ0LauMofIfikErq4Ph-0-eef1eaeff1b28e70573a3e3836ed1646)
表4-3 成绩表(t_grade)
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/89_03.jpg?sign=1738866974-G5RMIh5bExNhKRDhmvKf9mY4X2KZ6iS9-0-529a0b52231c1e485836486dee1ac32a)
表4-4 奖学金表(t_scholarship)
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/89_04.jpg?sign=1738866974-xhe3UWoxOUraK11OWdE0gUZd8tPcRUfS-0-12c6d7dd468b702922eded94fbc383a8)
(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=1738866974-XeFkx6C3aj8fKJFRJBQVE8RmBMT5iRpf-0-b7c9f0905c5b3e90c2395ee8d35b8431)
图4-12 选择设计概念数据模型选项
单击“OK”按钮,进入概念数据模型主界面,为了保证概念数据模型图能绘制到一个表格中,通过选择“View”→“Zoom In”命令,对图标窗口中的表格进行放大,如图4-13所示。
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/90_02.jpg?sign=1738866974-w1fGtevv7WGT9HqKOHYhU6OCijwCB4SQ-0-5024c9dbaa3fae9438510477690ccad8)
图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=1738866974-IgT4Ll3M2KkXATYgLZbKd8KRRZdhYI12-0-fb64253a011ee598d1f1127e4ba80cc3)
图4-14 利用Text工具进行标注
接着选择“Toolbox”中的“Entity”工具按钮,添加班级实体,如图4-15所示。
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/91_03.jpg?sign=1738866974-KTmyNoy384J76BetSQTi8Kkpa8o0DaHH-0-347e8a7fb2edeca04dccf09dc3c12fd3)
图4-15 添加班级实体
双击实体,弹出实体属性设置窗口。在“General”选项卡中设置用于标识实体名称的“Name”选项为“班级表”,设置用于标识实体代码的“Code”选项为“t_class”,设置用于对实体注释的“Comment”选项为“关于班级的表格”,如图4-16所示。
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/91_04.jpg?sign=1738866974-EHNZp2vqXZMXLkFtKmNUdatmncW1lVlN-0-429a81560fb0dde2b19d916a6cdd0ed1)
图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=1738866974-wqGrP5901dYqkHLXfM8JbTg92nHDdXbc-0-a509cc435843a84ce8885e2b9a7eec32)
图4-17 “Attributes”选项卡
单击“确定”按钮,得到最终的关于班级的实体信息,如图4-18所示。
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/92_02.jpg?sign=1738866974-r0xQguDeet78AmScBRbA2qEqiNLsoLBZ-0-a7b2136c6444396d0623529b110e31ce)
图4-18 最终的班级实体
下面以同样的方式设计“奖学金模块”中的学生、成绩、奖学金实体,如图4-19至图4-24所示。
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/92_03.jpg?sign=1738866974-giiBAzxHzc9PL37DTEAExLCSg1g3lkEF-0-b5248ad928fbb1ea19339c382ef4a947)
图4-19 学生实体普通属性
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/93_01.jpg?sign=1738866974-eDTDjixiP9LsOEGOCLekxdv2K3vGUTdz-0-b23989d0ec4747010fe8b6b74f72202c)
图4-20 学生实体所具有的属性
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/93_02.jpg?sign=1738866974-Wx2EnAqYg7ImiYOxDUbtSllRd22Y3e8S-0-576a0244bf0b417641f4590ae949909e)
图4-21 成绩实体普通属性
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/93_03.jpg?sign=1738866974-gg5VlesO4meo9MBlVgo5Ql2pja88ge2J-0-f33e13fc4b5de99692acd439336f208d)
图4-22 成绩实体所具有的属性
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/93_04.jpg?sign=1738866974-5JETI6BQJbGM6YFe7PJubVZwcwBt3Q0w-0-31a2b1ee40c484b7b7a5a1c525174e66)
图4-23 奖学金实体普通属性
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/94_01.jpg?sign=1738866974-sE0Vg60X2g6WgkdVAvLyRnGFBlP5iQFU-0-37071c254bc8992dcb7500dd20658b75)
图4-24 奖学金实体所具有的属性
最终,关于奖学金模块的四个实体对象具体信息,如图4-25所示。
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/94_02.jpg?sign=1738866974-CrzCni0ULG0bfoUF0Rw4fGiabvvmax9G-0-2de7ace2f90ade9815914d09dc776c05)
图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=1738866974-o6UKjf0rUhZtT56QuLt8uOJi5PIW2EPM-0-34ddc2d7b5722f4b49fb5ef2ecebbacf)
图4-26 为班级实体和学生实体添加联系
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/95_02.jpg?sign=1738866974-Kif1IFn4ojNcA7GdJXBhcE0Yln6tnqe5-0-773d874c54b49f0d5830b022b9e839c9)
图4-27 关系普通属性
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/95_03.jpg?sign=1738866974-pPWCgFGBvJMkJ63SURfVOeGCZBL1n9O6-0-94427a27b44485c358a94d1b6440232a)
图4-28 设置实体之间的关系
单击“确定”按钮,就设置好了班级与学生实体之间的关系,如图4-29所示。
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/95_04.jpg?sign=1738866974-BHcoP90P3h7Eh3pdooEnVoMc7e9K9mer-0-eab492d7225cb4c7a818449227213e57)
图4-29 班级与学生实体之间的关系
以同样的方式创建并设置其他的实体之间的关系。学生实体与成绩实体是一对一关系(One-One),学生实体与奖学金实体是多对多关系(Many-Many),设置如图4-30至图4-33所示。
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/96_01.jpg?sign=1738866974-aRsvcvLKcaG8JPZLIPKbwZqgnsJugC05-0-72bd7a7cbb92f28a1d889836cd9bd0f8)
图4-30 关系普通属性
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/96_02.jpg?sign=1738866974-ePh2GkvEAZ1N4ISTPoWYyogQlk71hIDd-0-819d7ce8dbdd1abe04551ee8888943c5)
图4-31 设置实体之间的关系
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/97_01.jpg?sign=1738866974-pdk98ZvBLUrF8Fkg1W8ejykYjcfW5ztd-0-a9f36872082f4e386fb4e2b7ae7ea2be)
图4-32 关系普通属性
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/97_02.jpg?sign=1738866974-FVrtRbbhVtjsyCDn1vqq3YDaz17whTkG-0-6a1102ffc9013bccc188ab31f9f324dd)
图4-33 设置实体之间的关系
至此,关于奖学金模块的概念模型设计完成,如图4-34所示。
(2)利用PowerDesigner软件转换生成物理数据模型
物理数据模型,就是根据计算机系统的特点,为给定的概念数据模型确定合理的存储结构和存取方法。其中合理主要是指设计出的物理数据库占用的存储空间少,对数据库上数据的操作能有更高的效率。
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/98_01.jpg?sign=1738866974-I2xymZsqHBUH9xFOaSqYX9XtPoplVMes-0-f1fb59c01b188e7475627a503d242b9e)
图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=1738866974-3fu40iNR205XWRDfOjjCoevV4IUTIlMJ-0-380ad9ce034558fe43aebb314a1495dc)
图4-35 选择设计物理数据模型选项
单击“确定”按钮,在物理模型主界面中会根据概念模型,结合所给出的数据库管理系统设计出合理的表和表之间的关系,具体信息如图4-36所示。
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/98_03.jpg?sign=1738866974-CSaaeLgNxKPQZW7DCF8Se8zPdE8SzeRr-0-f67ec1faa7ff17f74224556bdd2adbec)
图4-36 奖学金模块的物理数据模型
至此,即完成了订单管理模块的物理数据模型。
(3)生成数据库创建脚本
生成物理数据模型后,就可以利用PowerDesigner软件将其转换为数据库脚本。打开物理数据模型scholarshipPDM,选择“Database”→“Generate Database”命令,打开图4-37所示的窗口,然后在窗口中设置数据库脚本的名称和位置。
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/99_01.jpg?sign=1738866974-xwW1XCgmRVr11uF5HlHMvBURaLMSLuoc-0-1621b5f647f9cf40411cb8820942517d)
图4-37 设置数据库的脚本信息
打开数据库脚本文件,具体内容如下:
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/99_02.jpg?sign=1738866974-ZWshKUFaES0Fo3M0HMwaGX6yYLbVNiPt-0-93422ee5c2eb1840af5142d6a6225c6b)
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/100_01.jpg?sign=1738866974-B4YebAHaMJsXw3Sjq7w0NLj8f2s9FGow-0-3e98cf93d798c5eab8289f80f1966321)
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/101_01.jpg?sign=1738866974-yJZc16JmxAJeL8tATKtelzYlCuVGBfgP-0-0fca0f493fe32ef0b1961d89bcbdbae0)
三、设计性实验
1.用PowerDesigner软件为在线图书销售系统中的订单管理模块设计数据库。
该模块的功能设计中有四个实体,具体信息如表4-5至表4-8所示。
表4-5 用户表(t_user)
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/101_02.jpg?sign=1738866974-pRrR56FWM0evQgD17y0iHGTVLpTT8OG9-0-f179590344e5633c00feb194399b4dc4)
表4-6 书籍表(t_book)
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/101_03.jpg?sign=1738866974-xhQvytS4WSG6LTxRZzZsJdv590ImfLsT-0-7ee1a0e57983b33057782b7a2e0c7c1c)
表4-7 订单表(t_order)
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/102_01.jpg?sign=1738866974-uGvQHCFhC23nY1BV4E3Epqa7xhk3kxcd-0-3f28af5ddf64436cd49a4743ae5ce4b1)
表4-8 订单明细表(t_item)
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/102_02.jpg?sign=1738866974-phYxj7iKGfeH19CkXOsMOeoiXrEOYNyP-0-004a8f0f3657d7a5801c82d0953c9aab)
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=1738866974-Ejpb7d6jpmMMaald5deU7AUhfjaqcYOv-0-cc4a5ad1fea2ad2a8de1bf6a05e3541e)
图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=1738866974-d452jevdoqdlCY7Ca89TwhFT0daHulNK-0-dceab7edc14871041d7416c9dc30f14c)
图4-39 检索条件选择
![](https://epubservercos.yuewen.com/5AEB1B/18123624201956406/epubprivate/OEBPS/Images/103_02.jpg?sign=1738866974-KPSXeeNoA4dmob3INzL442V1UinRCSmb-0-8a63068cc00006fb890fb76446813abe)
图4-40 图书列表
1)用PowerDesigner画出E-R图,要求包含网页中所需的所有属性,设置每个实体的主码。
2)选择MySQL作为DBMS,转换成物理模型,设置合理的数据类型。
3)生成建表SQL脚本,并在MySQL中创建readbook数据库,并生成相应数据表。
四、观察与思考
1)使用PowerDesigner将概念模型转换成物理模型后,实体、属性、联系有哪些变化?
2)PowerDesigner工具中的自动模型转换是否符合模型转换的理论规则?
3)尝试设计一个一对一的实体联系,看看PowerDesigner工具将如何处理。结合模型转换的理论规则,说说PowerDesigner工具这样处理是否妥当?你是否能想出更有创新的处理办法?