1

我在使用 Armstrong 公理证明函数依赖时遇到问题。我正在努力解决这个问题。令 R(A,B,C,D,E) 为关系模式,F = {A→CD, C→E, B→D} 1. 证明:F: BC-> DE

是)我有的:

1 给定 B->D 1. 在 1 上增加 C,BC->DC

2.在2上分解,BC->D BC->C

3. BC->C, BC->E 上的传递性

4. BC 上的联合 ->D 和 and 4, BC->DE

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

也证明:AC-> BD 我不认为这可以被证明。请帮忙!

4

1 回答 1

2

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

  1. 给定 B->D, C->E
  2. 1 上的增强 C:BC -> DC
  3. 分解 2:BC -> C (3.1), BC -> D (3.2)
  4. 1, 3.1 的传递性:BC -> C, C -> E: BC -> E
  5. 3.2 和 4 上的联合:BC -> DE

或者:

  1. B->D, C->E
  2. 增强(1.1,c):bc -> dc
  3. 增强(1.2,d):cd -> ed
  4. trans(2, 3): bc -> de (注意: bc -> dc <=> bc -> cd <=> cb -> cd <=> cb -> dc)

ac -> bd 通常无法证明:检查 armstrong 公理,您会注意到某些 X 出现在派生 fd 的右轴上,它必须出现在原始 fd 之一的右轴上,除了

  1. X 是原始 fd 的 lhs 上某个 X' 的子集

    或者

  2. fd 是通过用 X 增广推导出来的

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

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

缩写

速记 扩张
fd(s) 功能依赖(/-cies)
lhs 左侧(方程/推导)
rhs 右侧
于 2012-12-10T12:31:26.587 回答