Fd1 = {AB --> C, D --> E, E --> C}
Fd2 = { AB --> C, D --> E, AB --> E, E --> C}
这两个FD是否相等,我认为它们是。但在答案中显示为不等价。
Fd1 = {AB --> C, D --> E, E --> C}
Fd2 = { AB --> C, D --> E, AB --> E, E --> C}
这两个FD是否相等,我认为它们是。但在答案中显示为不等价。
你不能从第一组的依赖中产生 AB → E。
为了在数学上证明它们的(不)等价性,您应该为这两个集合构建闭包并比较闭包。
有一些简单的归纳规则来构建 a 闭包。引用Wikipedia on Functional Dependency,公理是:
遵循他们的一些规则:
使用这些规则和公理,可以为 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
,第一个闭包中不存在,因此原始集合不同。