数据库理论7 |
您所在的位置:网站首页 › 考虑mdseb1 › 数据库理论7 |
计算$B^+$ $B→BD$(依赖三) $BD→ABD$(依赖四) $ABD→ABCD$(依赖一) $ABCD→ABCDE$(依赖二) 故$B^+=ABCDE$ (使用Armstrong公理)证明$AF$是超码。 $A→BCD$(依赖一) $A→ABCD$(A的增强) $BC→DE$(依赖二) $ABCD→ABCDE$($ABCD$的增强) $A→ABCDE$(传递性) $AF→ABCDEF(F$的增强) 故$AF$是超码 计算上述函数依赖集$F$的正则覆盖;给出你的推到的步骤并解释。 根据依赖三我们知道D在依赖一和依赖二中都是冗余值,所以当我们将这两个移除之后,我们就得到了新的规则:$A→BC$ $BC→E$ $B→D$ $D→A$ 而$B^+$是$ABCDE$,而且$FDB→E$可以从这个集合里面被定义,因此,$C$在依赖三中也是一个冗余值,再将其移除,并且合并到我们的$FD$之中,我们得到如下正则覆盖: $A→BC$ $B→DE$ $D→A$ 现在已经没有任何的冗余值了。 基于正则覆盖,给出$r$的一个$3NF$分解。 在正则覆盖中没有$FD,$使得属性集任何其他$FD$的子集。 因此,每个$FD$都会产生自己的关系 给出如下依赖关系: $r_1(A,B,C)$ $r_2(B,D,E)$ $r_3(D,A)$ 现在,属性$F$不依赖于任何属性。因此,它必须是每个超级钥匙的一部分。此外,上述模式中的任何关系都没有$F$,因此,它们都没有超级密钥。因此,我们需要使用超级键添加新关系。 $r_4(A,F)$ 利用原始的函数依赖集,给出$r$的一个$BCNF$分解。 由已知有 $r(A,B,C,D,E,F)$ 我们发现根据第一个$FD$,这个关系并不属于$BCNF,$根据这个可得 $r_1(A,B,C,D)r_2(A,E,F)$ 发现$A→E$是一个在$F^2$中的$FD$,而且使得$r_2$不符合$BCNF$,所以我们再次将$r_2$分解得 $r_1(A,B,C,D)r_2(A,F)r_3(A,E)$ 你能否利用正则覆盖得到与上面的$r$相同的$BCNF$分解? 如果我们直接在前面的最小函数依赖集中使用函数依赖,我们就无法得到上面的分解。但是,我们可以从最小函数依赖集推断出原始的依赖关系,如果我们将它们用于BCNF分解,就可以得到相同的分解。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |