功能依赖的规范封面

时间:2012-11-15 18:49:01

标签: database functional-dependencies

我正在学习,或试图了解DBMS,并且遇到各种各样的问题,了解如何为此计算规范封面:

A -> BCD
BC -> DE
B -> D
D -> A

我只能找到一个如何计算其中一个的例子,它无助于我理解如何处理BC和B依赖。这就是我提出的,这肯定是错误的,但任何帮助我打破这一点,所以我能理解将比实际答案更有价值。

A -> BCD
BC -> DE
D -> A

4 个答案:

答案 0 :(得分:2)

这是查看两个FD的一种方法

  • BC - > DE,和
  • B - > d

从BC-> DE,得到BC-> D和BC-> E(分解)。

BC->D
BC->E
B->D

观察到BC-> D的LHS是可还原的,因为B-> D.这会将顶部的两个FD减少到

BC->E
B->D

答案 1 :(得分:1)

该BC-> D是可还原的,因为在BC-> D中,在左C中是外来属性。我们可以通过使用无关属性的公式来检查这一点。

答案 2 :(得分:0)

我认为正确答案是:

a->bc
bc->e
b->d
d->a

看看你是否可以删除关系,让我们说我们正在考虑关系R1 = a-> b 计算F +(a)而不考虑R1关系本身。如果你仍然能以某种方式到达b(b在F +(a)中)那么你可以删除R1

答案 3 :(得分:0)

假设:

F = { 
  A -> BCD, 
  BC -> DE, 
  B -> D, 
  D -> A 
} 

DA -> BCD中的无关属性, 因为A+ = ABCDED属于A+

因此:

Fc = { 
  A -> BC, 
  BC -> DE, 
  B -> D, 
  D -> A
} 

现在CBC -> DE中的无关属性, 因为B+ = ABCDEDE属于B+

因此:

Fc = { 
  A -> BC, 
  B -> DE, 
  B -> D, 
  D -> A
} 

现在DB -> DE中的无关属性, 因为B+ = ABCDED属于B+

因此:

Fc = { 
  A -> BC, 
  B -> E, 
  B -> D, 
  D -> A
} 

使用Union规则我们得到:

Fc = { 
  A -> BC, 
  B -> DE, 
  D -> A
} 

现在没有更多无关的属性了。 因此,这是F的最终规范封面。