1

Fd1 = {AB --> C, D --> E, E --> C}

Fd2 = { AB --> C, D --> E, AB --> E, E --> C}

这两个FD是否相等,我认为它们是。但在答案中显示为不等价。

4

1 回答 1

0

你不能从第一组的依赖中产生 AB → E。

为了在数学上证明它们的(不)等价性,您应该为这两个集合构建闭包并比较闭包。

有一些简单的归纳规则来构建 a 闭包。引用Wikipedia on Functional Dependency,公理是:

  • 自反性:如果 Y 是 X 的子集,则 X → Y
  • 增强:如果 X → Y,则 XZ → YZ
  • 传递性:如果 X → Y 和 Y → Z,则 X → Z

遵循他们的一些规则:

  • 并集:如果 X → Y 和 X → Z,则 X → YZ
  • 分解:如果 X → YZ,则 X → Y 和 X → Z
  • 伪传递性:如果 X → Y 和 WY → Z,则 WX → Z
  • 组成:如果 X → Y 和 Z → W,则 XZ → YW

使用这些规则和公理,可以为 FDS 构建闭包。

省略琐碎的依赖关系(右侧包含在左侧的那些),首先设置 { AB → C (1) , D → E (2) , E → C (3) } 给出:

AB → C                       (1)
ABD → CE, ABD → C, ABD → E   (composition 1+2, decomposition)
ABDE → CE, ABDE → C          (composition 1+2+3, decomposition)
ABE → C                      (composition 1+3)
D → E, D → C, D → CE         (2, transitivity 2+3, union)
DE → CE, DE → C              (composition 2+3, decomposition)
E → C                        (3)

第二组 { AB → C (1) , D → E (2) , E → C (3) , AB → E (4) } 给出:

AB → C, AB → E, AB → CE      (1, 4, union 1+4)
ABD → CE, ABD → C, ABD → E   (composition 1+2, decomposition)
ABDE → CE, ABDE → C          (composition 1+2+3, decomposition)
ABE → C                      (composition 1+3)
D → E, D → C, D → CE         (2, transitivity 2+3, union)
DE → CE, DE → C              (composition 2+3, decomposition)
E → C                        (3)

第二个闭包有AB → E, AB → CE,第一个闭包中不存在,因此原始集合不同。

于 2017-02-14T10:15:10.943 回答