以下哪些是规范的封面
Which of the following are canonical covers
Let R(A,B,C,D) be a schema and F = {C→A, B→C, BD→A,BC→D} be a set of functional dependencies. Which of the following are canonical covers for F:
a) {C→A,B→CA,BC→D}
b) {B→CAD}
c) {C→A, B→CAD}
d) {C→A, B→C,BC→D}
e) {C→A, B→CD,D→A}
f) {C→A, B→CD}
我们很容易看出 a) 不是规范覆盖,因为它是多余的(我们不需要 B→A)。 c)也是如此。
选项e)不好,因为D→A不在F的闭包中
选项b)不够,因为那样我们无法推导出C→A。
选项 f) 是一个很好的选择,因为它不是多余的,而且它在逻辑上暗示了 F 中的所有内容。
我们还可以看到函数依赖性 C→A、B→C、B→D 对于规范覆盖是强制性的。
选项d)呢?我可以看到它不是多余的,它在逻辑上暗示了 F 中的所有内容,但它具有较少数量的选择 f) 的功能依赖项。这是我的问题:d) 也是规范的封面吗?
情况d) 不是规范覆盖,因为BC 的属性C 是多余的。如果您根据三个依赖项 {C → A, B → C, BC → D} 计算 B+,就可以看出这一点:
B+ = B
B+ = BC (because of B → C)
B+ = BCD (because of BC → D)
所以B+包含D,属性C可以消去
Let R(A,B,C,D) be a schema and F = {C→A, B→C, BD→A,BC→D} be a set of functional dependencies. Which of the following are canonical covers for F:
a) {C→A,B→CA,BC→D}
b) {B→CAD}
c) {C→A, B→CAD}
d) {C→A, B→C,BC→D}
e) {C→A, B→CD,D→A}
f) {C→A, B→CD}
我们很容易看出 a) 不是规范覆盖,因为它是多余的(我们不需要 B→A)。 c)也是如此。
选项e)不好,因为D→A不在F的闭包中
选项b)不够,因为那样我们无法推导出C→A。
选项 f) 是一个很好的选择,因为它不是多余的,而且它在逻辑上暗示了 F 中的所有内容。
我们还可以看到函数依赖性 C→A、B→C、B→D 对于规范覆盖是强制性的。
选项d)呢?我可以看到它不是多余的,它在逻辑上暗示了 F 中的所有内容,但它具有较少数量的选择 f) 的功能依赖项。这是我的问题:d) 也是规范的封面吗?
情况d) 不是规范覆盖,因为BC 的属性C 是多余的。如果您根据三个依赖项 {C → A, B → C, BC → D} 计算 B+,就可以看出这一点:
B+ = B
B+ = BC (because of B → C)
B+ = BCD (because of BC → D)
所以B+包含D,属性C可以消去