設計數據庫
- • 在需求分析階段,設計數據庫的一般步驟為:
– 收集信息
– 標識對象
– 標識每個對象的屬性
– 標識對象之間的關係
- • 在概要設計階段和詳細設計階段,設計數據庫的步驟為:
– 繪製E-R圖
– 將E-R圖轉換為表格
– 應用三大範式規範化表格
下面我們以一個BBS簡易論壇的數據庫設計為例來看看設計數據庫的步驟:
- 收集信息:
與該系統有關人員進行交流、坐談,充分理解數據庫需要完成的任務
BBS論壇的基本功能:
l 用户註冊和登錄,後台數據庫需要存放用户的註冊信息和在線狀態信息;
l 用户發貼,後台數據庫需要存放貼子相關信息,如貼子內容、標題等;
l 論壇版塊管理:後台數據庫需要存放各個版塊信息,如版主、版塊名稱、貼子數等;
- 標識對象(實體-Entity)
標識數據庫要管理的關鍵對象或實體
實體一般是名詞:
l 用户:論壇普通用户、各版塊的版主。
l 用户發的主貼
l 用户發的跟貼(回貼)
l 版塊:論壇的各個版塊信息
- 標識每個實體的屬性(Attribute)
- 標識對象之間的關係(Relationship)
l 跟貼和主貼有主從關係:我們需要在跟貼對象中表明它是誰的跟貼;
l 版塊和用户有關係:從用户對象中可以根據版塊對象查出對應的版主用户的情況;
l 主貼和版塊有主從關係:需要表明發貼是屬於哪個版塊的;
l 跟貼和版塊有主從關係:需要表明跟貼是屬於哪個版塊的;
- 繪製E-R圖
- 將E-R圖轉化為表格
- • 將各實體轉換為對應的表,將各屬性轉換為各表對應的列
- • 標識每個表的主鍵列,需要注意的是:沒有主鍵的表添加ID編號列,它沒有實際含義,用於做主鍵或外鍵,例如用户表中的“UID”列,版塊表中添加“SID”列,發貼表和跟貼表中的“TID”列
- • 在表之間建立主外鍵,體現實體之間的映射關係
這裏我們繪製ER圖可以使用微軟的Word或VISIO以及Sybase公司的PowerDesigner,它主要用於和客户溝通交流意見,並反覆修改,直到客户確認。客户確認後,再將E-R圖轉換為表。上面我們已經做好了這個工作。那接下來就是最後一步:應用三大範式對設計的多張表進行審核並規範化表的結構。