您的位置:首页 > 数据库

数据库第五章作业

2015-05-08 13:19 176 查看
2、关系模式:

学生(学号,姓名,出生日期,系名,班号,宿舍区);班级(班号,专业名,系名,人数,入校年份);

系(系名,系号,系办公室地点,人数);学会(学会名,成立年份,地点,人数);

学生-学会(学号,学会名,入会年份)。

(1)学生(学号,姓名,出生日期,系名,班号,宿舍区):

最小函数依赖集:学号——>姓名,学号——>出生日期,学号——>系名,学号——>班号,系名——>宿舍。

传递依赖:学号——>宿舍。

候选码:学号。外码:班号,系名。

(2)班级(班号,专业名,系名,人数,入校年份):

最小函数依赖集:班号——>专业名,班号——>人数,班号——>入校年份,专业名——>系名。

传递依赖:班号——>系名。

候选码:班号。外码:系名。

(3)系(系名,系号,系办公室地点,人数):

最小函数依赖集:系号——>系名,系名——>系号,系号——>系办公室地点,系号——>人数。

无传递依赖。候选码:系名,系名。外码:无。

(4)学会(学会名,成立年份,地点,人数):

最小函数依赖集:学会名——>成立年份,学会名——>地点,学会名——>人数。

无传递依赖。候选码:学会名。无外码。

(5)学生-学会(学号,学会名,入会年份):

最小函数依赖集:(学号,学会名)——>入会年份。

无传递依赖,是完全函数依赖。候选码:(学号,学会名)外码:学号,学会名。

3、(1)R的候选码为BD。(BD)3 = BDAC。

(2)将F中的函数依赖都分解为右部为单属性的函数依赖.

F={A→C,C→A,B→A,B→C,D→A,D→C,BD→A}

去掉F中冗余的函数依赖.

判断A→C是否冗余.

设:G1={C→A,B→A,B→C,D→A,D→C,BD→A},得(A)G1+=A

∵C不属于(A)G1+   ∴ A→C不冗余

判断C→A是否冗余.

设:G2={A→C,B→A,B→C,D→A,D→C,BD→A},得(A)G2+=C

∵A不属于(C)G2+   ∴ C→A不冗余

判断B→A是否冗余.

设:G3={A→C,C→A,B→C,D→A,D→C,BD→A},得(B)G3+=BCA

∵A属于(B)G3+   ∴ B→A冗余

判断B→C是否冗余.

设:G4={A→C,C→A,D→A,D→C,BD→A},得(B)G4+=B

∵C不属于(B)G4+   ∴ B→C不冗余

判断D→A是否冗余.

设:G5={A→C,C→A,B→C,D→C,BD→A},得(D)G5+=DCA

∵A不属于(D)G5+   ∴ D→A冗余

判断A→C是否冗余.

设:G6={A→C,C→A,B→C,BD→A},得(D)G6+=D

∵C不属于(D)G6+   ∴ D→C不冗余

判断BD→A是否冗余.

设:G7={A→C,C→A,B→C,D→C},得(BD)G7+=BDCA

∵A不属于(BD)G7+   ∴ BD→A冗余

综上所述:Fm={A→C,C→A,B→C,D→C}

(3)τ={AC,BC,DC,BD}。

5、将函数依赖集F分解为右边为单属性的函数依赖:

F={AB→E,BC→D,BE→C,CD→B,CE→A,CE→F,CF→B,CF→D,C→A,D→E,D→F}。


去掉F中冗余的函数依赖.

判断AB→E是否冗余.

设:G1={BC→D,BE→C,CD→B,CE→A,CE→F,CF→B,CF→D,C→A,D→E,D→F},得(AB)G1+=AB

∵E不属于(AB)G1+   ∴ AB→E不冗余

判断BC→D是否冗余.

设:G2={AB→E,BE→C,CD→B,CE→A,CE→F,CF→B,CF→D,C→A,D→E,D→F},得(BC)G2+=BCA

∵D不属于(BC)G2+   ∴ BC→D不冗余

判断BE→C是否冗余.

设:G3={AB→E,BC→D,CD→B,CE→A,CE→F,CF→B,CF→D,C→A,D→E,D→F},得(BE)G3+=BE

∵C不属于(BE)G3+   ∴ BE→C不冗余

判断CD→B是否冗余.

设:G4={AB→E,BC→D,BE→C,CE→A,CE→F,CF→B,CF→D,C→A,D→E,D→F},得(CD)G4+=CDAEFB

∵B属于(CD)G4+   ∴ CD→B冗余

判断CE→A是否冗余.

设:G5={AB→E,BC→D,BE→C,CD→B,CE→F,CF→B,CF→D,C→A,D→E,D→F},得(CE)G5+=CEFABD

∵A属于(CE)G5+    ∴ CE→A冗余

判断CE→F是否冗余.

设:G6={AB→E,BC→D,BE→C,CD→B,CE→A,CF→B,CF→D,C→A,D→E,D→F},得(CE)G6+=CEA

∵F不属于(D)G6+    ∴ CE→F不冗余

判断CF→B是否冗余.

设:G7={AB→E,BC→D,BE→C,CD→B,CE→A,CE→F,CF→D,C→A,D→E,D→F},得(CF)G7+=CFDABE

∵B属于(CF)G7+   ∴ CF→B冗余


判断CF→D是否冗余.

设:G7={AB→E,BC→D,BE→C,CD→B,CE→A,CE→F,CF→B,C→A,D→E,D→F},得(CF)G7+=CFDABE

∵D属于(CF)G7+   ∴ CF→D冗余

判断C→A是否冗余.

设:G7={AB→E,BC→D,BE→C,CD→B,CE→A,CE→F,CF→B,CF→D,D→E,D→F},得(C)G7+=C

∵A不属于(C)G7+   ∴ C→A不冗余


判断D→E是否冗余.

设:G7={AB→E,BC→D,BE→C,CD→B,CE→A,CE→F,CF→B,CF→D,C→A,D→F},得(D)G7+=DF

∵E不属于(D)G7+   ∴ D→E不冗余


判断D→F是否冗余.

设:G7={AB→E,BC→D,BE→C,CD→B,CE→A,CE→F,CF→B,CF→D,C→A,D→E},得(D)G7+=DF

∵F属于(D)G7+   ∴ D→F冗余


Fm={AB→E,BC→D,BE→C,CE→F,C→A,D→E}。

8、(1)关系中l类(只出现在左边)L=(IB)

关系中R类(只出现在右边)R=(DQ)

关系中LR类(两边都有)LR=(S)

关系中NLR类(两边都没有)NLR=(O)

NLR类O一定是侯选码的一部分。

(IB)的属性闭包为LBDQS

所以R的侯选码为IBO

(2) Fm={S→D,I→S,IS→Q,B→Q}


S→D不满足BCNF范式,把R分解为R11(SD),R12(BOISQ),F11(S→D),F12(I→S,IS→Q,B→Q);


IS→Q不满足BCNF范式,继续分解,R11(SD),R12(ISQ),R13(BOQ),F11(S→D),F12(I→S,IS→Q),F13(B→Q)。


则{R11,R12,R13}为最后结果。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: