功能依赖集的等价性

时间:2017-02-14 09:09:23

标签: database-theory

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

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

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

1 个答案:

答案 0 :(得分:0)

您无法从第一组中的依赖项生成AB→E。

要在数学上证明它们的(in)等价,你应该为两个集合构建闭包并比较闭包。

有一些简单的归纳规则来构建闭包。引用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,它在第一个闭包中不存在,因此原始集合是不同的。