1NF对2NF对3NF
在关系数据库中执行的冗余操作是为了使冗余数据最小化。这个过程主要是把大表分成冗余较少的小表。这些较小的表将通过定义良好的关系相互关联。在标准化良好的数据库中,对数据的任何更改或修改都只需要修改一个表。第一范式(1NF)、第二范式(2NF)和第三范式(3NF)是由edgarf.Codd提出的,他也是关系模型和规范化概念的发明者。
什么是1NF?
1NF是第一种标准形式,它提供了规范化关系数据库的最低要求集。符合1NF的表确保它实际上表示一个关系(即,它不包含任何重复的记录),但是对于1NF没有普遍接受的定义。一个重要的属性是,符合1NF的表不能包含任何关系值的属性(即所有属性都应该具有原子值)。
什么是2NF?
2NF是关系数据库中使用的第二种规范形式。对于符合2NF的表,它应该符合1NF,并且任何不属于任何候选键的属性(即非质数属性)都应该完全依赖于表中的任何候选键。
什么是3NF?
3NF是关系数据库规范化中使用的第三种规范形式。根据Codd的定义,一个表被称为3NF,当且仅当该表是第二范式(2NF),并且表中不属于候选键的每个属性都应该直接依赖于该表的每个候选键。1982年,卡洛·扎尼奥洛提出了一个不同于3NF的定义。符合3NF的表通常不包含在**、删除或更新表中的记录时发生的异常。
1NF和2NF和3NF有什么区别?