基于主键的范式
规范化是组织数据库中数据以减少冗余并提高数据一致性的过程。主键在组织数据库中的信息方面非常重要。它们有助于确保表中的每一行都有唯一的标识,以便不会混淆或丢失任何信息。
在本文中,我们将讨论基于主键的不同范式及其在确保数据一致性中的重要性。
简介
让我们讨论如何确保数据库中的数据得到正确的组织。我们使用“函数依赖”来帮助我们做到这一点。数据库中的每个表都有一个称为“主键”的特殊标识符。我们还有一些规则来帮助我们正确组织数据,称为“范式”。
规范化中使用的密钥类型
在数据库管理系统 (DBMS) 的规范化中使用几种类型的密钥。解释如下。

超键
超键是一组一个或多个属性,它们唯一地标识表中的每个记录。超键可能包含比唯一标识每个记录所需的更多属性。
候选键
候选键是最小的超键,可以唯一地标识表中的每个记录。换句话说,它是一个不包含任何不必要属性的超键。
主键
主键是一个已被选中用于唯一标识表中每个记录的候选键。它用于强制实体完整性,通常用下划线或键符号表示。
替代键
替代键是没有被选为主键的候选键。它用于强制唯一性,并可用作另一个表中的参考键。
外键
外键是用于将两个表链接在一起的键。它是一个表中的一列(或一组列),它引用另一个表的主键。
通过使用这些不同类型的键,DBMS 设计人员可以确保数据得到正确的组织,没有冗余,并且可以高效地检索。规范化有助于减少数据异常和不一致性,并确保数据库具有可扩展性和易于维护。
Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.
基于主键的范式
规范化是组织数据库中数据以最大限度地减少冗余和依赖性的过程。在数据库设计中,存在基于表主键的不同范式。这些包括:

第一范式 (1NF)
1NF 要求表中的每一列都包含原子值,并且每一行都具有唯一的标识。这意味着表不能具有重复的组或数组作为列,并且每一行都必须具有唯一的主键。例如,列出客户订单并包含订单项列的表违反了 1NF,因为订单项不是原子值。
第二范式 (2NF)
2NF 基于 1NF,要求表中的每一列非主键列都完全函数依赖于主键。这意味着表不应具有部分依赖性,其中非主键列仅依赖于主键的一部分。例如,列出客户订单并具有订单 ID 的主键以及客户 ID 和客户名称的非主键列的表违反了 2NF,因为客户名称仅依赖于客户 ID,而不依赖于完整的主键。
第三范式 (3NF)
3NF 基于 2NF,要求表中的每一列非主键列都不及物依赖于主键。这意味着表不应具有传递依赖性,其中非主键列依赖于另一列非主键列。例如,列出客户订单并具有订单 ID 的主键以及客户 ID、客户名称和客户城市的非主键列的表违反了 3NF,因为客户城市仅依赖于客户 ID,而不依赖于完整的主键。
Boyce-Codd 范式 (BCNF)
BCNF 是 3NF 的更严格的形式,适用于具有多个候选键的表。BCNF 要求表中的每个非平凡依赖项都是对候选键的依赖项。这意味着表不应具有非平凡依赖项,其中非主键列依赖于另一列非主键列。BCNF 确保数据库中的每个表都是一个单独的实体,并消除了冗余。
第四范式 (4NF)
4NF 基于 BCNF,要求表不应具有多值依赖性。当非主键列依赖于其他非主键列的组合时,就会发生多值依赖性。例如,列出客户订单并具有订单 ID 的主键以及客户 ID 和订单项的非主键列的表违反了 4NF,因为订单项依赖于订单 ID 和客户 ID。
结论
规范化是数据库设计中的一个重要过程,它确保数据一致性并减少冗余。主键通过唯一标识表中的每一行在规范化中发挥着关键作用。基于主键的不同范式提供了一种系统的方法来确保数据一致性并消除数据异常。