阿姆斯特朗Axioms证明

时间:2012-11-30 17:27:31

标签: database relational-database functional-dependencies

我遇到了与阿姆斯特朗公理证明功能依赖性的问题。这个我在苦苦挣扎 用。设R(A,B,C,D,E)为关系模式,F = {A→CD,C→E,B→D} 1.证明:F:BC-> DE

我有什么:

1给定B-> D  1。 增加C on 1,BC-> DC

2。 分解在2,BC-> D BC-> C

3。 对BC-> C的传递性,BC-> E

4。 BC上的联盟 - > D和4,BC-> DE

不确定这是否是正确的解决方案。

同样证明:AC-> BD我不认为这可以证明。 请帮助!

1 个答案:

答案 0 :(得分:2)

你的解决方案是正确的,除了一些明显的拼写错误:

  1. 给定B-> D,C-> E
  2. 在1:BC上增加C - > DC
  3. 分解于2:BC - > C(3.1),BC - > D(3.2)
  4. 传递率1,3:3.1:BC - > C,C - > E:BC - > ë
  5. Union on 3.2 and 4:BC - > DE
  6. 或者:

    1. B-> D,C-> E
    2. augment(1.1,c):bc - >直流
    3. augment(1.2,d):cd - >编
    4. trans(2,3):bc - > de(注意:bc - > dc< => bc - > cd< => cb - > cd< => cb - > dc)
    5. ac - > bd一般无法证明:检查一些公理公理,你注意到一些X出现在派生fd的rhs上,它必须出现在一个原始fds的rhs上,除了

      1. X是原始fd

        的lhs上某些X'的子集

      2. fd是通过X
      3. 增强得出的

        1。)构成了一个从未提及过的约束。 如果2.)适用,X也会出现在原始fd的lhs上。消除X的唯一方法是通过传递性,这需要X出现在原始fds之一的rhs上。

        将b视为X以查看ac - > bd是无法证明的。