当1NF表没有复合候选键时它是否在2NF?

问题描述 投票:4回答:3

可以肯定地说,当1NF表没有复合候选键(主键由多个列组成)时,表是否自动在2NF中?

当一个表的主键只有一列时,表是否可以消化2NF?

database-design data-modeling database-normalization
3个回答
2
投票

只要不存在非平凡FD,A-> B,其中B满足R且其中A是R的某个候选键的适当子集,则relvar R在2NF中。

首先必须考虑所有候选键。如果是所有候选键恰好是单个属性键的情况,那么任何这些键的唯一可能的适当子集是{}(empty set)。对空集的依赖不太可能无意中出现,因为它们通常是显而易见且不必要的。然而,即使只有一个简单的密钥,这种依赖也是完全可能的。


-1
投票

是的,当表中的主键只有一列时,该表可能违反2NF。 2NF的基本思想是让表的所有字段直接依赖于/与主键相关。 @A B给出的例子解释了相同的观点。


-2
投票

在2NF中拥有单个表的关键是“删除适用于表的多行的数据子集并将它们放在单独的表中”。

如果一个表有多行重复信息,那么该信息应该移动到另一个表,并通过使用外键建立关系。

http://databases.about.com/od/specificproducts/a/2nf.htm

© www.soinside.com 2019 - 2024. All rights reserved.