3

可以肯定地说,当 1NF 表没有复合候选键(主键由多于一列组成)时,该表自动处于 2NF 中吗?

当一个表的主键中只有一列时,它可以违反 2NF 吗?

4

3 回答 3

2

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

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

于 2012-06-07T21:24:42.063 回答
-1

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

于 2012-06-07T18:01:04.843 回答
-2

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

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

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

于 2012-06-07T17:04:18.817 回答