如何判断函数依赖是否在预测关系中成立?

时间:2014-07-19 07:03:02

标签: functional-dependencies database-theory

如果我从具有一组功能依赖关系的关系R开始,并且我将这些FD投影到关系S上,我如何判断某些FD是否保持在预测关系中?

1 个答案:

答案 0 :(得分:1)

假设我们从关系R和一组在R中保存的函数依赖开始,我们采用R的投影S(将FD作为一对属性/列的源和目标集合。)然后在S中持有的FD是:

  1. FDs在哪里
    • 源属性/列位于S和
    • 源集是最初保存在R中的一个FD的源集,
    • 目标集是相应的目标集减去不在S和
    • 中的属性/列
  2. 1中FD的传递闭包中的所有其他FD。
  3. 因此,对于给定的FD,如果它在1中的FD集合的传递闭包中,则每个都在S中。

    请注意,如果持有R的原始FD中的一个不在1中,那么它也不会在2中。

    请注意,如果其目标和源属性/列位于S中,则保存在R中的原始FD中的FD位于S中。

    (当然,还有其他方法可以描述在S中存在的FD的传递闭包。另外有1种不同的选择。我选择了1的FD,它们在某种意义上最接近R中的原始FD。 )