查找给定的功能依赖项是否隐含自一组功能依赖项



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

检查 : 碱→高

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

有两种方法可以检查依赖BCD -> H是否成立:第一种方法是应用阿姆斯特朗公理,看看我们是否可以证明依赖的有效性。第二种是通过计算行列式(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成立。

最新更新