我不懂Boyce-Codd Normal Form。我看了看我的教科书,但我不明白。假设关系R =(A,B,C,D,E)并且F = {A-> C,D-> CB,AC-> E}。你如何确定R是否在BCNF?需要帮忙。谢谢!
答案 0 :(得分:2)
为了确定关系是否是BCNF,我们检查它的功能依赖性。
如果对于每个FD X→Y,我们要么在BCNF中
FD是A→C,D→CB,AC→E。让我们从第一个FD A→C开始。
A→C并不简单,因为例如C∉A. A→A是微不足道的依赖。
现在是A→C超级钥匙?检查我们是否计算FD左侧的闭包,在这种情况下为A.闭包是A逻辑上隐含的所有元素。 [A] + =A∪C∪E= ACE左右我们有A→ACE。
ACE不是超级密钥,因为它确实包含关系的所有属性。
所以关系不在BCNF中,因为A→C既不是微不足道的,也不是超级密钥。
还有其他违反BCNF的行为。 [D] + = BCD不是超级钥匙或琐碎的。 [AC] + = ACE不是超级钥匙或琐碎的。
希望这有帮助!我认为一切都是正确的,但我现在正在攻读决赛,并试图学习很多这些材料。
答案 1 :(得分:0)
非正式地,您首先要识别所有候选键。然后你看一下功能依赖中的箭头。
如果每个箭头都是候选键的箭头 out ,则它在BCNF中。