0

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

4

1 回答 1

1

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

  1. FD在哪里
    • 源属性/列在 S 中,并且
    • 源集是最初保存在 R 中的一个 FD 的源集,并且
    • 目标集是相应的目标集减去不在 S 中的属性/列,并且
  2. 1 中 FD 集合的传递闭包中的所有其他 FD。

因此,对于给定的 FD,如果每个 FD 在 1 中的集合的传递闭包中,则每个都在 S 中成立。

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

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

(当然,还有其他方式来描述 S 中的 FD 的传递闭包。对于 1 也有不同的选择。我为 1 选择了 FD,在某种意义上最接近于 R 中的原始。)

于 2014-07-20T07:30:43.323 回答