查找给定的函数依赖是否隐含在一组函数依赖中

Find if a given functional dependency is implied from a set of functional dependencies

对于:A→BC,CD→E,E→C,D→AEH,ABH→BD,DH→BC

检查:BCD→H

我不明白我应该在这里应用哪个公理规则来检查。有谁知道如何解决这个问题。

有两种方法可以检查依赖性 BCD -> H 是否成立:第一种是通过应用 Armstrong’s axioms 并查看我们是否可以证明依赖性的有效性。第二种是通过计算行列式(BCD)的闭包,看看它是否包含行列式(H)。查阅任何一本关于数据库的好书,看看这两种方法是等价的。

我们试试第一种方法

1. D -> AEH (given)
2. D -> H (applying the decomposition rule to 1)
3. BCD -> D (applying the reflexivity rule)
4. BCD -> H (by transitivity rule on 3 and 2)

我们试试第二种方法

1. BCD+ = BCD
2. BCD+ = BCDAEH (using the dependency D -> AEH)

因此 H 包含在 BCD+ 中,因此 BCD -> H 成立。