1. 程式人生 > >數據庫範式

數據庫範式

訂單 獨立 建議 emp 沒有 保存 關系 強制 計時

第一範式:表的每個字段必須是獨立的、不可再分割的單元

例如有一張student表,裏面有一個name字段

錯誤:name字段裏保存了現有名稱,曾用名1,曾用名2.。。。

正確:name裏只保存現有名稱或只保存曾用名稱。

第一範式保證數據查詢的方便。

第二範式:在滿足第一範式的基礎上,每張表只表達一個意思,表中的每個字段都和表的主鍵有依賴關系

例如一張員工表employee,員工編號,員工姓名,部門名稱

錯誤:在此表中添加了一個訂單編號字段,而訂單編號字段和員工表沒有任何關系

正確:表裏的每個字段都應該和員工有關系。訂單編號應該單獨放在訂單表裏

第三範式:在滿足第二範式的基礎上,要求每張表的除主鍵以外的其他字段都只能和主鍵有直接的依賴關系

例如一張員工表:employee,員工編號(主鍵),員工姓名,部門名稱

錯誤:如果在這張表裏再添加一個部門編號字段,則部門名稱也依賴於部門編號。第三範式要求部門名稱只能和主鍵有依賴關系。

如果違背的第三範式就有可能出現高數據冗余。

正確:將部門表抽取成獨立的表,部門編號為員工表的外鍵。

第三範式可有效降低數據冗余。

數據庫範式是數據庫設計時的建議,不要求強制遵守

數據庫範式