传递函数依赖定义为:
如果 A → B 和 B → C 则 A → C (参考:本教程!)
如果一个属性依赖于两个属性的组合(即 A,B -> C),那么这是一种功能依赖吗?
我们可以认为这种类型的依赖是(或不是)传递依赖吗?
传递函数依赖定义为:
如果 A → B 和 B → C 则 A → C (参考:本教程!)
如果一个属性依赖于两个属性的组合(即 A,B -> C),那么这是一种功能依赖吗?
我们可以认为这种类型的依赖是(或不是)传递依赖吗?
如果一个属性依赖于两个属性的组合(A,B->C),那么这是一个“功能依赖”。
当你有一个非键谓词被放置在一个“子”关系中时,就会发生传递依赖,而它正确地属于“父”关系。在您的情况下, A->C 是传递依赖项。
维基百科上有一个非常明显的传递依赖的实际例子。
需要注意的是,A->B, B->C 和 A,B->C 是有区别的。这些不是等效的依赖项。
TL;DR用“→”编写的“依赖”是 FD(功能依赖)。用“→”写的“传递依赖”是传递FD。这就是“→”的“依赖”的意思(简称)。
FD 有一组决定另一组。任何一组都可以有任意数量的属性。(如果一个集合只有一个属性,我们也说该属性确定或被确定。)
传递函数依赖定义为:
如果 A → B 和 B → C 然后 A → C(参考:本教程!)
这是不清楚和错误的。你的参考也是如此。当存在 S 时,A → C 可传递,其中 A → S & S → C & not (S → A)。因此,如果 A → B & B → C & not (B → A) 那么 A → C 可传递,但如果 A → B & B → C 但 B → A 则 A → C 不能通过 B 传递,尽管它可能是传递的通过其他一些属性集。
如果一个属性依赖于两个属性的组合(即 A,B -> C),那么这是一种功能依赖吗?
这意味着“如果一个属性是一个 FD 的从属属性,其行列式是两个属性的组合(即 {A,B} -> C),那么这是一个 FD 吗?” 你假设有一个FD,所以有一个FD。答案是(微不足道的)“是”。
也许你的意思是你没有写清楚的其他东西?
也许你的意思是,FD 可以有一组属性作为决定因素吗?是的。
我们可以认为这种类型的依赖是(或不是)传递依赖吗?
看定义。当存在 S 时,{A,B} → C 可传递,其中 {A,B} → S & S → C & not (S → {A,B})。但是不存在这样的涉及 A、B 和/或 C 的 S。因此,仅知道您有一个“复合”行列式就无法告诉您 FD 是否具有传递性。所以不,我们不能“认为它是”可传递的。它在特定关系中可能是传递的,也可能不是传递的。
也许你的意思是,如果 A → C & B → C 那么 {A,B} → C?是的。将行列式属性添加到持有的 FD 会得到另一个持有的 FD。由于 A 和 B 各自决定 C,任何包含 A 或 B 的集合决定 C。 {A,B} → C 是否传递?同样不存在涉及 A、B 和/或 C 的此类 S。所以这与传递性无关。
也许你的意思是,如果 A → B & B → C 那么 {A,B} → C?是的。如上所述,将行列式属性添加到持有的 FD 会得到另一个持有的 FD。由于 B 决定 C,任何包含 B 的集合都决定 C。 {A,B} → C 是否可传递?唯一涉及 A、B 和/或 C 的 S 将是 {B},如果不是 (B → A)。所以我们也不能“认为” {A,B} → C 在这里是可传递的。