检查函数依赖项是否在闭包中

时间:2018-12-08 13:29:36

标签: database database-design functional-dependencies

R =(A,B,C,D,E,F,G)

功能依赖项:
A→B
BF→C
AB→F
D→E

以下哪些FD位于F +(F的结尾)中?选择所有正确答案。

  • A→F
  • DF→E
  • B→E
  • A→G
  • ABC→C

我们了解了如何使用自反和增强来检查它们是否在F +中,但是我似乎在F +中找不到任何东西,并且想知道我做错了吗

1 个答案:

答案 0 :(得分:0)

如何查找功能依赖项X→Y是否包含在一组功能依赖项F的闭包F +中?最简单的方法是计算X +(相对于F,属性X的集合的闭包),然后查看Y是否包含在此闭包中。

例如,要查看A→F是否在F +中,我们可以通过以下方式计算A,A +的闭包:

A+ = A
A+ = AB (since A→B)
A+ = ABF (since AB→F)

,并且因为F属于A + = {ABF},所以我们知道A→F在F +中。

应对其余所有依赖项进行此测试。