資料庫規範化

資料庫規範化,又稱正規化標準化,是數據庫設計的一系列原理和技術,以減少數據庫中數據冗餘,增進數據的一致性。關係模型的發明者埃德加·科德最早提出這一概念,並於1970年代初定義了第一範式第二範式第三範式的概念,還與Raymond F. Boyce於1974年共同定義了第三範式的改進範式——BC範式

database normalization」的各地常用譯名
中國大陸數據庫規範化
臺灣資料庫正規化
港澳資料庫規範化

除外還包括針對多值依賴第四範式連接依賴第五範式DK範式第六範式

現在數據庫設計最多滿足3NF,普遍認為範式過高,雖然具有對數據關係更好的約束性,但也導致數據關係表增加而令數據庫IO更易繁忙,原來交由數據庫處理的關係約束現更多在數據庫使用程序中完成。

範式

編輯

範式如下(從最不規範到規範排序):

  • UNF: 非標準化形式
  • 1NF: 第一範式
  • 2NF: 第二範式
  • 3NF: 第三範式
  • EKNF: 主鍵範式
  • BCNF: Boyce–Codd 範式
  • 4NF: 第四範式
  • ETNF: 關鍵元組範式
  • 5NF: 第五範式
  • DKNF: 域鍵範式
  • 6NF: 第六範式
UNF
(1970)
1NF
(1971)
2NF
(1971)
3NF
(1971)
EKNF
(1982)
BCNF
(1974)
4NF
(1977)
ETNF
(2012)
5NF
(1979)
DKNF
(1981)
6NF
(2003)
主鍵(無重複元組                      
沒有重複組                      
字段原子性(元組只有一個值)                      
沒有部分函數依賴(值依賴於每個主鍵這一整體)                      
沒有傳遞函數依賴 (值僅依賴於候選鍵                      
每個非平凡的函數依賴涉及一個超鍵或者主鍵的子鍵                     不適用
沒有函數依賴造成的冗餘                     不適用
每個非平凡的多值依賴都有一個超鍵                     不適用
超鍵是每個顯式連接依賴的一部分 [1]                     不適用
候選鍵隱含了每個非平凡的連接依賴關係                     不適用
每個約束都是域約束和鍵約束的結果                     不適用
每個連接依賴都是平凡的                      

參考文獻

編輯
  1. ^ Darwen, Hugh; Date, C. J.; Fagin, Ronald. A Normal Form for Preventing Redundant Tuples in Relational Databases (PDF). Proceedings of the 15th International Conference on Database Theory. EDBT/ICDT 2012 Joint Conference. ACM International Conference Proceeding Series. Association for Computing Machinery: 114. 2012 [2018-05-22]. ISBN 978-1-4503-0791-8. OCLC 802369023. doi:10.1145/2274576.2274589. (原始內容存檔 (PDF)於2017-08-08).