- 數據庫系統原理及MySQL應用教程
- 李輝等編著
- 2787字
- 2020-10-23 14:25:09
4.10 利用PowerDesigner設計數據庫系統實驗
一、實驗目的
1)了解數據庫設計的過程。
2)學會用PowerDesigner等數據庫設計工具進行數據庫設計。
3)學會從實際需求進行數據庫的設計。
二、驗證性實驗
1.根據詳細步驟完成獎學金模塊數據庫設計
用PowerDesigner軟件設計獎學金模塊。該模塊的功能設計中有四個實體,具體信息如表4-1至表4-4所示。
表4-1 班級表(t_class)

表4-2 學生表(t_stu)

表4-3 成績表(t_grade)

表4-4 獎學金表(t_scholarship)

(1)利用PowerDesigner軟件設計概念模型
概念模型也稱為信息模型,以E-R圖理論為基礎,并對其進行了擴充。該模型是從用戶的觀點對信息進行建模,主要用于數據庫的概念數據模型設計。利用PowerDesigner軟件設計概念模型時,一般會經過創建實體,添加實體之間的關系兩個階段。
1)創建實體。創建實體的操作如下:
打開PowerDesigner軟件,選擇“File”→“New Model”命令,打開“New Model”對話框,在該對話框中選擇“Conceptual Data Model”模型類型,同時設置“Model name”模型名稱的信息,如圖4-12所示。

圖4-12 選擇設計概念數據模型選項
單擊“OK”按鈕,進入概念數據模型主界面,為了保證概念數據模型圖能繪制到一個表格中,通過選擇“View”→“Zoom In”命令,對圖標窗口中的表格進行放大,如圖4-13所示。

圖4-13 在圖表窗口中設置工作區
為便于查看,對中間的表格進行標注,方法是通過選擇“Toolbox”面板中的Free Sym-bols中的“Text”工具按鈕,對其標注為獎學金模塊,如圖4-14所示。如果沒找到“Tool-box”面板,可以通過選擇菜單View->Toolbox來調出Toolbox面板。

圖4-14 利用Text工具進行標注
接著選擇“Toolbox”中的“Entity”工具按鈕,添加班級實體,如圖4-15所示。

圖4-15 添加班級實體
雙擊實體,彈出實體屬性設置窗口。在“General”選項卡中設置用于標識實體名稱的“Name”選項為“班級表”,設置用于標識實體代碼的“Code”選項為“t_class”,設置用于對實體注釋的“Comment”選項為“關于班級的表格”,如圖4-16所示。

圖4-16 “General”選項卡
切換到用來設置實體屬性的“Attributes”選項卡,其中,“Name”字段用于標識字段名稱,“Code”字段用于標識字段代碼,“Data Type”字段、“Length”字段和“Precision”字段用于設置字段的類型。對班級表實體屬性設置如圖4-17所示。

圖4-17 “Attributes”選項卡
單擊“確定”按鈕,得到最終的關于班級的實體信息,如圖4-18所示。

圖4-18 最終的班級實體
下面以同樣的方式設計“獎學金模塊”中的學生、成績、獎學金實體,如圖4-19至圖4-24所示。

圖4-19 學生實體普通屬性

圖4-20 學生實體所具有的屬性

圖4-21 成績實體普通屬性

圖4-22 成績實體所具有的屬性

圖4-23 獎學金實體普通屬性

圖4-24 獎學金實體所具有的屬性
最終,關于獎學金模塊的四個實體對象具體信息,如圖4-25所示。

圖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所示。

圖4-26 為班級實體和學生實體添加聯系

圖4-27 關系普通屬性

圖4-28 設置實體之間的關系
單擊“確定”按鈕,就設置好了班級與學生實體之間的關系,如圖4-29所示。

圖4-29 班級與學生實體之間的關系
以同樣的方式創建并設置其他的實體之間的關系。學生實體與成績實體是一對一關系(One-One),學生實體與獎學金實體是多對多關系(Many-Many),設置如圖4-30至圖4-33所示。

圖4-30 關系普通屬性

圖4-31 設置實體之間的關系

圖4-32 關系普通屬性

圖4-33 設置實體之間的關系
至此,關于獎學金模塊的概念模型設計完成,如圖4-34所示。
(2)利用PowerDesigner軟件轉換生成物理數據模型
物理數據模型,就是根據計算機系統的特點,為給定的概念數據模型確定合理的存儲結構和存取方法。其中合理主要是指設計出的物理數據庫占用的存儲空間少,對數據庫上數據的操作能有更高的效率。

圖4-34 獎學金模塊的概念模型
當概念數據模型設計完成后,選擇“Tool”→“Gen-erate Physical Data Model”命令,彈出“PDM Generation Option”窗口,然后在該窗口中設置“DBMS”為“MySQL 5.0”,同時設置“Name”、“Code”都為“schol-arshipPDM”,如圖4-35所示。

圖4-35 選擇設計物理數據模型選項
單擊“確定”按鈕,在物理模型主界面中會根據概念模型,結合所給出的數據庫管理系統設計出合理的表和表之間的關系,具體信息如圖4-36所示。

圖4-36 獎學金模塊的物理數據模型
至此,即完成了訂單管理模塊的物理數據模型。
(3)生成數據庫創建腳本
生成物理數據模型后,就可以利用PowerDesigner軟件將其轉換為數據庫腳本。打開物理數據模型scholarshipPDM,選擇“Database”→“Generate Database”命令,打開圖4-37所示的窗口,然后在窗口中設置數據庫腳本的名稱和位置。

圖4-37 設置數據庫的腳本信息
打開數據庫腳本文件,具體內容如下:



三、設計性實驗
1.用PowerDesigner軟件為在線圖書銷售系統中的訂單管理模塊設計數據庫。
該模塊的功能設計中有四個實體,具體信息如表4-5至表4-8所示。
表4-5 用戶表(t_user)

表4-6 書籍表(t_book)

表4-7 訂單表(t_order)

表4-8 訂單明細表(t_item)

1)利用PowerDesigner軟件設計概念模型。
①創建實體。
②添加屬性。
③設置每個實體的主碼。
④添加實體之間的聯系。
2)利用PowerDesigner軟件轉換成物理數據模型。
3)利用PowerDesigner軟件生成創建數據庫表的SQL腳本,并在MySQL中生成數據庫。
2.根據圖4-38所示的“交通違章處罰通知書”設計數據庫。
圖中顯示一張交通違章處罰通知單,根據這張通知單所提供的信息,設計一個存儲相關信息的E-R模型,并將E-R模型轉換成關系數據模型,要求標注各關系模式的主鍵和外鍵(其中:一張違章通知書可能有多項處罰,例如,警告+罰款)。

圖4-38 交通違章處罰通知書
1)找出實體、實體的屬性、實體的主碼。
2)找出實體間的聯系及聯系類型。
3)用PowerDesigner畫出E-R圖。
4)選擇MySQL作為DBMS,把E-R圖轉換成物理模型,根據日常生活中的情況合理設置數據類型,其中通知書編號長度請參照示例“TZ11719”,警察編號長度是三個字符。在MySQL中創建違章數據庫(wzdb),并利用PowerDesigner生成所有的數據表。
3.根據提供的網頁,設計數據庫(另外上交打印的報告)。
下面所提供的網頁是關于圖書檢索的。圖4-39中下拉列表框中的數據要求從數據庫中讀取。根據圖4-39中的檢索條件,在圖4-40中得到符合條件的圖書列表。

圖4-39 檢索條件選擇

圖4-40 圖書列表
1)用PowerDesigner畫出E-R圖,要求包含網頁中所需的所有屬性,設置每個實體的主碼。
2)選擇MySQL作為DBMS,轉換成物理模型,設置合理的數據類型。
3)生成建表SQL腳本,并在MySQL中創建readbook數據庫,并生成相應數據表。
四、觀察與思考
1)使用PowerDesigner將概念模型轉換成物理模型后,實體、屬性、聯系有哪些變化?
2)PowerDesigner工具中的自動模型轉換是否符合模型轉換的理論規則?
3)嘗試設計一個一對一的實體聯系,看看PowerDesigner工具將如何處理。結合模型轉換的理論規則,說說PowerDesigner工具這樣處理是否妥當?你是否能想出更有創新的處理辦法?
- Cocos2d Cross-Platform Game Development Cookbook(Second Edition)
- Learn ECMAScript(Second Edition)
- SOA實踐
- Reactive Programming with Swift
- Flash CS6中文版應用教程(第三版)
- Xamarin.Forms Projects
- 單片機C語言程序設計實訓100例
- OpenGL Data Visualization Cookbook
- Solr Cookbook(Third Edition)
- Mastering Linux Security and Hardening
- Emgu CV Essentials
- OpenCV with Python Blueprints
- Mastering ASP.NET Core 2.0
- Raspberry Pi開發實戰
- The Python Apprentice