2014-07-19 34 views
0

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

+0

您可以从FD持有的定义开始。此外,“将FD投影到关系上”没有意义,因此您可以花时间表达您的问题中的含义。 – philipxy

+0

是的,它确实有道理。 #YourNotVeryKnowledable #YouShouldTakeTimeBeforeYouMakeIllInformedComments – user3768988

+0

你明显想要说的是,如果你从一个关系R开始,在这个关系中某些函数依赖关系成立,并且你得到了一个R的投影S,那么你如何确定给定的FD是否持有S. – philipxy

回答

1

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

  1. 其中
    • 源属性的FD /列是S,和
    • 源集的源集的文件描述符最初保持在一个R和
    • 目标集是相应的目标设定在零下S中的属性/不列,
  2. 组中的所有文件描述符的传递闭包的其他文件描述符在1

因此,对于给定的文件描述符,每持有S IF它位于1的FD集合的传递闭包中。

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

注意,原有的保持中的R中的FD是处于S当且仅当其目标和源属性/列是在S.

(当然,也有描述的FD的传递闭包的其他方式那持有S.也有不同的选择1.我选择1的FD在某种意义上最接近于原来持有的R.)

相关问题