Transcript Homework

資料庫管理 HOMEWORK #2
ERD練習
楊立偉教授
台灣大學工管系
2013 Fall
1-1
Homework #2
• 繪製完整的 E-R model diagram
• 利用 Microsoft Access 建立表格與關聯
• 建立測試用的範例資料
1-2
Tutorial - Background
• 學校委託你整頓圖書館
• 你依照學校開出的需求(business rules)重新
規劃資料庫
–
–
–
–
–
–
–
以本校之圖書館為限,包含多個分館
需建立完整書目資訊,每一書目有多本藏書
書目資訊至少包含 Dublin Core 的前10個欄位
每一本藏書只會歸屬於一個分館
每一本藏書都有獨立的藏書號與藏書日期
需建立書目來源(出版商資料)
借書人為學生,每人可以借多本書,需建立借書紀錄
• 其它部份學校沒意見,請自行發揮
1-3
思考步驟 (1)
• 繪製E-R model
– 找出Entity, 並確認屬性
– 找出Relationship
• 確定degree – unary 或 binary 或 ternary
• 確定cardinality – 1:1 或 1:N 或 M:N
• Relationship上是否有屬性
1-4
思考步驟 (2)
• 轉換成表格
– Entity轉表格
– 各種Relationship的轉法
• 不同degree – unary 或 binary 或 ternary
• 不同cardinality – 1:1 或 1:N 或 M:N
• Relationship上是否有屬性
1-5
思考步驟 (3)
• 檢查正規化
– 畫出functional dependency
– 檢查是否違反正規化
• 1st 或 2nd 或 3rd 正規化
• 將表格拆解至符合為止
• 檢查合理性與參照完整性
– 放入幾筆測試資料
1-6
– 是否滿足business rules ?
初學者應注意的事項
• 不要畫出重複的關係
– 保留最少但必要的資訊即可
• 寫下自己的假設
– 設計過程中, 有不確定的地方, 就先假設
– 確保設計過程前後一致
– 最後可以逐條檢查
1-7
簡化假設
• 每本藏書只有一個固定館藏
– 每本書必定歸屬一個館
– 甲館借甲館還
• 不紀錄還書時間
• 不保留借書的歷史紀錄
1-8
參考解答 (1)
• 參考 db2013_hw2_answer.vsd
• 參考 db2013_hw2_answer.mdb
publisher 出版商
pid 出版商代碼
name 名稱
addr 地址
tel 電話
1-9
book 書目
出書
ISBN 書碼
title 標題
creator 作者
subject 主題
desc 描述
…
…
(其它欄位)
bookitem 藏書
藏書
student 學生
bid 藏書號
bdate 藏(購)書日
借書
date 借書日
library 圖書館
歸屬
lid 館別代碼
name 名稱
location 位置
sid 學號
name 名稱
dept 系所名稱
參考解答 (2)
1-10
附錄 : Dublin Core
• 圖書資訊界常用的meta-data定義
• 基本版包括15個標籤
– Title、Creator、Subject、Description、Publisher
– Identifier、Date、Contributor、Type、Language
– Source、Format、Relation、Coverage、Rights
• Wiki
http://en.wikipedia.org/wiki/Dublin_Core
• 完整規格
http://dublincore.org/documents/usageguide
1-11