我得到了这个练习,并希望有人对我的答案提出意见:
给定关系模式 R = (A, B, C, D) 和依赖集 F = (A -> BCD)。我们可以声称 R 在 4NF 中吗?
我最初的想法是我们不能声称它在 4NF 中,因为 4NF 更关心多值依赖。
但是,我的教授的回答是,我们实际上可以在 4NF 中声明它,因为您没有得到任何多值依赖项,因此它在 4NF 中。
任何人都可以指出任何支持他的主张或矿山的文献(书籍、论文等)吗?我一直在寻找一段时间,但找不到任何实质性的东西。
我得到了这个练习,并希望有人对我的答案提出意见:
给定关系模式 R = (A, B, C, D) 和依赖集 F = (A -> BCD)。我们可以声称 R 在 4NF 中吗?
我最初的想法是我们不能声称它在 4NF 中,因为 4NF 更关心多值依赖。
但是,我的教授的回答是,我们实际上可以在 4NF 中声明它,因为您没有得到任何多值依赖项,因此它在 4NF 中。
任何人都可以指出任何支持他的主张或矿山的文献(书籍、论文等)吗?我一直在寻找一段时间,但找不到任何实质性的东西。
Alice 的书籍Foundations of Databases 1994.
Maier 的经典著作The Theory of Relational Databases 1983.
Fundamentals of Database Systems 6th Edition Elmasri, Shamkant B. Navathe。
西蒙弗雷泽大学 CS 4NF 幻灯片。
但
给定关系模式 R = (A, B, C, D) 和依赖集 F = (A -> BCD)。
这是两件事。他们之间有什么关系吗?你和你的教授必须弄清楚那是什么。定义不会为你决定。如果这是考试或作业中的问题,那就太草率了。
请注意,“R is in XNF”被草率地使用。有时我们的意思是 R 满足 XNF(以及所有较低的)。有时我们的意思是 XNF 是 R 满足的最高 NF。
一个MVD对应一个二进制JD。一个 FD 对应于一个 MVD,它用一个元素来多重确定一个集合。存在违反 BCNF 的 MVD/JD 是不对应于 FD 的。
给定 R 和 F,通常不能说出最高的 NF R 满足什么。我们也可以得到 R 和数字 5。(尽管 R 可能有 0 或 1 列,因此在 5NF 中。)
给定 R 和 F 再加上 F 是一组持有 R 的 FD,通常不能说出最高的 NF R 满足什么。其他未暗示的 FD 或 MVD/JD 也可以在 R 中保存。(尽管同样对于列和 FD 的特定组合,包括有足够的 FD 来解释所有可能的 MVD/JD,我们可能知道 R 满足的最高 NF。)
鉴于 F 是 R 中持有的 FD 的最小覆盖,或者 R 中持有的唯一 FD 是 F 所暗示的那些(即在任何一种情况下,R 中持有的 FD 都是 F 的传递闭包中的那些),所以不能一般来说,说明最高的 NF R 满足什么。它们未暗示的其他 MVD/JD 也可以在 R 中保存。然而,我们可以从 FD 中看出,R 满足一些最小的最高 NF,而与其他 MVD/JD 无关。(这将在 1NF 和 BCNF 之间。)这将是 BCNF。如果我们还知道除了 F 所暗示的那些 MVD/JD 之外没有任何 MVD/JD,我们可以确定最高的 NF R 满足什么。(这会将先前情况的 BCNF 提高到 5NF。)这里将是 5NF。
鉴于 F 是 R 中唯一的非平凡 FD,任何事情都是可证明的,因为如果 F 成立,那么 {A->B}、{A->C}、{A->D}、{A-> BC},{A->BD} 和 {A->CD},矛盾。
所以:给了什么?
附言
如果您没有定义,那么您就没有理由声称“4NF 更关心多值依赖”。无论如何,“4NF 更关心多值依赖”并不能证明什么。它几乎没有任何意义。