《数据库原理与应用》(孟凡荣 闫秋艳)课后习题答案 联系客服

发布时间 : 星期二 文章《数据库原理与应用》(孟凡荣 闫秋艳)课后习题答案更新完毕开始阅读819f91acc77da26925c5b069

习题四

4.1 理解并给出下列术语的定义:函数依赖 部分函数依赖 完全函数依赖 传递函数依赖 候选码 主码 外码 全码 主属性 非主属性1NF 2NF 3NF BCNF 4NF 函数依赖集闭包 属性集闭包 函数依赖集等价 最小函数依赖集 无损连接 函数依赖保持

设R(U)是属性集U上的关系模式。若对于R(U)的任意一个可能的关系r,X,Y是属性集U的任意子集,当且仅当对r中任意一个给定的X的属性值,r中都只存在惟一的Y属性值与之对应。也就是说,如果X相等,就有Y也相等,则称Y函数依赖于X或X函数确定Y,记作X→Y。

在R(U)中,如果X?Y,并且对于X的一个真子集X',有X'?Y成立,则称Y对Xp部分函数依赖(Partial Functional Dependency),记作X???Y。

在R(U)中,如果X?Y,并且对于X的任何一个真子集X',都有X'??Y成立,则

f称Y对X完全函数依赖(Full Functional Dependency),记作X???Y。

在R(U)中,如果X?Y,Y??X,Y?Z,则称Z对X传递函数依赖(Transitive

tFunctional Dependency),记做X???Z

f设K为R中的属性或属性组,若K???U,则K为R的候选码。若候选码多于

一个,则选定其中的一个为主码。包含在任何一个候选码中的属性,叫做主属性。不包含在任何候选码中的属性称为非主属性。最简单的情况,码只包含单个属性;最复杂的情况是所有属性集组合成码,称为全码。关系模式R中属性或属性组X并非R的主码,但X是另一个关系模式的主码,则称X是R的外码。

设R是一个关系模式,如果R中的每一个属性A的属性名和属性值都是不可再分的,则称R属于第一范式,记作:R∈1NF。

若R?1NF,且每一个非主属性都完全函数依赖于码,则R?2NF。

关系模式R(U,F)中若不存在这样的码X,属性组Y及非主属性组Z(Z?Y),使得

?

X?Y,Y??X,Y?Z成立,则称R(U,F)?3NF。

关系模式R(U,F)?1NF,若每一个决定因素都含有码,则R?BCNF。

关系模式R(U,F)∈1NF,若对R的每个非平凡多值依赖X→→Y(Y?X),X都包含码,

?则称R(U)满足第四范式,记为R∈4NF。

称所有被一个已知函数依赖集F逻辑蕴涵的那些函数依赖的集合为F的闭包(Closure),+

记为F。

设有关系模式R(U),F是U上的一个函数依赖集,X?U,定义

XF+={A|X?A能由F根据Armstrong 公理导出},

并称XF+为属性集X关于函数依赖集F的闭包。

如果函数依赖集F满足下列条件,则称F是一个极小函数依赖集或最小覆盖。 ① F中每一个函数依赖的右部都是单个属性。

21

② 对F中任一函数依赖X→A,F-{X→A}都不与F等价。

{F-{X→A}}∪{Z-A}都不与F等价,③ 对于F中的任一函数依赖X→A,其中Z为X的任一

子集。

如果函数依赖集F与某个最小依赖集的最小依赖集。

F是R上的一个函数依赖集,R分解为关系模式的集合?={R1(U1), 设R是一个关系模式,

R2(U2), …, Rn(Un)}。如果对于R的满足F的每一个关系r,都有

Fm等价,则称

Fm是F的最小覆盖或

Fm是F

r??R1(r)若F+=(

?R2(r)....?Rn(r),则称?是一个无损连接的分解(lossingless jion

decomposition)

kFii?1)+,则R(U,F)的分解?={R(U,F),....,R(U,F)}}保持函

111kKk数依赖。

4.2 设有关系模式R(A,B,C,D,E,P,G,H),R的函数依赖集F={AB→CE,A→C ,

GP→B ,EP→A ,CDE→P ,HB→P ,D→HG ,ABC→PG},求D+ 【参考答案】 D+={DHG}

4.3 证明函数依赖集F={A→BC,A→D,CD→E}和函数依赖集G={A→BCE,A→ABD,

CD→E}的等价性 【参考答案】

∵ A→BC,A→D,CD→E ,∴A→BCE,A→ABD,有F?G? ∵ A→BCE,A→ABD ,∴ A→BC,A→D,CD→E ,有G?F?

所以F和G等价。

4.4 设关系模式R(ABCD),F是R上成立的函数依赖集,F={A→B,C→B},则相对于F,

试写出关系模式R的候选码,并说明理由 【参考答案】

关系模式R的候选码为ACD

在关系F中B只出现在右边,所以B一定不是候选码 在关系F中D没有出现D必然出现在候选码中 在关系F中AC出现在左边 A→B,C→C,A→A

所以A能推出ABC,因此候选码是ACD

4.5 设有关系模式R(A,B,C,D,E),R的函数依赖集F={AB→D,B→CD,DE→B,C

→D,D→A}

⑴ 计算(AB)+,(AC)+,(DE)+

22

⑵ 求R的所有候选码 ⑶ 求F的最小覆盖 【参考答案】

⑴(AB)={ABCD}

(AC)={ACD} (DE)+={ABCDE}

⑵ R属性:E, LR属性:ABCD (AE) +={AE} (BE) +={ABCDE} (CE) +={ABCDE} (DE) +={ABCDE}

R的候选码为:BE, CE, DE

⑶ 右部属性单一化:F1={ AB→D,B→C,B→D,DE→B,C→D,D→A } 去掉多余的函数依赖:F2={B→C, DE→B,C→D,D→A} 去掉冗余的属性:没有冗余属性

所以F的最小覆盖Fmin=F2={B→C, DE→B,C→D,D→A}

4.6 设有关系模式R(A,B,C,D),R的函数依赖集F={A→C,C→A,B→AC,D→AC,

BD→A},求F的最小覆盖 【参考答案】

第一步:将F的所有函数依赖的右部都分解成单一属性: F1={ A→C,C→A,B→A ,B→C,D→A,D→C,BD→A } 第二步:去掉冗余的函数依赖:

1考察A→C,令G={C→A,B→A ,B→C,D→A,D→C,BD→A}○,A+G={A}

因为C? AG,所以A→C不冗余;

2考察C→A,令G={A→C, B→A ,B→C,D→A,D→C,BD→A}○,C+G={C} 因为A ?CG,所以C→A不冗余;

+3考察B→A,令G={A→C,C→A,B→C,D→A,D→C,BD→A}○,BG={ABC}

因为A? B+G,所以B→A冗余,从F1中删除B→A,F2={A→C,C→A,B→C,D→A,D→C,BD→A};

4考察B→C,令G={A→C,C→A,D→A,D→C,BD→A}○,BG={B}

++

因为C? B+G,所以B→C不冗余;

5考察D→A,令G={A→C,C→A,B→C, D→C,BD→A}○,D+G={ACD}

因为A? D+G,所以D→A冗余,从F2中删除D→A,F3={A→C,C→A,B→C, D→C,BD→A};

6考察D→C,令G={A→C,C→A,B→C,BD→A}○,D+G={D}

因为C? D+G,所以D→C不冗余;

7考察BD→A,令G={A→C,C→A,B→C, D→C}○,(BD)+G={ABCD}

因为A? (BD)+G,所以BD→A冗余,从F3中删除BD→A,F4={A→C,C→A,B→C,

D→C};

23

第三步:去掉冗余的属性:

由于左边都是单属性,所以: Fm=F4={A→C,C→A,B→C, D→C}; 但是结果不唯一。

4.7 设关系模式R(ABC),F是R上成立的FD集,F={C→A,B→A},分解ρ={AB,BC},

判断ρ是否具有函数依赖保持性? 【参考答案】

F1 =?(F)= (B→A)

U1F2 =?U2(F)=?

G = F1∪F2 = { B→A } F={ C→A,B→A }

显然,G必定包含于F+。而F不包含于G+。 因此,有G+≠F+,即

∴ρ不具有函数依赖保持性。 4.8 设关系模式R(ABC),F是R上成立的FD集,F={C→A,B→C},ρ={AB,AC},判

断ρ是否具有“无损连接性”和“函数依赖保持”性 【参考答案】

考察“无损连接性”:

①首先构造初始表,结构如表1

表1 初始表

Aj A B C Ri AB AC a1 a1 a2 b23 b13 a3 ②修改表

逐一考察F中的函数依赖: a) C→A,表的结构不变; b) B→C,表的结构不变;

此时,对F中的每个函数依赖,表的结构都不再变化。又因为表中没有出现a1,a2,a3 的行,所以该分解不具有无损连接性。 考察“函数依赖保持”

F1 =?(F)= (B→A)

U1F2 =?U2(F)=( C→A)

G = F1∪F2 = { B→A ,C→A } F={ C→A,B→C }

显然,G必定包含于F+。而F不包含于G+。

++

因此,有G≠F,即 ∴ρ不具有函数依赖保持性。

4.9 设关系模式R(ABCD),在R上有5个相应的FD集及分解:

⑴ F={B→C,D→A},ρ={AD,BC}

24