您的当前位置:首页正文

作业题答案及BCNF分解算法案例

2023-03-15 来源:步旅网


分解为BCNF的例子:

例如:有U = {学号, 课程号, 课程名, 学习期限, 成绩, 奖学金},

F= {课程号→学习期限,( 学号, 课程号)→成绩,成绩→ 奖学金,课程名 →课程号,课程号→课程名}。现将函数依赖模式( U, F) 做转化为BCNF的分解。步骤如下:

( 1) 求出F的等价的最小函数依赖集合F’=F,令ρ= {( U, F) };

( 2) 因检查到:成绩→ 奖学金∈F,但这里成绩不属于KEY(U, F),所以(U, F)不属于 BCNF,应做如下分解:

U={成绩,奖学金}(= X∪{A})

F= {成绩→ 奖学金}

U= {学号, 课程号, 课程名, 学习期限, 成绩} ( = U - {A})

F= {课程号→ 学习期限,(学号, 课程号) → 成绩,课程号→课程名,课程名→ 课程号}

令ρ= {( U, F) , (U, F) }

(3) ρ中(U, F)已属于BCNF,但在(U, F)中检查到:课程号→学习期限∈F,但这里课程号不属于KEY(U, F),所以(U, F)仍不属于BCNF,于是将(U, F)再做如下分解:

U= {课程号, 学习期限} ( = X∪{A})

F= {课程号→ 学习期限}

U= {学号, 课程号, 课程名, 成绩} ( = U - {A})

F= {(学号, 课程号) → 成绩, 课程号→ 课程名, 课程名→ 课程号}令ρ= {( U, F) , (U, F) , (U, F) }

(4) ρ中(U, F) , (U, F)都已属于BCNF,但在(U, F) 中仍检查到:课程号→ 课程名∈ F,但课程号不属于KEY(U, F),所以知(U, F)仍不属于BCN F,于是再做如下的分解:

U= {课程号, 课程名} ( = X ∪ {A})

F= {课程号→ 课程名, 课程名→ 课程号}

U= {课程号, 学号, 成绩} ( = U - {A})

F= {( 学号, 课程号) → 成绩}

令ρ= {( U, F) , (U, F) , (U, F) , (U, F) }

ρ中的所有函数依赖模式全属于BCN F,算法终止。

但算法3. 4 给出的转化为BCN F的分解, 可保证无损连接, 而有时不能保证无损依赖。例如: U = {学生, 课程, 教师}, 规定一个教师教一门课, 但一门课可由多个教师教, 则有F=

{教师→ 课程, (学生, 课程) → 教师}。显然(学生, 课程) 是(U, F) 的关键字, 但在F中有教师→ 课程, 所以(U, F) 不属于BCN F 。按以上算法(U, F) 分解为

U= {教师, 课程} ( = X ∪ {A})

F= {教师→课程}

U= {学生, 教师} ( = R - {A})

F= { }

显然这样分解后( 学生, 课程)→教师的函数依赖丢失了。

1、已知:关系模式R(U,F)U=ABCD F={A→C,C→A, B→AC,D→AC}求:(1)(AD)F+。

(2)R的候选码。

(3)求F的最小函数依赖集,并将模式R无损失连接且保持函数依赖分解为3NF

2、设有一个反映学生及其所选课程信息的关系模式:

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→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 有:学号→学生名,学号→学生系别,学生系别→系办

公地点,课程号→课程名,课程号→授课教师,(学号,课程号)→成绩

问题(2)R最高达到第几范式,并说明理由。

解:R最高达到第一范式,因为该关系模式中码是(学号,课程号),其中,学号→学生名,(学号,课程号)→学生名,可知存在非主属性学生名部分依赖于码(学号,课程号)。

解:将关系R的函数依赖集FD进行极小化处理,得到的极小函数依赖集,即本题的基本函数依赖。

将这些函数依赖按具有相同左部的原则分组,可分为如下四组:

Z1:学号→学生名,学号→学生系别,涉及的属性集为(学号,学生名,学生系别)

Z2:学生系别→系办公地点, 涉及的属性集为(学生系别,系办公地点)

Z3:课程号→课程名,课程号→授课教师,涉及的属性集为(课程号,课程名,授课教师)

Z4:(学号,课程号)→成绩,涉及的属性集为(学号,课程号,成绩) 因此,根据算法,以上各个属性集构成的关系模式即满足第3范式。将R分解的关系模式如下所示:

学生(学号,学生名,学生系别) 系(学生系别,系办公地点)

课程(课程号,课程名,授课教师) 选修(学号,课程号,成绩)

因篇幅问题不能全部显示,请点此查看更多更全内容