考虑具有属性A和B的表
A B
222 Jack
222 Jill
222 Joe
这里A - > - > B坚持。我的书说上面的关系在4NF。
我不明白4NF中的关系如何在4NF中,如果存在形式A->> B的MVD,则A应该是该关系的超级密钥。
这是一个超级钥匙怎么样?对于相同的A(222)值,我们有多个B值。
答案 0 :(得分:-1)
这种关系甚至不在2NF
我的书说上面的关系在4NF
为什么这么说?你的书是什么?该关系值具有唯一的CK {B}但满足FD {} - > A是非主要属性对CK的部分依赖性,因此它甚至不在2NF中。
你的暗示是错误的
对于4NF中的关系,如果存在形式为A-> - > B的MVD,则A应该是该关系的超级密钥
让我们简化那种复杂的措辞:如果关系是4NF,那么如果MVD(多值依赖){A} - >> {B}成立,然后{A}是超级钥匙。
来自Wikipedia:
当且仅当对于每个非平凡的多值依赖项X↠Y,X是超级密钥时,表才在4NF中
这告诉我们,如果关系是4NF,那么如果非平凡 MVD X - >> Y持有,然后X是超级钥匙。
所以它没有告诉我们你声称的内容。你遗漏了“非平凡”。
但由于这种关系不在4NF中,因此内在含义并不重要。
MVD是微不足道的,所以如果我们 4NF那么内部暗示将不适用
在你的关系中{A} - >> {B}成立,但琐事,因为{A} U {B}是所有属性的集合,
一个微不足道的多值依赖X XY是Y是X的子集,或者X和Y一起形成关系的整个属性集
因此,如果关系是4NF,则{A}不一定是超级密钥。
(对应于MVD的(平凡)(二进制)JD(连接依赖)是* {{A},{A,B}},即该关系是其在{A}& {上的投影的连接A,B}。)
其他 MVD违反4NF
该定义告诉我们,4NF中的关系要求如果非平凡 MVD X - >> Y持有,然后X是超级钥匙。
如果列出与该关系相关的所有MVD,那么您会发现它们都是微不足道的,除了{} - >> {A}和{} - >> {B}。碰巧这两个都持有。 (它们表达相同的条件,即相同的JD,即关系是某个连接。)但{}不是超级密钥。因此违反了4NF。
(就JD而言:唯一可能的非平凡的二进制JD是* {{A},{B}},它恰好成立。但CK并不暗示,即它不需要当CK集合为{{B}}时保持,即(根据Fagin的隶属度算法),其两个元素的连接不在包含两者的CK的公共列集上。因此该关系不在4NF中。)
但我们已经知道违反了4NF,因为我们知道违反了2NF。