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

时间:2012-06-07 16:58:07

标签: database-design data-modeling database-normalization

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

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

3 个答案:

答案 0 :(得分:2)

relvar R在2NF中,只要没有非平凡的FD,A-> B,由R满足,其中B是非主要的,其中A是R的某个候选密钥的适当子集。

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

答案 1 :(得分:0)

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

答案 2 :(得分:-1)

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

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

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