設計數據庫

  • •          在需求分析階段,設計數據庫的一般步驟為:

–         收集信息

–         標識對象

–         標識每個對象的屬性

–         標識對象之間的關係

  • •          在概要設計階段和詳細設計階段,設計數據庫的步驟為:

–         繪製E-R圖

–         將E-R圖轉換為表格

–         應用三大範式規範化表格

下面我們以一個BBS簡易論壇的數據庫設計為例來看看設計數據庫的步驟:

  • 收集信息:

   與該系統有關人員進行交流、坐談,充分理解數據庫需要完成的任務

BBS論壇的基本功能:

l        用户註冊和登錄,後台數據庫需要存放用户的註冊信息和在線狀態信息;

l        用户發貼,後台數據庫需要存放貼子相關信息,如貼子內容、標題等;

l        論壇版塊管理:後台數據庫需要存放各個版塊信息,如版主、版塊名稱、貼子數等;

  • 標識對象(實體-Entity)

    標識數據庫要管理的關鍵對象或實體

實體一般是名詞:

l        用户:論壇普通用户、各版塊的版主。

l        用户發的主貼

l        用户發的跟貼(回貼)

l        版塊:論壇的各個版塊信息

  • 標識每個實體的屬性(Attribute)

 

process on設計數據庫_主鍵

  • 標識對象之間的關係(Relationship)

l        跟貼和主貼有主從關係:我們需要在跟貼對象中表明它是誰的跟貼;

l        版塊和用户有關係:從用户對象中可以根據版塊對象查出對應的版主用户的情況;

l        主貼和版塊有主從關係:需要表明發貼是屬於哪個版塊的;

l        跟貼和版塊有主從關係:需要表明跟貼是屬於哪個版塊的;

  • 繪製E-R圖

 

process on設計數據庫_主鍵_02

  • 將E-R圖轉化為表格
  • •          將各實體轉換為對應的表,將各屬性轉換為各表對應的列
  • •          標識每個表的主鍵列,需要注意的是:沒有主鍵的表添加ID編號列,它沒有實際含義,用於做主鍵或外鍵,例如用户表中的“UID”列,版塊表中添加“SID”列,發貼表和跟貼表中的“TID”列
  • •          在表之間建立主外鍵,體現實體之間的映射關係

 

process on設計數據庫_主鍵_03

process on設計數據庫_外鍵_04

這裏我們繪製ER圖可以使用微軟的Word或VISIO以及Sybase公司的PowerDesigner,它主要用於和客户溝通交流意見,並反覆修改,直到客户確認。客户確認後,再將E-R圖轉換為表。上面我們已經做好了這個工作。那接下來就是最後一步:應用三大範式對設計的多張表進行審核並規範化表的結構