资源描述:
《作业题答案及BCNF分解算法案例》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、分解为BCNF的例子:例如:有U={学号,课程号,课程名,学习期限,成绩,奖学金},F={课程号→学习期限,(学号,课程号)→成绩,成绩→奖学金,课程名→课程号,课程号→课程名}。现将函数依赖模式(U,F)做转化为BCNF的分解。步骤如下:(1)求出F的等价的最小函数依赖集合F’=F,令ρ1={(U,F)};(2)因检查到:成绩→奖学金∈F,但这里成绩不属于KEY(U,F),所以(U,F)不属于BCNF,应做如下分解:U1={成绩,奖学金}(=X∪{A})F1={成绩→奖学金}U2={学号,课程号,课程名,学习期限,成绩}(=U-{A})F2={课程号→学习期限,(学号,课
2、程号)→成绩,课程号→课程名,课程名→课程号}令ρ2={(U1,F1),(U2,F2)}(3)ρ2中(U1,F1)已属于BCNF,但在(U2,F2)中检查到:课程号→学习期限∈F2,但这里课程号不属于KEY(U2,F2),所以(U2,F2)仍不属于BCNF,于是将(U2,F2)再做如下分解:U3={课程号,学习期限}(=X∪{A})F3={课程号→学习期限}*U4={学号,课程号,课程名,成绩}(=U2-{A})F4={(学号,课程号)→成绩,课程号→课程名,课程名→课程号}令ρ3={(U1,F1),(U3,F3),(U4,F4)}(4)ρ3中(U1,F1),(U3,F3)
3、都已属于BCNF,但在(U4,F4)中仍检查到:课程号→课程名∈F4,但课程号不属于KEY(U4,F4),所以知(U4,F4)仍不属于BCNF,于是再做如下的分解:U5={课程号,课程名}(=X∪{A})F5={课程号→课程名,课程名→课程号}*U6={课程号,学号,成绩}(=U4-{A})F6={(学号,课程号)→成绩}*令ρ4={(U1,F1),(U3,F3),(U5,F5),(U6,F6)}ρ4中的所有函数依赖模式全属于BCNF,算法终止。但算法3.4给出的转化为BCNF的分解,可保证无损连接,而有时不能保证无损依赖。例如:U={学生,课程,教师},规定一个教师教一门
4、课,但一门课可由多个教师教,则有F={教师→课程,(学生,课程)→教师}。显然(学生,课程)是(U,F)的关键字,但在F中有教师→课程,所以(U,F)不属于BCNF。按以上算法(U,F)分解为U1={教师,课程}(=X∪{A})F1={教师→课程}U2={学生,教师}(=R-{A})F2={}显然这样分解后(学生,课程)→教师的函数依赖丢失了。1、已知:关系模式R(U,F)U=ABCDF={A→C,C→A,B→AC,D→AC}求:(1)(AD)F+。(2)R的候选码。(3)求F的最小函数依赖集,并将模式R无损失连接且保持函数依赖分解为3NF2、设有一个反映学生及其所选课程信
5、息的关系模式:R(学生号,学生名,学生系别,系办公地点,课程号,课程名,授课教师,成绩)如果规定:学生号、课程号惟一;每门课程只有一位授课教师;每个系的办公地点固定。学生名和课程名有可能重复。每个学生可以选修多门课程,每门课程可以有多个学生选修;学生选修课程最终会有选修成绩。问题(1)根据上述规定,写出模式R的基本FD和关键码。问题(2)R最高达到第几范式,并说明理由。问题(3)将R规范到3NF。1、解:(1)(AD)F+=ADC,候选码:BD(2)最小函数依赖集:先分解为F={A→C,C→A,B→A,B→C,D→A,D→C};再去除冗余函数依赖,检查D→C,G=F-{D→
6、C}={A→C,C→A,B→A,B→C,D→A},DG+={A,D,C},因C∈{A,D,C},多余,去掉;检查D→A,G=F-{D→A}={A→C,C→A,B→A,B→C},DG+={D},AÏ{D}。保留;同理:A→C,C→A,B→A保留,B→C多余,去掉。因此,Fm={A→C,C→A,B→A,D→A}。(3)将模式R分解为3NF,P{AC,BA,DA,BD}。或者,Fm={A→C,C→A,B→C,D→C},P{AC,BC,DC,BD}2、解:R的基本函数依赖FD有:学号→学生名,学号→学生系别,学生系别→系办公地点,课程号→课程名,课程号→授课教师,(学号,课程号)→
7、成绩问题(2)R最高达到第几范式,并说明理由。解:R最高达到第一范式,因为该关系模式中码是(学号,课程号),其中,学号→学生名,(学号,课程号)→学生名,可知存在非主属性学生名部分依赖于码(学号,课程号)。解:将关系R的函数依赖集FD进行极小化处理,得到的极小函数依赖集,即本题的基本函数依赖。将这些函数依赖按具有相同左部的原则分组,可分为如下四组:Z1:学号→学生名,学号→学生系别,涉及的属性集为(学号,学生名,学生系别)Z2:学生系别→系办公地点,涉及的属性集为(学生系别,系办公地点)Z3:课程号→课程名,课程号