我有AB(A,B,C,D)和AB 主键和AD - > ç
我认为它是2nf因为你无法用AB的子集确定C. 来自wiki“如果表格在1NF中,则表格在2NF中,并且非主要属性不依赖于表格中任何候选键的任何适当子集”
但很多人说它是在1nf因为定义 “在2NF中,如果它在1NF中,并且表格的每个非素数属性都取决于每个候选键的全部” 所以AD不是整个主键,而只是另一个属性不是素数的一部分
如果您还可以提供一些不同的维基百科,那么我可以说明我的论文是否真的正确
答案 0 :(得分:2)
您声明 AB 是给定关系 R 的主键。要做到这一点,除了 AD-> C 之外,还必须至少有一个功能依赖。
为了解释2NF,我假设缺少的FD是 B-> D 。所以我们有一个关系R(A,B,C,D)与FD的关系:
AD-&以及c
B-> d
然后我们的主键是 AB 。现在简单来说,2NF处理部分依赖,也就是说,当属性依赖于主键的一部分时。 (所以,如果我们有一个主键,只有一个属性,而不是R已经在2NF中!)
形式上:
给定关系 R 的功能依赖 X-> A ,其中:
然后在2NF, X 不应该是任何键的正确子集。
回到我们的例子。主键是 AB 。所以主要属性是 A 和 B 。非主要属性为 C 和 D 。
让我们考虑第一个FD, AD-> C
此处 C 是非主要属性。要不违反2NF条件, AD 应不是主键 AB 的正确子集。 AD不是AB的适当子集,因此它不违反2NF条件。
让我们看看下一个FD, B-> D
此处 D 是非主要属性, B 是主键 AB 的正确子集,因此违反了2NF条件。
因此,关系R不是第二范式。
另一方面,如果 R 的FD设置为:
AD-&以及c
AB-> d
我们的主键仍然是 AB ,但现在关系R处于第二范式。