一.數據庫建模過程
需求分析階段:分析客戶的業務和數據處理需求
概要設計階段:設計數據庫的E-R模型圖,確認需求信息的正確和完整
詳細設計階段:應用三大范式審核數據庫結構 代
碼編寫階段:物理實現數據庫,編碼實現應用
軟件測試階段:……
安裝部署:……
二.設計數據庫的步驟
1.了解需求 與該系統有關人員進行交流、座談,充分了解用戶需求,理解數據庫需要完成的任務
2.標識實體 (Entity) 標識數據庫要管理的關鍵對象或實體(名詞)
3.標識每個實體的屬性(Attribute)(名詞)
4.標識實體之間的關系(Relationship)(動詞)
tips:在E-R圖中,實體用矩形表示,屬性用橢圓表示,關系用菱形表示。
三.E-R圖設計
1.一對一:x中的一個實體最多與y中的一個實體關聯。並且y中的一個實體最多與x中的一個實體關聯。
2.一對多:x中的一個實體可以與y中的任意數量的實體關聯,y中的一個實體最多與x中的一個實體關聯。
3.多對多:x中的一個實體可以與y中的任意數量的實體關聯,反之亦然。
重要
1.如果是1:1的關系:那么將實體轉換成表,將任意1端實體的主鍵拿到另一端實體做外鍵。
2.如果是1:N的關系:那么將實體轉換成表,關系不成表,將1端實體的主鍵拿到N端實體做外鍵。
3.如果是M:N的關系:將實體轉換成表,關系形成表,同時將兩端實體的主鍵拿過來作為該表的外鍵,形成復合主鍵。
四.數據庫設計的三大范式
為了建立冗余較小、結構合理的數據庫,設計數據庫時必須遵循一定的規則。在關系型數據庫中這種規則就稱為范式。范式是符合某一種設計要求的總結。要想設計一個結構合理的關系型數據庫,必須滿足一定的范式。
第一范式: 要求表的每個字段必須是不可分割的獨立單元
student : name -- 違反第一范式 張小名|狗娃
sutdent : name old_name --符合第一范式 張小名 狗娃
第二范式: 在第一范式的基礎上,要求每張表只表達一個意思。表的每個字段都和表的主鍵有依賴。
employee(員工):
員工編號 員工姓名 訂單名稱 --違反第二范式
員工表:員工編號 員工姓名
訂單表: 訂單編號 訂單名稱 -- 符合第二范式
第三范式: 在第二范式基礎,要求每張表的主鍵之外的其他字段都只能和主鍵有直接決定依賴關系。
員工表: 員工編號(主鍵) 員工姓名 部門編號 部門名 --符合第二范式,違反第三范式 (數據冗余高)
員工表:員工編號(主鍵) 員工姓名 部門編號 --符合第三范式(降低數據冗余) 部門表:部門編號 部門名