习题集关系理论.docx

上传人:b****5 文档编号:6635593 上传时间:2023-01-08 格式:DOCX 页数:17 大小:33.88KB
下载 相关 举报
习题集关系理论.docx_第1页
第1页 / 共17页
习题集关系理论.docx_第2页
第2页 / 共17页
习题集关系理论.docx_第3页
第3页 / 共17页
习题集关系理论.docx_第4页
第4页 / 共17页
习题集关系理论.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

习题集关系理论.docx

《习题集关系理论.docx》由会员分享,可在线阅读,更多相关《习题集关系理论.docx(17页珍藏版)》请在冰豆网上搜索。

习题集关系理论.docx

习题集关系理论

第7章关系数据库设计理论

7.1学习要点

关系数据库设计理论是关系数据库的又一个重点.关系数据库的逻辑设计主要是设计关系模式,而深入了解函数依赖和码的概念则是设计和分解关系模式的基础.学习本章的目的有两个.一个是理论方面的,本章用更加形式化的关系数据理论来描述和研究关系模型.另一个是实践方面的,关系数据库设计理论是我们进行数据库设计的有力工具.

1、知道什么是函数依赖、完全函数依赖、部分函数依赖和传递函数依赖,能确定两个或多个属性间的函数依赖,计算属性的闭集;

2、理解关系的码和超码、主属性和非主属性;

3、理解1NF、2NF、3NF和BCNF的定义,并能辨别某关系属于哪种范式类型;

4、掌握规范化一个关系模式的原则方法,能够将某1NF关系规范化为3NF或BCNF;

5、理解多值依赖和连接依赖,初步掌握分解成第四范式的方法.

7.2习题讲解

1.理解并给出下列名词的涵义:

函数依赖、部分函数依赖、传递函数依赖、超码、多值依赖.

答:

函数依赖是数据库中两个属性集之间的约束.设R(U)是属性集U上的关系模式,X、Y是U的子集,r是R的任一具体关系.设t1、t2是关系r中的任意两个元组,如果t1[X]=t2[X],有t1[Y]=t2[Y],则称X函数决定Y,或Y函数依赖于X,记作X→Y.

在关系模式R(U)中,X,Y是U的子集,若X→Y,且存在X'X,使X'→Y,则称X→Y是部分函数依赖(partialfunctionaldependency),记作X

Y.

在关系模式R(U)中,X,Y是U的子集,若X→Y,Y→Z,并且Y不函数依赖于X,则称Z传递函数依赖于X.

包含候选码的属性或属性组称为超码(Superkey).

设有关系模式R(U),X、Y为U的子集,Z=U-XY,r是R的任一关系,如果r中存在两个元组t1、t2满足t1[X]=t2[X],则r中必然存在两个元组t3、t4,使得

(1)t3[X]=t4[X]=t1[X]=t2[X]

(2)t3[Y]=t1[Y]且t4[Y]=t2[Y]

(3)t3[Z]=t2[Z]且t4[Z]=t1[Z]

则称X→→Y是多值依赖(multivalueddependency,MVD),X多值决定Y.

2.设有关系模式R(ABCDE),有函数依赖集F={AB,ABD,EAD,EC}和G={ABD,EAC},判断F和G是否等价.

答:

AG+=ABD,EG+=ABCDE,可知F中的函数依赖AB、ABD、EAD、EC都属于G+,所以FG+;AF+=ABD,EF+=ABCDE,可知G中的函数依赖ABD,EAC都属于F+,所以GF+.

根据引理5.3,F与G等价.

3.设有一关系模式R(ABCD),其函数依赖集F={A→BC,B→C,AB→C,AC→D},求F的最小依赖集Fmin.

答:

(1)首先用分解规则将F中所有的函数依赖的右部属性单一化.得F={A→B,A→C,B→C,AB→C,AC→D}.

(2)去掉F中多余的依赖.具体做法是:

从第一个函数依赖(假设为X→Y)开始,把它从F中去掉,求X+,若X+包含Y,则X→Y是多余的,要去掉;若X+不包含Y,则不能去掉X→Y.检查全部依赖后可得G.显然G符合最小函数依赖集定义5.6的条件

(2).

这里,对于A→B,由于(A)+=ACD不包含B,所以不能去掉;而由于从F中去掉A→C后,A+=ABCD,包含了C,所以A→C是多余的,从F中去掉;接下去B→C不能去掉,而且AB→C明显多余,从F中去掉;(AC)+=ABC不包含D,所以AC→D不能去掉,最后得G={A→B,B→C,AC→D}.

(3)去掉F2中的函数依赖左边的多余的属性.具体做法是:

检查F中所有左边是非单属性的函数依赖,如XY→A,要判断Y是否为多余属性,只要在F中求X+,若X+包含A,则Y是多余属性,否则Y不是多余属性.该题G中AC→D的C属性多余,去掉后得到的函数依赖集Fmin={A→B,B→C,A→D}.

4.设有关系模式R(ABCDE),其函数依赖F={ABC,CDE,BD,EA},试求

(1)计算B+.

(2)求R的所有码.

答:

(1)根据算法5.1,令X(0)=B

在F中找出左边是B的子集的函数依赖,有B→D;

X

(1)=BD

因为X

(1)≠X(0),

继续在F中找出左边是BD的子集的函数依赖,由于不存在这样的函数依赖,所以不必再计算下去了.

结果为:

B+=BD.

(2)因为A+=ABCDE,E+=ABCDE,(BC)+=ABCDE,(CD)+=ABCDE,B+=BD,C+=C,D+=D,所以候选码为A、E、BC、CD.

5.试验证上题4中的R的以下两个分解是否具有无损连接性:

1={R1(ABC),R2(ADE)}

2={R1(ABC),R2(CDE)}.

答:

对于1={R1(ABC),R2(ADE)},R1∩R2=A,R1–R2=BC,R2–R1=DE,根据A+=ABCDE知(R1∩R2)→(R1–R2)和(R1∩R2)→(R2–R1)都满足,根据定理5.4,分解具有无损连接性.

对于2={R1(ABC),R2(CDE)},R1∩R2=C,R1–R2=AB,R2–R1=DE,根据C+=C知(R1∩R2)→(R1–R2)和(R1∩R2)→(R2–R1)都不满足,根据定理5.4,分解不具有无损连接性.

6.设有关系模式R(ABCDEGHI),其函数依赖F={ABC,ADE,BGH,DI},试求

(1)求R的所有码.

(2)将R分解成2NF.

(3)将R无损分解成3NF,并且具有保持依赖性.

答:

(1)因为A+=ADEI,B+=BGH,(AB)+=ABCDEGHI,A、B没有在函数依赖的右边出现,所以候选码为AB.

(2)因为2NF要求每一个非主属性完全函数依赖于码,而AB为码,非主属性C完全函数依赖于码,非主属性DEGHI都部分依赖于码,所以将R分解为三个模式R1、R2和R3:

R1(ABC);R2(ADEI);R3(BGH).

这样,R1中的非主属性C完全函数依赖于码AB;R2中的非主属性DEI完全函数依赖于码A;R3中的非主属性GH完全函数依赖于码B.因此,R1、R2和R3都满足2NF.

(3)首先求出F的最小依赖集Fmin,即Fmin={ABC,ADE,BGH,DI}.

根据算法5.3,得ρ={ABC,ADE,BGH,DI},由于R的码是AB,所以根据算法5.4可得,=ρ∪{AB}={ABC,ADE,BGH,DI,AB},由于ABABC,因此={ABC,ADE,BGH,DI},是R的同时具有无损连接性和依赖保持性的3NF分解.

7.设有关系模式R(ABCD),其函数依赖F={AC,CA,BAC,DAC},试求

(1)求R的所有码.

(2)将R无损分解成BCNF.

(3)将R无损分解3NF,并且具有保持依赖性.

答:

(1)因为(BD)+=ABCD,B、D没有在函数依赖的右边出现,所以候选码为BD.

(2)根据算法5.5:

初始化ρ={R};

R的码是BD,因此A、C、B和D不是超码.首先由左边不包含码的非平凡函数依赖AC,从R中分出AC(A,C),得ρ={R1(ABD),AC(A,C)}.

然后,R1的码是BD,因此B和D不是超码.由左边不包含码的非平凡函数依赖BAC,从R1中分出BA(B,A),得ρ={BA(B,A),BD(B,D),AC(A,C)}.

BA、BD和AC都是BCNF,并且具有无损连接性.ρ不具有依赖保持性.

另外,={DA(D,A),BD(B,D),AC(A,C)}也是具有无损连接性的分解,但同样不具有依赖保持性.

(3)首先求出F的最小依赖集Fmin,即Fmin={AC,CA,BA,DA}.

根据算法5.3,得ρ={AC,CA,BA,DA},由于R的码是BD,所以根据算法5.4可得,=ρ∪{BD}={AC,CA,BA,DA,BD},由于AC=CA,因此={AC,BA,DA,BD},是R的同时具有无损连接性和依赖保持性的3NF分解.另外ρ={AC,BC,DC,BD}也是R的同时具有无损连接性和依赖保持性的3NF分解.

8.在1NF~BCNF范围内,指出下列关系模式是第几范式,并说明理由.

(1)R(ABC),F={AB,BA,AC}.

(2)R(ABC),F={AB,BA,CA}.

(3)R(ABCD),F={BD,ABC}.

(4)R(ABC),F={BC,ACB}.

(5)R(ABCD),F={BD,DB,ABC}.

(6)R(ABCDE),F={ABCE,EAB,CD}.

答:

(1)候选码为A、B,可知F中每个非平凡函数依赖的左边都包含码,所以RBCNF.

(2)候选码为C,可知非主属性都完全函数依赖于码,但存在非主属性B传递函数依赖于码C,所以R2NF.

(3)候选码为AB,可知非主属性D部分函数依赖于码,所以R1NF.

(4)候选码为AB、AC,可知A、B、C都是主属性,不存在非主属性部分函数依赖或传递对函数依赖于码,另外非平凡函数依赖BC的左边不包含码,所以R3NF.

(5)候选码为AB、AD,可知不存在非主属性C部分函数依赖或传递对函数依赖于码,另外非平凡函数依赖BD的左边不包含码,所以R3NF.

(6)候选码为E、AB,可知非主属性都完全函数依赖于码,但存在非主属性D传递函数依赖于码,所以R2NF.

9.设关系模式R(ABC)上有一多值依赖AB,已知R的当前关系存在三个元组,如图7.1所示,试问该关系中至少还应存在哪些元组才能满足多值依赖的要求.

答:

A

B

C

a1

b1

c1

a1

b2

c2

a1

b3

c3

图7.1R的当前关系

根据多值依赖的定义,可知当前关系中还应该存在6个元组:

(a1,b1,c2),(a1,b1,c3),(a1,b2,c1),(a1,b2,c3),(a1,b3,c1),(a1,b3,c2).

7.3自测题

一、选择题

1.设学生关系模式为:

学生(学号,姓名,年龄,性别,成绩,专业),则该关系模式的主码是(  ).

A.姓名  B.学号,姓名  C.学号  D.学号,姓名,年龄

2.设一关系模式为R(A,B,C,D,E)及函数依赖F={A→B,B→E,E→A,D→E},则关系模式的R候选码是(  ).

A.AD  B.CD  C.EB  D.EC

3.下列有关范式的叙述中正确的是(  ).

A.如果关系模式R∈1NF,且R中主属性完全函数依赖于主码,则R是2NF

B.如果关系模式R∈3NF,X,Y∈U,若X→Y,则R是BCNF

C.如果关系模式R∈BCNF,若X→→Y(Y∉X)是平凡的多值依赖,则R是4NF

D.一个关系模式如果属于4NF,则一定属于BCNF;反之不成立

4.给定关系模式SCP(Snum,Cnum,P),其中Snum表示学号,Cnum表示课程号,P表示名次.若每一名学生每门课程都有一定的名次,而每门课程每一名次只有一名学生,则以下叙述中错误的是(  ).

A.(Snum,Cnum)和(Cnum,P)都可以作为候选码

B.(Snum,Cnum)是唯一的候选码

C.关系模式SCP既属于3NF也属于BCNF

D.关系模式SCP没有非主属性

5.消除多值依赖所引起的冗余是属于(  ).

A.2NF  B.3NF  C.4NF  D.BCNF

6.下列叙述中正确的是(  ).

A.3NF不能保持多值依赖  B.4NF肯定能保持多值依赖

C.BCNF可能保持函数依赖D.4NF不能保持函数依赖

7.若关系模式R的函数依赖集F中的所有候选码都是决定因素,则R的最高范式是(  ).

A.2NF  B.3NF  C.BCNF  D.4NF

8.关系模式R包含属性{A1,A2,A3,A4,A5},其中{A1,A2}为码,则下面说法正确的是(  ).

A.{A1}或{A2}有可能单独成为R的码

B.{A1,A2,A3}必然也是R的码

C.R中绝不可能出现两个在A1,A2上取值完全相同的元组

D.R的所有元组中,A1或者A2的值都是不能重复的

9.设一关系模式为R(A,B,C)及函数依赖F={AB→C,BC→A,B→C},则下列说法(  )是正确的.

A.R一定消除了插入和删除异常  B.R属于BCNF

C.R属于3NF  D.R一定消除了冗余

10.在关系模式R中,函数依赖X→Y的语义是()

A.在R的任意两个关系中,若X值相等,则Y值也相等

B.在R的当前关系中,若两个元组的X值相等,则Y值也相等

C.在R的任意关系中,Y值应与X值相等

D.在R的当前关系中,Y值应与X值相等

 11.函数依赖X→Y能从Armstrong推理规则推出的充分必要条件是()

A.Y→X  B.YX+   C.XY+  D.X+=Y+

12.在关系模式R(U)中,包含属性{A,B,C,D},R的码为{A,B},则下面的选项中是R的超码的有()

 A.{A}B.{C,D}C.{A,B,C,D}D.{B,C,D}

13.对于FDX→Y,如果有YX,那么称X→Y是一个()

A.包含函数依赖B.增广的函数依赖

C.传递的函数依赖D.平凡的函数依赖

14.设有关系模式R(A,B,C,D),F是R上成立的FD集,F={A→B,B→C},B

的闭包B+为由B函数决定的属性集,则B+为()

A.ABCB.BCDC.BCD.C

15.设有关系模式R(A,B,C,D),F是R上成立的FD集,F={B→C,D→C},属性集AB的闭包(AB)+为()

A.ABCDB.ABCC.CDD.BCD

16.现在只知道关系模式包含的属性和码(用下划线表示),则一定是第二范式的关系是()

A.R1{A1,A2,A3}B.R2{B1,B2,B3}

C.R3{C1,C2,C3}D.以上都不是

二、填空题

1、在关系模式R中,若每个数据项都是不可再分割的,那么R一定属于第范式.

2、通过模式分解把属于低级范式的关系模式转换为几个属于高级范式的关系模式的集合,这一过程称为.

3、关系数据库设计理论,主要包括三个方面内容:

、和.

4、对于函数依赖X→Y,如果Y⊆X,则称X→Y是一个.

5、如果YXU,则X→Y成立.这条推理规则称为_______________.

6、如果X→Y和Y→Z成立,则X→Z成立.这条推理规则称为______________.

7、如果X→Y和ZY成立,则X→Z成立.这条推理规则称为_______________.

三、问答题

1、关系规范化一般应遵循的原则是什么?

2、多值依赖与函数依赖有哪些主要的区别?

3、试叙述"无损联接"的定义.

4、试叙述"保持函数依赖"的定义.

四、综合题

1、建立一个关于系、学生、班级、学会等诸信息的关系数据库.其中描述学生的属性有:

学号、姓名、出生年月、系名、班号、宿舍号;描述班级的属性有:

班号、专业名、系名、人数、入校年份;描述系的属性有:

系名、系号、系办公地点、人数;描述学会的属性有:

学会名、成立年份、地点、人数.

若有关语义为:

一个系有若干专业,每个专业每年只招一个班,每个班有若干个学生;一个系的学生住在同一宿舍区;每个学生可参加若干学会,每个学会有若干学生;学生参加某学会有一个入会年份.

请给出关系模式,学出每个关系模式的极小函数依赖集,指出是否存在传递依赖.对于函数依赖左部是多余属性的情况,讨论函数依赖是完全函数依赖,还是部分函数依赖.

指出各关系模式的候选码、外部码,并说明有没有全码存在?

2、已知关系模式R(U,F),U={A,B,C,D,E},F={A→B,D→C,BC→E,AC→B}.求(AE)F+、(AD)F+.

3、已知关系模式R(U,F),U={A,B,C,D,E,G},F={AB→C,D→EG,C→A,BE→C,BC→D,CG→BD,ACD→B,CE→AG}.请将F化为最小函数依赖集.

4、已知关系模式R(U,F),U={A,B,C};F={A→B,B→A,B→C,A→C,C→A}.求F的最小函数依赖集.

5、对给定的关系模式R(U,F),U={A,B,C},F={A→B},有如下的两个分解:

(1)P1={AB,BC}

(2)P2={AB,AC}

判断这两个分解是否无损.

6、关系R(U,F),U={A,B,C,D,E,F,G,H,I,J},F={ABD→E,AB→G,B→F,C→J,CJ→I,G→H}.

(1)该函数依赖集F是最小函数依赖集吗?

(2)求出该关系的候选码.

7、关系R(A,B,C,D,E)满足下列函数依赖:

F={A→C,C→D,B→C,DE→C,CE→A}

(1)给出关系R的候选关键字.

(2)判断P={AD,AB,BC,CDE,AE}是否无损连接分解.

(3)将R分解为BCNF,并具有无损连接性.

8、设关系模式R(S#,C#,GRADE,TNAME,TADDR),其属性分别表示学生学号、选修课程和编号,成绩,任课教师姓名,教师地址等意义.

如果规定,每个学生每学一门课程只有一个成绩;每门课只有一个任课教师;每个教师有一个地址(此处不允许教师同名同姓).

(1)试写出关系模式R基本的FD和候选码.

(2)试把R分解成2NF模式集,并说明理由o

(3)试把R分解成3NF模式集,并说明理由.

9、设关系模式R(A,B,C,D)满足下列函数依赖:

F={AB→C,C→D,D→A},试写出关系模式R的候选码.

10、设关系模式R(U,F),U={A,B,C,D,E},F={AB→DE,C→E,D→C,E→A},现把R投影到S(A,B,C),求出S中的函数依赖集.

11、设关系模式R(U,F),U={A,B,C,D,E,F,G},F={A→B,BC→DE,AEF→G},计算{A,C}关于这个函数依赖集的闭包.该函数依赖集是否蕴涵函数依赖ACF→DG?

7.4自测题参考答案

一、选择题

1.C 2.C3.D4.B5.C6.C7.D8.C9.C10.B

11.B12.C13.D14.C15.B16.B17.D18.D

二、填空题

1.1

2.规范化

3.数据依赖范式模式设计方法(可交换位置)

4.平凡的函数依赖

5.自反律

6.传递律

7.分解律 

8.保持函数依赖

三、问答题

1、关系规范化一般应遵循的原则如下

(1)将关系模式进行无损连接分解,在关系模式分解的过程中,数据不能丢失或增加,要保证数据的完整性.

(2)合理地选择规范化的程度.在规范化时,既要考虑到低级范式造成的冗余度高,数据的不一致性,又要考虑到高级范式查询效率低的矛盾.

(3)正确性和可实现性原则.

2、多值依赖与函数依赖的主要区别如下:

(1)在关系模式R(U)中,函数依赖X→Y的有效性仅决定X、Y这两个属性集的值.只要在关系R(U)的任一关系r中,元组在X和Y上的值满足函数依赖的定义,则函数依赖X→Y在任何属性集W(XY⊆W⊆U)上都成立.

对于多值依赖,若X→→Y在W(W⊂U)上成立,但在U上不一定成立,所以多值依赖的有效性与属性集的范围有关.X→→Y在U上成立,则在W(XY⊆W⊆U)上成立,反之则不然.

(2)若函数依赖X→Y在R(U)上成立,则对于任何Y’⊂U,均有X→Y成立.

对于多值依赖X→→Y在R(U)上成立,但不能断言对于任何Y’⊂U,有X→→Y成立

3、答:

设R是关系模式,分解成数据库模式ρ={R1,…,RK},F是R上的FD集.如果对R中满足F的每个关系r都有:

r=πRI(r)⋈πR2(r)⋈…⋈πRk(r)

则称分解ρ相对于F是“无损联接分解”.

4、答:

设R是关系模式,分解成数据库模式ρ={R1,…,RK},F是R上的FD集,如果F+=(∪πRI(F))+,则称分解ρ保持函数依赖集F.

四、综合题

1、解:

(1)关系模式如下:

学生:

S(Snum,Sname,Sbirth,Dept,Class,Rno)

班级:

C(Class,Pname,Dept,Cnum,Cyear)

系:

D(Dept,Dno,Office,Dnum)

学会:

M(Mname,Myear,Maddr,Mnum)

学生学会:

SM(Snum,Mname,SMyear)

(2)每个关系模式的最小函数依赖集如下:

学生S的最小函数依赖集如下:

Snum→Sname,Snum→Sbirth,Class→Dept,Snum→Class,Dept→Rno

因为Snum→Dept,Dept→Rno,所以Snum与Rno之间存在着传递依赖

因为Class→Dept,Dept→Rno,所以Class与Rno之间存在着传递依赖

因为Snum→Class,Class→Dept,所以Snum与Dept之间存在着传递依赖

班级C的最小函数依赖集如下:

Class→Pname,Class→Cnum,Class→Cyear,Pname→Dept

因为Class→Pname,Pname→Dept,所以Class与Dept之间存在着传递依赖

系D的最小函数依赖集如下:

Dept→Dno,Dno→Office,Dno→Dnum

因为Dept→Dno,Dno→Office,所以Dept与Office之间存在着传递依赖

因为Dept→Dno,Dno→Dnum,所以Dept与Dnum之间存在着传递依赖

学会M的最小函数依赖集如下:

Mname→Myear,Mname→Maddr,Mname→Mnum

该模式不存在传递依赖

学生学会SM的最小函数依赖集如下:

(Snum,Mname)→SMyear是完全函数依赖

(3)各关系模式的候选码、外部码、全码如下:

学生S候选码:

Snum;外部码:

Dept,Class;无全码

班级C候选码:

Class;外部码:

Dept;无全码

系D候选码:

Dept或Dno;无外部码;无全码

学会M候选码:

Mname;无外部码;无全码

学生学会SM候选码:

(Snum,Mname);外部码:

Snum,Mname;无全码

2、解:

(1)求(AE)F+,根据上述算法,设X(0)=AE.

计算X

(1).逐一扫描F中的各个函数依赖,寻找左部为A、E或AE的函数依赖,找到一个A→B,故有X

(1)=AE∪B.

计算X

(2).逐一扫描F中的各个函数依赖,寻找左部为ABE或ABE子集的函数依赖,因为找不到这样的函数依赖,所以,X

(1)=X

(2),算法终止.(AE)F+=ABE.

(2)求(AD)F+,根据上述算法,设X(0)=AD.

计算X

(1).逐一扫描F中的各个函数依赖,寻找左部

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1