跳转到内容

数据库规范化

本页使用了标题或全文手工转换
维基百科,自由的百科全书
database normalization”的各地常用译名
中国大陆数据库规范化
台湾资料库正规化
港澳资料库规范化

数据库规范化,又称正规化标准化,是数据库设计的一系列原理和技术,以减少数据库中数据冗余,增进数据的一致性。关系模型的发明者埃德加·科德最早提出这一概念,并于1970年代初定义了第一范式第二范式第三范式的概念,还与Raymond F. Boyce于1974年共同定义了第三范式的改进范式——BC范式

除外还包括针对多值依赖第四范式连接依赖第五范式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).