database - 阿姆斯特朗公理证明

标签 database relational-database functional-dependencies

我在证明与 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 我不认为这是可以证明的。 请帮忙!

最佳答案

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

  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 不能被一般地证明:检查阿姆斯壮公理你会注意到对于一些 X 出现在派生 fd 的右轴上,它必须出现在原始 fd 之一的右轴上,除了

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

  2. fd 是通过 X 扩充得到的

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

以b为X,可见ac -> bd不可证。

缩写:

<表类="s-表"> <头> 速记 扩张 <正文> fd(s) 函数依赖(/-cies) lhs 左边(方程/推导) 右侧 右侧

关于database - 阿姆斯特朗公理证明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13650115/

相关文章:

haskell - 为什么该实例不符合覆盖条件?

haskell - 存在函数依赖关系时类型推断如何工作

mysql - 1 列的多个外键

mysql - 如何设计一个简单的教师-科目-学生批处理关系数据库?

excel - 将大规模的值分配到数据库中。公式(libreOffice calc)

mysql - 在火车时刻表 MYSQL 中存储日期

database - 该表的重要功能依赖性

mysql - 如何忽略 "Cannot add or update a child row"错误

java - 如何最好地为 Java Web 应用程序创建每年重置的交易编号

mysql - 选择不起作用后删除