我在证明与 Armstrong 公理的函数依赖性时遇到问题。这个我在挣扎 和。设 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 我不认为这是可以证明的。 请帮忙!
最佳答案
除了一些明显的拼写错误外,您的解决方案是正确的:
- 给定 B->D,C->E
- 1 上的增强 C:BC -> DC
- 2 上的分解:BC -> C (3.1),BC -> D (3.2)
- 1、3.1 的传递性:BC -> C, C -> E: BC -> E
- 3.2 和 4 上的联合:BC -> DE
或者:
- B->D, C->E
- 增强(1.1,c):bc -> dc
- 增强(1.2, d): cd -> ed
- trans(2, 3): bc -> de(注意:bc -> dc <=> bc -> cd <=> cb -> cd <=> cb -> dc)
ac -> bd 不能被一般地证明:检查阿姆斯壮公理你会注意到对于一些 X 出现在派生 fd 的右轴上,它必须出现在原始 fd 之一的右轴上,除了
X 是原始 fd 的 lhs 上某些 X' 的子集
或
fd 是通过 X 扩充得到的
1.) 构成从未提及的约束。 如果 2.) 适用,X 也会出现在原始 fd 的 lhs 上。消除 X 的唯一方法是通过传递性,这要求 X 出现在原始 fds 之一的右侧。
以b为X,可见ac -> bd不可证。
缩写:
关于database - 阿姆斯特朗公理证明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13650115/