作业10-规范化理论(2)

1.设有关系模式R(E,F,G,H),函数依赖F={E→G,G→E,F→(E,G),H→(E,G),(F,H)→E}。

问题:

(1)求出R的所有候选关键字;

(2)根据函数依赖关系,确定关系模式R属于第几范式;

(3)将R分解为3NF,并保持无损连接性和函数依赖保持性;

(4)求出F的最小函数依赖集。

参考答案:

(1)R的候选关键字为:(F,H

经分析候选码中必含有(F,H)属性,考察(F,H)

∵(F,H)→F,F→(E,G), ∴(F,H) →(E,G)    ①

∵(F,H)→ (F,H)   ②

由①②得,(F,H)→(E,F,G,H) ,∴(F,H)为候选码。

候选码就只有 (F,H)

(2)R为:1NF

证明:因为F->(E,G),所以F->E;又因为(F,H)->E,因此非主属性E对主属性F存在部分函数依赖,不满足2NF,因此最高达到1NF。

(3)分解为:

({E,G},{E→G,G→E })、({F,G},{F→G})、({H,G},{H→G})、({F,H},{})

或者

({E,G},{E→G,G→E })、({F,E},{F→E})、({H,E},{H→E})、({F,H},{})

或者

     ({E,G},{E→G,G→E })、({F,G},{F→G})、({H,E},{H→E})、({F,H},{})

或者

     ({E,G},{E→G,G→E })、({F,E},{F→E})、({H,G},{H→G})、({F,H},{})

  (4)最小函数依赖集为:{ E→G,G→E,F→G,H→G }或者  {E→G,G→E,F→E,H→E }

按定理4.3,求最小函数依赖集步骤:

F={E→G,G→E,F→(E,G),H→(E,G),(F,H)→E}

={E→G,G→E,F→E,F→G,H→E,H→G,(F,H)→E}

={E→G,G→E,F→G,H→E,H→G,(F,H)→E}

={E→G,G→E,F→G,H→G,(F,H)→E}

Fm ={E→G,G→E,F→G,H→G}

或者

Fm ={E→G,G→E,F→E,H→E }

或者

Fm ={E→G,G→E,F→G,H→E }

或者

Fm ={E→G,G→E,F→E,H→G }

2.设有关系模式R(A,B,C,D,E),F={AB→C,C→E,A→CD}为R上的函数依赖集,试将R分解成3NF模式集,要求分解具有无损连接性和保持函数依赖性。

参考答案:

参看课本例题4.13,4.14

算法4.4 设有关系模式R,U为R的属性集,F为R上的函数依赖集。①令模式分解ρ=φ;②若存在函数依赖X→Y∈F,满足X∪Y=U,则令ρ={R},转步骤⑥;③令U0=φ,对U中的每个属性Ai,如果Ai既不出现在F中任一函数依赖的左端,也不出现在F中任一函数依赖的右端,则令U0=U0∪{Ai};以U0为属性集,构造关系模式R0,并令ρ=ρ∪{R0},U=U-U0;④若F中存在左端相同的函数依赖X→Y1,X→Y2,…,X→Yn,则对这些函数依赖进行合并,即令F=(F-{X→Y1,X→Y2,…,X→Yn})∪{X→(Y1∪Y2∪…∪Yn)};重复执行步骤④,直至F中不存在左端相同的函数依赖;⑤对F中的每个函数依赖Xi→Yi,令Ui=Xi∪Yi,以Ui为属性集构造关系模式Ri,再令ρ=ρ∪{Ri};⑥算法终止。

算法4.5 设有关系模式R,U为R的属性集,F为R上的函数依赖集。①用算法4.4对关系模式R进行分解,生成具有函数依赖保持性的模式分解ρ,此时ρ中的每个关系模式都属于3NF;②设X是R的一个候选键,以X为属性集构造关系模式RX,令ρ=ρ∪{RX};③ρ为R的一个既具有无损连接性又具有函数依赖保持性的模式分解,且ρ中的每个关系模式都属于3NF,算法终止。

解:1)先求出所有候选码。经分析候选码中必含有AB属性,先考察AB。

∵ AB→C,C→E,∴ AB→E ①;∵ AB→A,A→CD∴ AB→CD ②;∵ AB→AB ③;

由①②③得,AB→ABCDE ,∴ AB为候选码,并且候选码只有AB。

2)判断R是否已达到3NF?

显然,A、B为主属性,C、D、E为非主属性。对非主属性C来说,∵ 有A→C, ∴AB→C 为部分函数依赖,∴ R不属于2NF,∴ R最高属于1NF。

3)分解关系模式成若干都达到3NF的关系模式

先对F={AB→C,C→E,A→CD} 最小化为:

F={AB→C,C→E,A→C,A→D}(化右部仅含有一个属性)

F={A→C,C→E,A→C,A→D} (化AB→C为A→C)

F={C→E,A→C,A→D }      (去冗余A→C)

接着按算法4.4对R分解为:

R(U,F)=R1({B},{ }) ∪ R2({C,E},{C→E}) ∪ R3({A,C,D},{A→C,A→D})

以上分解能保持函数依赖性,并且各关系模式均达到3NF。

先继承例4.13的求解结果,则可知R的候选键为:AB

再按算法4.5,可把R分解为:

R(U,F)=R1({B},{})∪R2({C,E},{C→E}) ∪ R3({A,C,D },{A→CD}) ∪ R4({A,B},{})

经分析{B}⊆{A,B},分解集要去掉R1,为此最终分解为:

R(U,F)= R1({A,B},{}) ∪ R2({C,E},{C→E}) ∪ R3({A,C,D },{A→CD })

则以上分解既具有无损连接性,又能保持函数依赖性,并且各关系模式均已达到3NF

3.设有关系模式R(A,B,C,D,E),F为R上的函数依赖集,试将R分解成3NF模式集,要求分解具有无损连接性和保持函数依赖性。

   F={A→D,D→B} 

参考答案:

按第4章算法4.4有:按③,可把R分解为:

R(U,F)=R1({C,E },{}) ∪ R2({A,B,D},{ A→D,D→B })

按⑤,可把R分解为:

R(U,F)= R1({C,E },{}) ∪ R21({A,D},{ A→D})∪R22({D,B},{D→B})

容易判断R的候选键为:ACE

再按第4章算法4.5有:可把R分解为:

R(U,F)= R1({C,E },{}) ∪ R21({A,D},{ A→D})∪R22({D,B},{D→B})∪R3({A,C,E},{})

R1 与R3可合并,合并后为:

R(U,F)= R21({A,D},{ A→D})∪R22({D,B},{D→B})∪R3({A,C,E},{})

则以上分解既具有无损连接性,又能保持函数依赖性,并各关系模式均达到3NF。

4.设有关系模式R(A,B,C,D,E),F为R上的函数依赖集,试将R分解成3NF模式集,要求分解具有无损连接性和保持函数依赖性。

F={AB→C,E→BD,C→DE}

参考答案:

Fm={AB→C,E→B,E→D,C→E}

按第4章算法4.4有:按④按⑤,可把R分解为:

R(U,F)= R1({A,B,C },{ AB→C }) ∪ R2({B,D,E},{E→BD }) ∪ R3({C,E},{C→E })

容易判断R的候选键为:ABACAE

再按第4章算法4.5有:可把R分解为:

R(U,F)= R1({A,B,C },{ ABC })  R2({B,D,E},{EBD })  R3({C,E},{CE })   R4({A,E},{})

则以上分解既具有无损连接性,又能保持函数依赖性,并各关系模式均达到3NF。

部分同学方法有误:按第4章算法4.4有:按按⑤,可把R分解为:

R(U,F)= R1({A,B,C },{ AB→C }) ∪ R2({B,D,E},{E→BD }) ∪ R3({C,D,E},{C→DE })

容易判断R的候选键为:AB、AC、AE

再按第4章算法4.5有:可把R分解为:

R(U,F)= R1({A,B,C },{ AB→C }) ∪ R2({B,D,E},{E→BD }) ∪ R3({C,D,E},{C→DE })  ∪ R4({A,E},{})

则以上分解既具有无损连接性,又能保持函数依赖性,并各关系模式均达到3NF。

由于没有做极小化处理,R3({C,D,E},{C→DE })  中存在传递函数依赖,C→E,E→D,所以非主属性D传递函数依赖码C

5.设有关系模式R(A,B,C,D,E),F为R上的函数依赖集,试将R分解成3NF模式集,要求分解具有无损连接性和保持函数依赖性。

F={B→C,D→E,B→ED}

参考答案:

Fm={B→C,D→E,B→D}

按第4章算法4.4有可把R分解为:

R(U,F)=R1({A },{}) ∪ R2({B,C,D },{ B→C,B→D } ∪ R3({D,E},{ D→E})

容易判断R的候选键为:AB

再按第4章算法4.5有:可把R分解为:R(U,F)= R2({B,C,D },{ B→CD} ∪ R3({D,E},{ D→E}) ∪R1({A,B },{})

6.设有关系模式R(A,B,C,D,E),F={A→BC,B→D,D→E}为R上的函数依赖集,试将R分解成BCNF模式集,要求分解具有无损连接性。

参考答案:

分解到BCNF,具有无损连接性的模式分解算法

算法4.6 设有关系模式R,U是R的属性集,F为R上的函数依赖集。①令ρ={R};②如果ρ中各关系模式都属于BCNF,则转步骤④,否则继续;③任选ρ中不属于BCNF的关系模式Ri,设Ri的属性集为Ui,F在Ui上的投影为Fi,由于Ri不属于BCNF,则必存在函数依赖X→Y∈Fi+,其中X不是Ri的候选键,且Y⊈X。分别以属性集Ui-Y和X∪Y构造关系模式Ri’和Ri”,令ρ=(ρ-{Ri})∪{Ri’,Ri”},转步骤②;④算法终止。

按第4章算法4.6有:按①,ρ=R({A,B,C,D,E },{ A→BC,B→D,D→E })

∵ R的候选码为:A,有B→D,而B不为候选码,∴ R不属于BCNF。

按③,

1) 若取B→D,则R分为R1({B,D},{B→D}) ∪ R2({A,B,C,E},{A→BC, B→E})

其中R2不属于BCNF,继续按③处理,则R分为R1({B,D},{BD}) R21({B,E},{BE}) R22({A,B,C},{ ABC }) 已均为BCNF

2)若取D→E,则R分为R1({D,E},{D→E}) ∪ R2({A,B,C, D },{A→BC, B→D })

其中R2不属于BCNF,继续按③处理, R分为R1({D,E},{D→E}) ∪ R21({B, D },{B→D }) ∪ R22({A,B,C},{ A→BC}) 已均为BCNF

7.设有关系模式R(A,B,C,D,E),F为R上的函数依赖集,试将R分解成BCNF模式集,要求分解具有无损连接性。F={AC→D,D→B,A→E} 

参考答案:

按第4章算法4.6有:按①,ρ=R({A,B,C,D,E },{ AC→D,D→B,A→E })

∵ R的候选码为:AC,有D→B,而D不为候选码,∴ R不属于BCNF。

按③,

1) 若取D→B,则R分为R1({D,B},{D→B}) ∪ R2({A,C,D,E},{AC→D, A→E })

其中R2不属于BCNF,继续按③处理,则R分为R1({D,B},{D→B}) ∪ R21({A,E},{A→E}) ∪ R22({A,C,D},{AC→D}) 已均为BCNF

2)若取A→E,则R分为R1({A,E},{A→E}) ∪ R2({A,B,C,D},{AC→D, D→B })

其中R2不属于BCNF,继续按③处理,则R分为R1({A,E},{A→E}) ∪ R21({B,D},{D→B}) ∪ R22({A,C,D},{AC→D}) 已均为BCNF

8.设有关系模式R(A,B,C,D,E),F为R上的函数依赖集,试将R分解成BCNF模式集,要求分解具有无损连接性。

F={A→E,E→BC,B→D,B→A}

按第4章算法4.6有:按①,ρ=R({A,B,C,D,E },{ A→E,E→BC,B→D,B→A })

∵ R的候选码为:A, E, B,∴ R已属于BCNF。

转步骤④,算法终止。不需分解。

9.设有关系模式R(A,B,C,D,E),F为R上的函数依赖集,试将R分解成BCNF模式集,要求分解具有无损连接性。

F={B→A,D→E,C→DB}

参考答案:

按第4章算法4.6有:按①,ρ=R({A,B,C,D,E },{ B→A,D→E,C→DB })

∵ R的候选码为:C,∴ R不属于BCNF。

按③,

1) 若取B→A,则R分为R1({A,B},{B→A}) ∪ R2({B,C,D,E},{ D→E,C→DB })

其中R2不属于BCNF,继续按③处理,则R分为R1({A,B},{B→A}) ∪ R21({D,E },{ D→E }) ∪ R22({B,C,D},{ C→DB }) 已均为BCNF

2)若取D→E,则R分为R1({D,E},{D→E}) ∪ R2({A,B,C,D},{ B→A,C→DB })

其中R2不属于BCNF,继续按③处理,则R分为R1({D,E},{D→E}) ∪ R21({A,B},{ B→A }) ∪ R22({B,C,D},{ C→DB }) 已均为BCNF。结果同上。

10.设有关系模式R(A,B,C,D,E),其函数依赖集F={A→BC,BC→E,B→D,A→D,E→A}。

(1)试找出关系模式R中的所有候选关键字。

(2)该关系模式最高能够满足第几范式?

(3)若该关系模式未达到BCNF,试对其进行分解,使其最终满足BCNF范式(保持函数依赖性)。

参考答案:

1、经过分析所有属性在被决定因素上都出现过

  为此要分别考察A、BC、E、B:

 先考察A

  已知A→BC, A→D, ∴ A→BCD ①

  ∵ A→BC ,BCE∴ A→E

  显然有 A→A ③

由①②③得,A->ABCDE ⑥

A为候选码

∵ E→A, ∴E->ABCDE ∴E也为候选码。

∵ BC→E, ∴BC->ABCDE ∵BC子集的闭包不等于{ABCDE},所以BC也为候选码。

显然,没有B->ABCDE, ∴B不是候选码。

2、显然主属性为{A,B,C,E},非主属性为D。

∵ 存在非主属性D对候选码BC有部分函数依赖存在,∴ R属于1NF

 

3、下面是对R的一种可能分解,分解后的关系模式都满足BCNF范式。

F={A→BC,BC→E,B→D, A→D,E→A}

FM={A→B, A→C, BC→E,B→D, E→A }

采用算法4.4 

R1({A,B,C},{ABC}

R2({B,C, E},{ BCE}

R3({B,D},{BD})

R4({E,A},{EA})

如此R1、R2、R3、R4均达到了BCNF。

或者另一种分解:

R1({B,D},{BD})

R2({A,B,C,E},{ABC,BC→E,E→A}

11.设有关系模式R(A,B,C,D,E),其函数依赖集F={A→BC,BCD→E,B→D,A→D,E→A }。

(1)试找出关系模式R中的所有候选关键字。

(2)该关系模式最高能够满足第几范式?

(3)若该关系模式未达到BCNF,试对其进行分解,使其最终满足BCNF范式(保持函数依赖性)。

参考答案:

1、经过分析所有属性在被决定因素上都出现过。

  为此要分别考察A、BCD、E、B:

 先考察A

  已知A→BC, A→D, ∴ A→BCD ①

  ∵ A→BCD ,BCD→E,∴ A→E ②

  显然有 A→A ③

由①②③得,A->ABCDE ⑥

∴A为候选码。

∵ E→A, ∴E->ABCDE ∴E也为候选码。

∵ BCD→E, ∴BCD->ABCDE ∵BC闭包={ABCDE},所以BC也为候选码。

显然,没有B->ABCDE, ∴B不是候选码。

2、显然主属性为{A,B,C,E},非主属性为D。

∵ 有非主属性对任候选码有部分,∴ R属于1NF

3、下面是对R的一种可能分解,分解后的关系模式都满足BCNF范式。

F={A→BC,BCD→E,B→D,A→D,E→A}

FM={A→B, A→C, BC→E,B→D,E→A }

R1({A,B,C},{A→BC})

R2({B,C,E},{ BC→E})

R3({B,D},{B→D})

R4({E,A},{E→A})

如此R1、R2、R3、R4均达到了BCNF。

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值