翻轉電子書系列:資料庫系統概論(含邏輯設計)  

翻轉工作室:粘添壽

 

第十三章 期末報告範例-圖書銷售管理系統

[封面]

 

期末專題製作:

廣銷圖書銷售管理系統(自訂題目)

 

 

 

    名:

    號:

    級:

 

 

    師:粘添壽老師

課程名稱:資料庫系統 概論

                                        


   
##############        這是分隔線         #################

 

    目     (須完成項目)

  ##############        這是分隔線         #################

 

一、系統需求與資料收集

1-1 情境

廣銷圖書公司從事圖書銷售業務,代理若干家出版商的書籍,給下游書局販售,公司運作情形如下圖所示,情境描述如下:

 

 

1-2 系統需求

期望資訊管理系統具備有下列功能:

 

1-3 資料收集

 

[自行填寫]

 

1-4 驗證範例功能

我們選用下列題目來驗證系統是否滿足所需,如下:

 

二、資料庫邏輯設計

我們由外往內拆解,來建立此系統的邏輯架構,如下:(資料庫名稱:csuBooks)

2-1 第一層分析:系統基本需求

(A) 實際狀況:

1. 銷售人員可透過此系統販賣書籍。

2. 下游書局透過此系統訂書。

3. 出版社透過此系統委託販賣。

 

2-2 第二層分析:基本實體產生

 

 

2-3 第三層分析:彙整圖書目錄

 

2-4 第四層分析:定單彙整

 

2-5 第五層分析:訂單管理

 

 

2-6 完整 E-R 關聯圖

依照系統需求(或驗證題目)補滿各個實體的屬性,如下:

[請自行繪製]

 

三、實體轉換資料表

各實體與關係轉換成資料表如下:

 

3-1 出版商資料表 - publishers

出版商實體的 E-R 圖如下:

自行補上

取名為『出版商』,並選擇『出版商代碼』為主鍵。各個欄位名稱與資料型態如下所示:

[自行完成]

正規化分析:

 

3-2 銷售人員資料表 - sales

銷售人員實體的 E-R 圖如下:

【自行補上】

取名為『銷售人員』,並選擇『員工編號』為主鍵。各個欄位名稱與資料型態如下所示:

[自行完成]

正規化分析:

 

3-3 書店資料表 - bookstores

下游書店實體的 E-R 圖如下:

【自行補上】

取名為『經銷書店』,並選擇『書店編號』為主鍵。各個欄位名稱與資料型態如下所示:

[自行完成]

正規化分析:

 

3-4 圖書總表 - books

圖書總表實體的 E-R 圖如下:

【自行補上】

取名為『圖書總表』,並選擇『書籍編號』與『出版商代碼』為主鍵。各個欄位名稱與資料型態如下所示:

[自行完成]

正規化分析:

 

3-5 訂單資料表 - orders

訂單總表實體的 E-R 圖如下:

【自行補上】

取名為『訂單總表』,並選擇學號為『訂單編號』與『書店編號』為複合主鍵。各個欄位名稱與資料型態如下所示:

[自行完成]

正規化分析:

 

3-6 表格關連圖

整合上述個實體的資料表後(csuBooks 資料庫),繪出各資料表之間的關聯如下圖:

{請自行製作}

 

四、實體建置

出版商代碼

出版商名稱

負責人

進貨折扣

F001

旗標圖書公司

施大志

50

F002

全華圖書公司

劉大有

55

F003

學冠圖書公司

張真人

45

 

書籍編碼

書籍名稱

作者

出版商代碼

訂價

B001

網路與資訊安全技術

粘添壽

F001

800

B002

Unix/Linux 作業系統

粘添壽

F001

780

B003

電腦網路與連結技術

粘添壽

F002

750

B004

網際網路原理與實務

粘添壽

F002

600

B005

程式藝術館 - Java

粘添壽

F003

480

B006

資料庫系統理論 - Access

李春雄

F002

600

 

書店編碼

書店名稱

負責人

出貨折扣

K001

港都書局

劉友德

70

K002

東海書局

張春生

65

K003

南海書局

廖志善

75

K004

北方書局

陳誠看

70

 

員工編碼

姓名

電話

T001

郝認真

092123456

T002

劉志明

092123457

T003

張無忌

092123458

 

訂單編碼

書店編碼

書籍編碼

數量

員工編碼

出貨否

收款否

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

 

五、驗證資料庫功能

編寫下列題目以驗證資料庫是否滿足所需,並將程式與執行結果張貼下來。

  1. 請查詢正修公司代理了哪幾家出版公司,請列印出出版商名稱與負責人。

  2. 請查詢旗標圖書公司發行了哪些書籍。

  3. 請查詢本公司代理期標圖書公司的折扣多少。

  4. 請查詢本公司出貨給北方書局的折扣多少。

  5. 請查詢員工劉志明銷售多少了哪些書籍,請列印出書籍名稱與數量。

  6. 請查詢作者粘添壽出版哪些書,請列印出書籍名稱、出版商、定價。

  7. 請查詢還有哪些書籍還未出貨,請列印出書籍名稱、出版商、數量。

  8. 請列印出哪些書籍已出貨,但還未付款。

  9. 請查詢北方書局訂購哪些書籍,及其狀況,請列印出書籍名稱、出版社、數量。

 

六、評分說明

  1. 補滿上述範例未完成部分,並成功的實作於 MySQL上,期末報告最高 60 分,未繳交報告者,這學期不予評分。

  2. 我們發現在訂單總表以{訂單編碼、書店編碼}為主鍵,可能出現同一筆訂單有兩個以上的業務人員如何改善?改善後並實現成功,期末報告最高 70分。

  3. 除改善前一題缺點外,再增加以下功能:公司希望各個業務人員不要互相競爭,每一個業務人員劃分負責下游經銷書局,請問整個資料庫系統應如何修改?改善後並實現成功,期末報告最高 80 分。

  4. 您可以再改善本範例的邏輯設計嗎(其實它設計得很差)?如果成功修改並實現它,期末報告最高 90 (與前兩題無關)

  5. 如果您研讀本範例後,而另外設計一個應用系統的資料庫,並依照此範例步驟實現它,自行設計驗證題目,也驗證系統設計是可用的,期末報告最高 100 (無論簡單或困難,只要 3 個資料表以上、不跟別人一樣,而且是自己設計的,都算)