数据库规范化

数据库规范化,又称正规化标准化,是数据库设计的一系列原理和技术,以减少数据库中数据冗余,增进数据的一致性。关系模型的发明者埃德加·科德最早提出这一概念,并于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).