在关系集上投影函数依赖的闭包
Projecting the closure of functional dependencies over a relational set
我已阅读有关特定属性的闭包并知道如何获取它们。但是我不明白如何获得关注:
R(ABCDEF)
F=
A->BC,
C->DE,
E->A
问题: 项目 F⁺ 超过 S(ACE)(即哪些 FD 超过 S?)
这是否意味着我应该列出 F 中的所有函数依赖关系,以便它们在 S 中存在?
所以 E -> A 是唯一可行的答案,因为这两个属性都列在 S 中?
谢谢
这基本上遵循了获取特定属性闭包的相同概念。您只需使用定义的函数依赖关系,并通过简单地使用阿姆斯特朗公理找出与关系 S(ACE) 相关的函数依赖关系。下面使用的公理是传递性公理。
我们可以看到用A可以得到
A -> C
A -> B // 但是这个不相关,因为 S 中不存在 B。与关系S无关的将被排除
A -> E
与E:
E -> A
E -> C
与 C:
C -> A
C -> E
我们现在已经遍历了关系 S 中的所有属性,因此关闭了 S 上的函数依赖(ACE) 是:
E -> AC
A -> CE
C -> AE
我已阅读有关特定属性的闭包并知道如何获取它们。但是我不明白如何获得关注:
R(ABCDEF)
F=
A->BC,
C->DE,
E->A
问题: 项目 F⁺ 超过 S(ACE)(即哪些 FD 超过 S?)
这是否意味着我应该列出 F 中的所有函数依赖关系,以便它们在 S 中存在?
所以 E -> A 是唯一可行的答案,因为这两个属性都列在 S 中?
谢谢
这基本上遵循了获取特定属性闭包的相同概念。您只需使用定义的函数依赖关系,并通过简单地使用阿姆斯特朗公理找出与关系 S(ACE) 相关的函数依赖关系。下面使用的公理是传递性公理。
我们可以看到用A可以得到
A -> C
A -> B // 但是这个不相关,因为 S 中不存在 B。与关系S无关的将被排除
A -> E
与E:
E -> A
E -> C
与 C:
C -> A
C -> E
我们现在已经遍历了关系 S 中的所有属性,因此关闭了 S 上的函数依赖(ACE) 是:
E -> AC
A -> CE
C -> AE