具有CK作为行列式的MVD实际上是FD吗?

时间:2017-10-05 01:55:59

标签: database-design database-normalization functional-dependencies

multivalued dependency A - >> B,A - >> C其中A是candidate key a functional dependency

我会这么认为,因为A作为候选键意味着对于A的每个值a,B和C的值是唯一确定的......

1 个答案:

答案 0 :(得分:2)

FD(功能依赖性)& MVD(多值依赖项)是表达式。所以什么都不是FD&一个MVD。 X ↠ Y, X ↠ Z不是MVD;它是由逗号分隔的两个MVD。我们可以把它写成正式推导的一部分,但那不是你正在做的事情。 X ↠ Y | Z不是MVD,但它意味着X ↠ Y& X ↠ Z。 (并且它通常限于在Z是所有属性的集合而不是X + Y时使用。)因此,即使谈论与X ↠ Y | Z相关联的“FD”(函数依赖性)也没有意义。我们可以讨论由FD,MVD或|表达式表示的“约束条件。 (你似乎有一些想法,因为你谈到“一个”MVD和“一个”FD。)但FD约束不会“成为”一个不同的约束只是因为其他一些东西是真的,就像A是一个CK。但是,我们可以谈论其他事物在FD,MVD和&amp ;; |个表达式。

所以让我们正确使用术语:

问:如果A↠B| C和A是CK(候选键),是A→B& A的情况。 A→C?
答:由于CK确定了每组属性,因此A→B& A→C。

或更简单地说,

问:如果A↠B和A是CK(候选键),是A→B的情况吗? 答:由于CK确定每个属性集,A→B