資料庫正規化

資料庫正規化,又稱正規化標準化,是資料庫設計的一系列原理和技術,以減少資料庫中數據冗餘,增進數據的一致性。關係模型的發明者埃德加·科德最早提出這一概念,並於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).