【发布时间】:2018-02-23 05:47:01
【问题描述】:
考虑具有属性 A 和 B 的表
A B
222 Jack
222 Jill
222 Joe
这里 A ->-> B 成立。我的书说上面的关系是4NF。
我不明白 4NF 中的关系如何在 4NF 中,如果存在形式为 A->->B 的 MVD,A 应该是该关系的超级键。
A 是如何成为超级键的?对于相同的 A (222) 值,我们有多个 B 值。
【问题讨论】:
-
如果
A是一个键列并且B不包含给定键的重复名称,那么这个表必须是4NF,因为不存在非平凡的多值依赖。我认为您需要第三列来说明打破 4NF。 -
@TimBiegeleisen 你能告诉我 A->-> B 是怎么回事吗?
-
规范化(包括 4NF)是关于消除表中的冗余。如果
A是一个键,并且没有重复的(A, B)关系,则该表在4NF 中。正如我所提到的,因为它属于 4NF,所以我必须添加第三列来显示什么不是 4NF。 -
好的。维基百科说,如果 A 和 B 的联合为我们提供了整个关系的属性,那么它就是微不足道的 MVD。现在,如果您在餐厅的维基百科中看到示例,我们可以通过 union property 组合两个 MVD。所以新的 MVD 将是餐厅 -> 披萨外卖(披萨和外卖是两个属性)。现在即使在这里联合是整个关系,但维基百科说它不在 4NF 中。为什么会这样? en.m.wikipedia.org/wiki/Fourth_normal_form
-
@TimBiegeleisen 我理解了维基百科的整篇文章。但关键是他们没有考虑 MVD 的联合属性,而是分别对待每个 MVD。你看我之前的评论了吗?
标签: database database-normalization