如果实体的所有属性都依赖于整个(主)键,那么该实体满足第二范式。就关系而言,一个表的每个列都必须在功能上依赖于该表的整个主键。功能依赖性指示两个不同的列中的值之间存在链接。
如果某个属性的值依赖于某列,那么当该列中的值更改时,该属性的值必须更改。该属性是该列的函数。下列说明使这一点更为明确:
- 如果该表具有一个单列主键,那么该属性必须依赖于该主键。
- 如果该表具有组合主键,那么该属性必须依赖于该主键的全部各列中的作为一个整体的值,而不是依赖于那些列的其中一列或其中某些列。
- 如果该属性还依赖于其他列,那么它们必须是候选键的列;也就是在每一行中都唯一的列。
如果不将模型转换为第二范式,那么有数据冗余和难以更改数据的风险。要将第一范式表转换为第二范式表,请除去不依赖于主键的列。