用MVD分解4NF

时间:2018-01-09 05:31:32

标签: database database-normalization

考虑具有属性A和B的表

 A                B



222              Jack

222              Jill

222              Joe

这里A - > - > B坚持。我的书说上面的关系在4NF。

我不明白4NF中的关系如何在4NF中,如果存在形式A->> B的MVD,则A应该是该关系的超级密钥。

这是一个超级钥匙怎么样?对于相同的A(222)值,我们有多个B值。

1 个答案:

答案 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。