資料庫管理 Homework #2 楊立偉教授 台灣大學工管系 2016
Homework #2 繪製完整的 E-R model diagram 利用 Microsoft Access 或 MySQL 建立表格與關聯 建立測試用的範例資料 共有五題,各組分派二題
Scenario A 學校委託你整頓圖書館,你依照學校開出的需求(business rules)重新規劃資料庫 以本校之圖書館為限,包含多個分館 需建立完整書目資訊,每一書目有多本藏書 書目資訊至少包含 Dublin Core 的前10個欄位 每一本藏書只會歸屬於一個分館 每一本藏書都有獨立的藏書號與藏書日期 需建立書目來源(出版商資料) 借書人為學生,每人可以借多本書,需建立借書紀錄 其它部份學校沒意見,請自行發揮
Scenario B 為發掘人才、促進就業,學校請你開發校園徵才求職媒合資料庫,需求(business rules)如下: 為了嚴格篩選,廠商需先登記基本資料,才能開出職缺。職缺中需描述職稱、工作內容、工作時間、薪資待遇等。廠商及職缺都需指定一到多個產業分類,以方便查找。 有興趣的同學可登記履歷,包括基本資料、經驗、專長、有興趣的產業分類(可多選) 等。 同學可以把廠商加入最愛清單,也可以對職缺投履歷, 其它部份學校沒意見,請自行發揮
Scenario C 為愛惜資源,保護地球,學校請你開發校園二手物品交易資料庫,需求(business rules)如下: 以本校同學為限,不論是賣東西或買東西,都需先登記詳細資料 同學可建立二手商品資訊,包括商品名稱、規格等,以及歸屬一或多個分類。同學可對商品舉行拍賣,包括拍賣期間、底價、交易方式、交易地點等。 同學可以參與拍賣出價 歷史出價紀錄需保留,以利未來統計熱門商品之用 其它部份學校沒意見,請自行發揮
Scenario D 為造福同學,請你開發新一代交友資料庫,結合交友與活動,需求(business rules)如下: 以本校同學為限,參加前需先登記詳細資料,其中包括興趣主題(每人可有多個興趣主題) 同學可建立活動資訊,包括會展演等,每項活動並可屬於一到多個興趣主題 同學間可進行邀約,請其它同學一起參加活動,參加人可決定是否接受 歷史邀約紀錄需保留,以利未來統計熱門活動之用 其它部份同學沒意見,請自行發揮
Scenario E 學校為整頓腳踏車亂象,委託你開發 ntUbike 資料庫,需求(business rules)如下: 為記名租借,以本校同學為限,租借前需先註冊 腳踏車將編號列管,並詳記廠牌、規格等資訊 於校內多個地點建立租借站,需建立租借站資訊 採預約租借制,將每日分成若干時段,訂價不同,按時段來出租 每人可租借多台;並可甲站借乙站還 歷史租借紀錄需保留,以利未來統計腳踏車王之用 其它部份學校沒意見,請自行發揮
Scenario F 冬天到了,宿舍同學很不想外出吃飯,請你開發訂便當資料庫,需求(business rules)如下: 以本校同學為限,包含多個宿舍 需建立餐廳與菜單資訊(含價格) ,供同學訂購 每張訂單可訂多樣/多個便當,以滿足大胃需求 於固定地點繳費領便當,可提供多個領取地點;同學下訂時可以選擇領取地點 每日每餐舉辦,或隨時預約下訂,或其它模式均可 歷史訂購紀錄需保留,以利未來統計熱門菜單之用 其它部份宿舍同學沒意見,請自行發揮
作業要求 (1) 完整的 E-R model diagram 有幾個Entity 有哪些Relationship? Cardinality為何 標上屬性 檢查Entity、Relationship、屬性的名稱是否適當
作業要求 (2) 每張表格建立 30 筆測試資料,越多越好 以Microsoft Access或MySQL建立表格與關聯 除了Entity,有哪些Relationship要轉成表格 將屬性開成欄位,並訂出 type, length, constraint 檢查所有表格的PK 不同的Relationship / Cardinality要怎麼轉成FK 每張表格建立 30 筆測試資料,越多越好 滿足資料合理性,並檢查關聯是否正確
評分標準 分成10個等級 依詳盡用心程度加分 Entity, Attribute 正確合理 Relationship, Degree 正確合理 Cardinality 正確合理 轉成表格後 PK, FK 正確清楚 符合正規化 (表格內無彼此相依欄位) 測試資料 正確合理 Business Rules 均滿足 … ♥ 滿分 依詳盡用心程度加分
Deadline 於 2016.10.27 6am 前繳至 ceiba 由組長繳交即可 Microsoft Access請繳交accdb或mdb檔 取名為「組別_題號_學號(小寫)_hw2.mdb」 MySQL請繳交mwb及sql檔(後述),命名方法同上 E-R model請貼在一個 Word 檔中,並加入文字說明 取名為「組別_題號_學號(小寫)_hw2.doc」 所有檔案一同壓縮為「組別_學號(小寫)_hw2.zip」
題目分派 每組分派二題 期中考前後將每題挑選優秀組別上台簡報 組別 分派 #1 分派 #2 1 E F 2 D 3 4 C 5 6 7 B 8 9 10 11 A 12 13 14 15 16 17
附錄 : 製圖工具 以Microsoft Access製作後截圖下來 以MySQL Workbench製作後截圖下來 以Microsoft Visio繪製 (內含於MS Office) 簡易型 Data Modeler http://data-modeler.software.informer.com/ 流程圖軟體 Dia http://dia-installer.de/index_en.html 教學 http://tsjh301.blogspot.tw/2011/12/dia.html 以Microsoft Excel或PowerPoint製作
資料庫管理 Homework #2 範例說明 楊立偉教授 台灣大學工管系 2016
一、繪製 E-R Model (1/5) 以MS Visio 2007為例 檔案→新增→一般/基本圖
一、繪製 E-R Model (2/5) 開啟空白畫布 加入文字 調整文字格式 加入圖型
一、繪製 E-R Model (3/5) 用文字說明Entity名稱 用矩型畫出Entity 用線條畫出Relationship 並在中間輸入文字 用線條畫出Relationship 以及一對多關係 (設為直線)
一、繪製 E-R Model (4/5) 部份範例 還有其它Entity與Relationship要補上
一、繪製 E-R Model (5/5) 注意有的關係上有屬性 可以比照課本轉畫成 Associative Entity,或直接將屬性標在Relationship旁邊亦可
二、建立表格 (1/8) 以MS Access 2007為例 新增空白資料庫→ 輸入檔名後建立 Access2007後 附屬檔名預設 .accdb Access2003前 附屬檔名預設 .mdb
二、建立表格 (2/8) 選建立→資料表,新增空白資料表 在資料表上按右鍵 選設計檢視,進入欄位設計畫面 之後可以重新命名 (資料表需為關閉狀態)
二、建立表格 (3/8) 進入設計檢視後,可 逐一建立欄位 在欄位上按右鍵, 可設定主索引鍵 (或上方按鈕列亦可) 可以選的欄位型別 (type)
二、建立表格 (4/8) 將三個Entity內的欄位分別建好
二、建立表格 (5/8) 關閉設計檢視並儲存 選擇資料庫工具→資料庫關聯圖
二、建立表格 (6/8) 將左邊的表格,逐一拖拉至右邊的資料庫關聯圖區,並至適當的排列一下 拖拉
二、建立表格 (7/8) 建立關聯 拖放pid為例 將相對應的欄位進行拖放 彈出編輯關聯視窗 按下建立即可 建立關聯 (預設為1對多)
二、建立表格 (8/8) 建立關聯 將所有關聯拖放完成後儲存 預設為1對多;若要設定為1對1,應在設計檢視時,將該欄位設為「索引 : 是(不可重複)」
三、輸入範例資料 (1/1) 開啟該資料表,即可輸入 注意合理性與 參照完整性
補充 (1/2) 亦可使用SQL指令建立表格與關聯 CREATE TABLE CREATE TABLE publisher ( pid char(50), name char(50), addr char(50), tel char(50), primary key (pid)); CREATE TABLE book ( ISBN char(50), title char(50), creator char(50), subject char(50), description char(50), pid char(50), primary key (bid), foreign key (pid) references publisher(pid));
補充 (2/2) 亦可使用SQL指令來建立範例資料 INSERT INTO INSERT INTO publisher (pid,name,addr,tel) VALUES ('P01','台大出版社','台北市','23630231'); INSERT INTO book (ISBN,title,creator,subject,description,pid) VALUES ('001','資料庫管理','楊大毛','電腦','這是一本好書','P01');
Using MySQL 至官網下載所需軟體並安裝 http://dev.mysql.com/downloads/ 選擇 MySQL Community Downloads 下載並安裝 MySQL Community Server 下載並安裝 MySQL Workbench 選擇作業系統及安裝形式 Ex. Windows (x86, 64-bit), ZIP Archive 免安裝壓縮檔 Ex. Mac OS X 10.9 (x86, 64-bit), DMG Archive
概念圖 啟動 啟動 MySQL Workbench 連接 MySQL Server 管理及設計 工具 資料庫系統 DBMS
Step 1 啟動 以Windows為例,解壓縮在c:\mysql 先啟動資料庫系統 再啟動管理及設計工具 該目錄\bin\mysqld.exe 允許通過防火牆 再啟動管理及設計工具 該目錄\MySQLWorkbench.exe 選擇File > New Model 開始設計、建表、建資料 線上教學 https://dev.mysql.com/doc/workbench/en/wb-data-modeling.html
Step 2 設計 建立E-R diagram add Diagram > 開啟空白畫布 放置新表格 entity 編輯表格名稱 編輯欄位、欄位名稱 欄位型別: 常用 int, varchar(n), decimal(p,s), datetime 相關設定: pk, not null, unique, auto incremental 預設值: default 放置關係 relationship 選擇cardinality;有自動修正及完成機制
Step 2 設計 Model > Object Notation > Classic, Relationship Notation > Crow's Foot
Step 3 建表 File > Save Model Database > Forward Engineer… 連接至本地資料庫系統, 預設帳號密碼
Step 3 建表 完成後,Database > Connect to Database… 即可看到建立的表格,點選可編輯 編輯
Step 4 建資料 在右方Result Grid編輯資料,按下Apply可檢視SQL指令並寫入 編輯或刪除時亦同
Step 5 繳交方式 E-R Model 請存成 .mwb 檔案;資料庫請用Data Export備份成 .sql 檔案;兩者一同壓縮打包後繳交 選取資料庫後 輸入備份檔名