官术网_书友最值得收藏!

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工具這樣處理是否妥當?你是否能想出更有創新的處理辦法?

主站蜘蛛池模板: 湘阴县| 应城市| 新昌县| 周口市| 开封市| 合江县| 浑源县| 通山县| 东丰县| 泰安市| 绥阳县| 杂多县| 子洲县| 武功县| 达州市| 丰顺县| 锡林浩特市| 汕尾市| 怀集县| 镇康县| 曲松县| 峨眉山市| 错那县| 连州市| 广昌县| 汨罗市| 绩溪县| 景谷| 米脂县| 滨海县| 曲沃县| 同德县| 平潭县| 遂溪县| 庄河市| 镇远县| 上杭县| 岳西县| 柞水县| 辽中县| 方正县|