翻轉工作室:粘添壽
第十三章 期末報告範例-圖書銷售管理系統
[封面]
期末專題製作:
廣銷圖書銷售管理系統(自訂題目)
姓 名:
學 號:
班 級:
教 師:粘添壽老師
課程名稱:資料庫系統 概論
年 月 日
##############
這是分隔線 #################
目 錄 (須完成項目)
系統需求與資料收集
資料庫邏輯設計。
E-R 關係圖轉換資料表與正規化。
實體建置。
匯入測試資料。
測試資料庫功能。
資料庫效能分析。
############## 這是分隔線 #################
1-1 情境
廣銷圖書公司從事圖書銷售業務,代理若干家出版商的書籍,給下游書局販售,公司運作情形如下圖所示,情境描述如下:
參與廣銷圖書公司運作有:上游出版商、下游零售書局、銷售人員。
公司代理多家出版公司所發行書籍,並將代理書局彙整成總目錄,下游書局有依照此目錄下訂單。
其實公司沒有任何庫存圖書,僅接到訂單後再向出版書定購後,再發送給各個下游書局。
公司內有若干位業務人員,到下游書局推銷產品並接受訂單。
1-2 系統需求
期望資訊管理系統具備有下列功能:
收集各個出版社發行之書籍。
可查詢各個行銷人員所販售之書籍。
可查詢各個出版商所發行之書籍。
可查詢向各個出版商訂購之書籍(表示有下游書商訂書)。
可登錄出版商新發行之書籍。
1-3 資料收集
[自行填寫]
1-4 驗證範例功能
我們選用下列題目來驗證系統是否滿足所需,如下:
請查詢正修公司代理了哪幾家出版公司,請列印出出版商名稱與負責人。
請查詢旗標圖書公司發行了哪些書籍。
請查詢本公司代理旗標圖書公司的折扣多少。
請查詢本公司出貨給北方書局的折扣多少。
請查詢員工劉志明銷售多少了哪些書籍,請列印出書籍名稱與數量。
請查詢粘添壽出版哪些書,請列印出書籍名稱、出版商、定價。
請查詢還有哪些書籍還未出貨,請列印出書籍名稱、出版商、數量。
請列印出哪些書籍已出貨,但還未付款。
請查詢北方書局訂購哪些書籍,及其狀況,請列印出書籍名稱、出版社、數量。
二、資料庫邏輯設計
我們由外往內拆解,來建立此系統的邏輯架構,如下:(資料庫名稱:csuBooks)
(A) 實際狀況:
1. 銷售人員可透過此系統販賣書籍。
2. 下游書局透過此系統訂書。
3. 出版社透過此系統委託販賣。
2-2 第二層分析:基本實體產生
(A) 實際狀況:
參與運作可能是若干家出版商、若干家下游書局、以及多位經銷人員。
(B) 分析方法:
公司代理多家出版商,給予每家出版商一個『出版商代碼』。
公司內有若干位銷售人員,給與每位銷售人員一個『員工代碼』。
也給每家下游書店一個『書店代碼』。
2-3 第三層分析:彙整圖書目錄
(A) 實際情況:
公司將各家出版社所發行的書籍,彙整成一個圖書總表。
下游書店與銷售人員依此總表販賣與訂購。
(B) 分析方法:
直接匯整各出版社的目錄,各出版社對它所發行的書籍都有一個『書籍代碼』,並保證同一出版社內的書籍代碼不會重複。
我們選用『出版商代碼』與『書籍代碼』為複合主鍵。
(A) 實際情況:
公司為了評估每位員工績效,每筆訂單必須登錄那一位員工所銷售。
每筆訂單可能包含若干本書,及其數量。
同一下游書局也可能同時訂購多筆訂單。
(B) 分析方法
產生一個『訂單總表』之實體,並給予『訂單代碼』之屬性。
以『書店代碼』與『訂單代碼』為複合主鍵。
2-5 第五層分析:訂單管理
(A) 實際情況:
該系統可供登錄與查詢是否已出貨。
該系統可供登錄與查詢是否已收款。
(B) 分析分法:
在『訂單總表』上增加『出貨否』與『收款否』等兩欄位。
2-6 完整 E-R 關聯圖
依照系統需求(或驗證題目)補滿各個實體的屬性,如下:
[請自行繪製]
三、實體轉換資料表
各實體與關係轉換成資料表如下:
3-1 出版商資料表 - publishers
出版商實體的 E-R 圖如下:
【自行補上】
取名為『出版商』,並選擇『出版商代碼』為主鍵。各個欄位名稱與資料型態如下所示:
[自行完成]
正規化分析:
1NF:所有欄位都是最小單元(Atomic value)。【? 自行評估】
2NF:除了主鍵外,所有欄位都與主鍵相依。【? 自行評估】
3NF:除了主鍵外,所有欄位之間都沒有功能性相依。【? 自行評估】
3-2 銷售人員資料表 - sales
銷售人員實體的 E-R 圖如下:
【自行補上】
取名為『銷售人員』,並選擇『員工編號』為主鍵。各個欄位名稱與資料型態如下所示:
[自行完成]
正規化分析:
1NF:所有欄位都是最小單元(Atomic value)。【? 自行評估】
2NF:除了主鍵外,所有欄位都與主鍵相依。【? 自行評估】
3NF:除了主鍵外,所有欄位之間都沒有功能性相依。【? 自行評估】
3-3 書店資料表 - bookstores
下游書店實體的 E-R 圖如下:
【自行補上】
取名為『經銷書店』,並選擇『書店編號』為主鍵。各個欄位名稱與資料型態如下所示:
[自行完成]
正規化分析:
1NF:所有欄位都是最小單元(Atomic value)。【? 自行評估】
2NF:除了主鍵外,所有欄位都與主鍵相依。【? 自行評估】
3NF:除了主鍵外,所有欄位之間都沒有功能性相依。【? 自行評估】
3-4 圖書總表 - books
圖書總表實體的 E-R 圖如下:
【自行補上】
取名為『圖書總表』,並選擇『書籍編號』與『出版商代碼』為主鍵。各個欄位名稱與資料型態如下所示:
[自行完成]
正規化分析:
1NF:所有欄位都是最小單元(Atomic value)。【? 自行評估】
2NF:除了主鍵外,所有欄位都與主鍵相依。【? 自行評估】
3NF:除了主鍵外,所有欄位之間都沒有功能性相依。【? 自行評估】
3-5 訂單資料表 - orders
訂單總表實體的 E-R 圖如下:
【自行補上】
取名為『訂單總表』,並選擇學號為『訂單編號』與『書店編號』為複合主鍵。各個欄位名稱與資料型態如下所示:
[自行完成]
正規化分析:
1NF:所有欄位都是最小單元(Atomic value)。【? 自行評估】
2NF:除了主鍵外,所有欄位都與主鍵相依。【? 自行評估】
3NF:除了主鍵外,所有欄位之間都沒有功能性相依。【? 自行評估】
3-6 表格關連圖
整合上述個實體的資料表後(csuBooks 資料庫),繪出各資料表之間的關聯如下圖:
{請自行製作}
四、實體建置
(A) 出版商
出版商代碼 |
出版商名稱 |
負責人 |
進貨折扣 |
F001 |
旗標圖書公司 |
施大志 |
50 |
F002 |
全華圖書公司 |
劉大有 |
55 |
F003 |
學冠圖書公司 |
張真人 |
45 |
(B) 圖書總表
書籍編碼 |
書籍名稱 |
作者 |
出版商代碼 |
訂價 |
B001 |
網路與資訊安全技術 |
粘添壽 |
F001 |
800 |
B002 |
Unix/Linux 作業系統 |
粘添壽 |
F001 |
780 |
B003 |
電腦網路與連結技術 |
粘添壽 |
F002 |
750 |
B004 |
網際網路原理與實務 |
粘添壽 |
F002 |
600 |
B005 |
程式藝術館 - Java |
粘添壽 |
F003 |
480 |
B006 |
資料庫系統理論 - Access |
李春雄 |
F002 |
600 |
(C) 經銷書店
書店編碼 |
書店名稱 |
負責人 |
出貨折扣 |
K001 |
港都書局 |
劉友德 |
70 |
K002 |
東海書局 |
張春生 |
65 |
K003 |
南海書局 |
廖志善 |
75 |
K004 |
北方書局 |
陳誠看 |
70 |
(D) 業務人員
員工編碼 |
姓名 |
電話 |
T001 |
郝認真 |
092123456 |
T002 |
劉志明 |
092123457 |
T003 |
張無忌 |
092123458 |
(E) 訂單總表
訂單編碼 |
書店編碼 |
書籍編碼 |
數量 |
員工編碼 |
出貨否 |
收款否 |
A001 |
K001 |
B001 |
10 |
T001 |
否 |
否 |
A001 |
K001 |
B002 |
5 |
T001 |
否 |
否 |
A002 |
K002 |
B001 |
5 |
T002 |
是 |
是 |
A002 |
K002 |
B003 |
10 |
T003 |
是 |
是 |
A003 |
K003 |
B005 |
20 |
T001 |
否 |
否 |
A003 |
K003 |
B006 |
20 |
T001 |
否 |
否 |
A004 |
K002 |
B004 |
5 |
T002 |
是 |
否 |
五、驗證資料庫功能
編寫下列題目以驗證資料庫是否滿足所需,並將程式與執行結果張貼下來。
請查詢正修公司代理了哪幾家出版公司,請列印出出版商名稱與負責人。
請查詢旗標圖書公司發行了哪些書籍。
請查詢本公司代理期標圖書公司的折扣多少。
請查詢本公司出貨給北方書局的折扣多少。
請查詢員工劉志明銷售多少了哪些書籍,請列印出書籍名稱與數量。
請查詢作者粘添壽出版哪些書,請列印出書籍名稱、出版商、定價。
請查詢還有哪些書籍還未出貨,請列印出書籍名稱、出版商、數量。
請列印出哪些書籍已出貨,但還未付款。
請查詢北方書局訂購哪些書籍,及其狀況,請列印出書籍名稱、出版社、數量。
六、評分說明
補滿上述範例未完成部分,並成功的實作於 MySQL上,期末報告最高 60 分,未繳交報告者,這學期不予評分。
我們發現在訂單總表以{訂單編碼、書店編碼}為主鍵,可能出現同一筆訂單有兩個以上的業務人員如何改善?改善後並實現成功,期末報告最高 70分。
除改善前一題缺點外,再增加以下功能:公司希望各個業務人員不要互相競爭,每一個業務人員劃分負責下游經銷書局,請問整個資料庫系統應如何修改?改善後並實現成功,期末報告最高 80 分。
您可以再改善本範例的邏輯設計嗎(其實它設計得很差)?如果成功修改並實現它,期末報告最高 90 分(與前兩題無關)。
如果您研讀本範例後,而另外設計一個應用系統的資料庫,並依照此範例步驟實現它,自行設計驗證題目,也驗證系統設計是可用的,期末報告最高 100 分(無論簡單或困難,只要 3 個資料表以上、不跟別人一樣,而且是自己設計的,都算)。