数据库第十一次作业

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/imotolove/article/details/85110994

 

3.1.3

  1. 当只有A1为键时,所有包含A1的集合都是超键,共有2^(n-1)个

 

  1. A1,A2为键,超键有2^n - 2^(n-2)   即全集减去不包含{A1,A2}的集合

 

  1. {A1,A2},{A3,A4}为键,有2^(n-1)-2^(n-4)

考虑{A1,A2},有2^(n-2),则共有2*2^(n-2)=2^(n-1)个,但在计算{A3,A4}时重复计算了包含

{A1,A2,A3,A4}的情况,所以需要减去2^(n-4),故答案为2^(n-1)-2^(n-4)

 

  1. {A1,A2},{A1,A3}为键,有2^(n-1)-2^(n-3)

   考虑{A1,A2},有2^(n-2),则共有2*2^(n-2)=2^(n-1)个,但在计算{A1,A3}时重复计算了包含

   {A1,A2,A3}的情况,所以需要减去2^(n-3),故答案为2^(n-1)-2^(n-3)

 

3.2.1

A、

对于(a),考虑所有15个非空属性集的闭包。

对于单个属性,我们有A+=A,B+=B,C+=ACD和D+=AD。

在左边只有一个属性的新依赖项是C->A。

现在考虑属性对:

AB+=ABCD,我们得到了新的依赖关系AB->D.

AC+=ACD,AC->D是非平凡的。

AD+=AD,所以没有什么新东西。

BC+=ABCD,我们得到BC->A,BC->D.

BD+=ABCD,推出BD->A和BD->C.

CD+=ACD,推出CD->A。

对于属性的三元组,ACD+=ACD,但是其他集合的闭包都是ABCD。因此,我们得到了新的依赖关系ABC->D、ABD->C和BCD->A。

因为ABCD+=ABCD,所以没有新的依赖项。

上述11个新相关性的集合为:C->A,AB->D,AC->D,BC->A,BC->D,BD->A,BD->C,CD->A,ABC->D,ABD->C和BCD->A。

 

B、

对于(b),通过对上面闭包的分析,我们发现AB、BC和BD是关键。所有其他集合要么没有ABCD作为闭包,要么包含这三组中的一个。

C、

对于(c),超键都是包含这三个键中的一个的。也就是说,不是键的超键必须包含B和多个A、C和D中的一个。因此,超键是ABC、ABD、BCD和ABCD。

 

 

3.2.4

  1. 如下图所示

A

B

1

小明

2

小明

其中A表示学号,B表示姓名,由于有同名的人存在,故A->B,但B->A不成立

 

B、

A

B

C

1

小明

2

小明

其中A表示学号,B表示性别,C表示姓名,由于性别不能决定名字,故AB->C,A->C,但B->C不成立

 

C、

A

B

C

1

1

1

2

1

2

1

2

3

其中A表示经度,B表示维度,由于只依靠经度或者维度无法在地图上确定一个点

故,AB->C,但A->C或者B->C不成立

 

3.2.10

  1.  

考虑S{A,B,C},故只有六种情况需要讨论

{A}+=A,{B}+=B,{C}+=C

{AB}+=ABD,{AC}+=ABCDE,{BC}+=ABCDE

忽略D,E 得AC->B,BC->A

B、

{A}+=AD,{B}+=B,{C}+=C

{AB}+=ABDE,{AC}+=ABCDE,{BC}+=BC

忽略D,E 得AC->B

 

C、

{A}+=A,{B}+=B,{C}+=C

{AB}+=ABD,{AC}+=ABCDE,{BC}+=ABCDE

忽略D,E 得AC->B,BC->A

 

D、

{A}+=ABCDE,{B}+=ABCDE,{C}+=ABCDE

{AB}+=ABCDE,{AC}+=ABCDE,{BC}+=ABCDE

忽略D,E 得A->B,B->C,C->A

 

 

 

猜你喜欢

转载自blog.csdn.net/imotolove/article/details/85110994