一、填空题
1.数据冗余不仅浪费存储空间,还可能导致操作异常和_数据不一致_。操作异常包括_插入异常_、 修改异常 和 删除异常 。
2.满足1NF、2NF和3NF的模式集合之间,是一种__包含_关系。
3.在函数依赖的范围内,___BC__NF达到了最高的规范化程度。
4.若关系R所有的属性都是不可再分的数据项,则称R属于第_一_范式。
5.1NF的关系消除非主属性对候选键的 部分 函数依赖后,可将范式等级提高到2NF。
6.关系模式由2NF转化为3NF是消除了非主属性对码的__传递函数依赖_____。
7.关系模式由3NF转化为BCNF是消除了 主属性对于候选键的部分和传递函数依赖 。
8.F中的函数依赖所蕴含的函数依赖的集合称为F的 闭包 , Armstrong公理 为计算F+提供了一个有效且完备的基础理论。
9.当且仅当两个函数依赖集的 闭包 相等时,这两个函数依赖集等价。
10.关系模式的规范化是通过 模式分解 来实现的。
二、选择题
1.关系数据库规范化理论是为解决关系数据库中 A 问题而引入的。
A.插入、修改、删除异常和数据冗余 B.提高查询速度
C.减少数据操作的复杂性 D.保证数据的安全性和完整性
2.设有关系模式EMP(职工号,姓名,年龄,技能)。假设职工号惟一,每个职工有多项技能,则EMP表的主键是 D 。
A.职工号 B.姓名,技能 C.技能 D.职工号,技能
3.设关系模式R(A,B)上的函数依赖为A→B,则R最高属于 D 。
A.2NF B.3NF C.BCNF D.4NF
4.3NF___D__规范为4NF。
A.消除非主属性对码的部分函数依赖
B.消除非主属性对码的传递函数依赖
C.消除主属性对码的部分和传递函数依赖
D.消除非平凡且非函数依赖的多值依赖
5.关系模式R中若没有非主属性,则___B__。
A.R属于2NF但不一定属于3NF B.R属于3NF但不一定属于BCNF
C.R属于BCNF但不一定属于4NF D.R属于4NF
6.设R(U)是属性集U上的关系模式。X、Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称___A__。
A. Y函数依赖于X B. Y对X完全函数依赖
C. X为U的候选码 D. R属于2NF
7.具有多值依赖的关系模式仍存在如下问题___D___。
A. 插入异常 B. 删除异常 C. 数据冗余太大
D. 插入异常、删除异常、数据冗余太大
8.当B属性函数依赖于A属性时,属性A与B的联系是___B__。
A.1对多 B.多对1 C.多对多 D.以上都不是
9.关系模式分解的无损连接和保持函数依赖两个特性之间___D___。
A.前者蕴含后者 B.后者蕴含前者
C.二者同时成立,或同时不成立 D.没有必然联系
10.设关系模式R(A,B,C,D),F是R上成立的FD集,F={ AB→C,D→B },那么F 在模式ACD上的投影πACD(F)为__C___。
A.{ AB→C,D→B } B.{ AC→D }
C.{ AD→C } D.φ(即不存在非平凡的FD)
三、简答题
1.理解并给出下列术语的定义:
函数依赖、部分函数依赖、完全函数依赖、传递函数依赖、候选键、1NF、2NF、3NF、BCNF、多值依赖、4NF。
2.建立一个关于系、学生、班级、学会等诸信息的关系数据库。
描述学生的属性有:学号、姓名、出生年月、系名、班号、宿舍区;
描述班级的属性有:班号、专业名、系名、人数、入校年份;
描述系的属性有:系名、系号、系办公室地点、人数;
描述学会的属性有:学会名、成立年份、地点、人数。
有关语义如下:一个系有若干专业,每个专业每年只招一个班,每班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。
请给出关系模式,写出每个关系模式的最小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。指出各关系的候选键、外键,有没有全键存在?
解答:
按所提供的信息,可直接设计如下关系模式:
学生(< 学号,姓名,出生年月,系名,班号,宿舍区>,{学号→姓名,学号→出生年月,学号→班号,班号→系名,系名→宿舍区});
存在传递函数依赖:
学号→班号,班号→系名,系名→宿舍区
班级(<班号,专业名,系名,人数,入校年份>,{班号→专业名,专业名→系名,班号→人数,班号→入校年份,(专业名,入校年份)→班号});
存在传递函数依赖:
班号→专业名,专业名→系名;
系(<系名,系号,系办公地点,人数>,{系名→系号,系号→系名,系名→系办公地点,系名→人数});
学会( < 学会名,成立年份,地点,人数>,{学会名→成立年份,学会名→地点,学会名→人数});
学生学会(<学生,学会,入会时间>,{(学生,学会) →入会时间}),
学生、学会是该模式的外码,(学生,学会) →入会时间 是完全函数依赖。
标注红色的属性为主码,带下划线的为外码。
需要强调的是,由于学生和班级的关系模式中存在着传递函数依赖,所以这两个关系模式不满足3NF,模式设计的不好,可采用分解的方法,将该两个模式规范化为3NF,即可得到
学生(< 学号,姓名,出生年月,班号>,{学号→姓名,学号→出生年月,学号→班号 });
班级(<班号,专业名,人数,入校年份>,{班号→专业名,班号→人数,班号→入校年份,(专业名,入校年份)→班号});
专业(<专业名,系名>,专业名→系名);
系(<系名,系号,系办公地点,人数,宿舍区>,{系名→系号,系号→系名,系名→系办公地点,系名→人数,系名→宿舍区});
通过该习题,可以让学生体会规范化理论的指导意义。
3.下面的结论哪些是正确的?哪些是错误的?对于错误的请给出一个反例说明。
(1)任何一个二目关系是属于3NF的。
(2)任何一个二目关系是属于BCNF的。
(3)任何一个二目关系是属于4NF的。
(4)当且仅当函数依赖A→B在R上成立,关系R(A,B,C)等于其投影R1(A,B)和R2(A,C)的连接。
(5)若R.A →R.B, R.B →R.C,则R.A →R.C。
(6)若R.A →R.B, R.A →R.C,则R.A →R.(B,C)。
(7)若R.B →R.A, R.C →R.A,则R.(B,C) →R.A。
(8)若R.(B,C) →R.A,则R.B →R.A,R.C →R.A。
解答:
(1)正确,只有两个属性,无传递依赖。
(2)正确,只有两个属性,根据定义, 不存在决定因素为非码的依赖。
(3)正确,只有两个属性,所以无非平凡的多值依赖。
(4)错误。若函数依赖A→B在R上成立,因为 U1=AB,U2=AC,则U1∩U2=A,U1-U2=B,(U1∩U2)→(U1-U2)∈F+,由教材定理5.6,R1(A,B)和R2(A,C)是关系R(A,B,C)的无损分解,因此关系R(A,B,C)等于其投影R1(A,B)和R2(A,C) 的连接。
反之,关系R(A,B,C) 等于其投影R1(A,B)和R2(A,C)的连接,即分解无损,则(U1∩U2)→(U1-U2)∈F+或(U1∩U2)→(U2-U1)∈F+,
即A→B或A→C。
(5)正确, 传递律
(6)正确,合并规则
(7)正确,增广律
(8)错误,例如:SC(SNO,CNO,GRADE),(SNO,CNO) →GRADE,但SNO→GRADE,CNO→GRADE不成立。
四、计算题
1. 设关系模式R(U,F),其中,U=(H,I,J,K,L,M),F={H→I,K→H,LM→K,I→L,KH→M}。求R的候选键。
解答:
J为N类属性,必包含在任一候选码中。没有L类属性。根据候选码的定义:不存在其真子集决定全属性。可通过去掉U中的冗余属性,求得模式的候选码。(利用教材算法5.2)
Key = { H,I,J,K,L,M }
∵{ Key–H}F+ = U ∴Key =Key–H=JIKLM
∵{ Key–I}F+ = U ∴Key =Key–I=JKLM
∵{ Key–K }F+ = U ∴Key =Key–K=JLM
∵{ Key–L }F+ = {J,M} ≠U ∴该关键字中必定含有属性L
∵{ Key–M }F+ = {J,L} ≠U ∴该关键字中必定含有属性M
最后得到该关系的一个关键字{ J, L,M }
同理,处理属性的顺序不同,可求得其他候选码JK,JHM,JIM。
2.设有关系模式R(XYZ),F是R上的FD集,F={ XY→Z, Z→X}。R被分解为ρ={R1(XY),R2(XZ)}。试判断该分解是否保持函数依赖?
解答:
(1)首先根据分解的定义,确定分解后的函数依赖,然后再加以判断。利用Armstrong公理的传递律,可将ρ分解为
ρ={ R1<(XY)>, R2<(XZ),{ Z→X }>}
注: R1<(XY)>上没有非平凡的函数依赖。
(2)只需判断XY→Z是否为G所覆盖即可
G={ Z→X }
求得(XY)G+={XY},Z不属于(XY)G+,XY→Z不为G所覆盖。
故ρ不保持函数依赖。
3. 关系模式R(U,F),其中U={C,T,H,I,S,G},F={CS→G,C→T,TH →I,HI →C,HS →I},将其分解成满足3NF且具有无损连接性和保持函数依赖的关系模式。
此题与例题5-28重复了,且已满足3NF,取消。
4. 有关系模式R(U,F),U={A,B,C,D,E },F={A→C,C→D,B →C,DE→C,CE→A},
(1)给出R候选键;
(2)判断ρ={AD,AB,BC,CDE,AE}是否为无损连接分解;
(3)将R分解为BCNF,并使之具有无损连接性。
解答:
(1)经判断,F已为最小函数依赖集,BE为L类属性,且BE+F = U,所以BE为 R的候选键。
(2)首先构造一个二位表如下:
属性 模式 | A | B | C | D | E |
R1(AD) | A1 | B12 | B13 | A4 | B15 |
R2(AB) | A1 | A2 | B23 | B24 | B25 |
R3(BC) | B31 | A2 | A3 | B34 | B35 |
R4(CDE) | B41 | B42 | A3 | A4 | A5 |
R5(AE) | A1 | B52 | B53 | B54 | A5 |
对F进行扫描,对于A→C,表修改如下:
属性 模式 | A | B | C | D | E |
R1(AD) | A1 | B12 | B13 | A4 | B15 |
R2(AB) | A1 | A2 | B13 | B24 | B25 |
R3(BC) | B31 | A2 | A3 | B34 | B35 |
R4(CDE) | B41 | B42 | A3 | A4 | A5 |
R5(AE) | A1 | B52 | B13 | B54 | A5 |
对于 C→D,表修改如下:
属性 模式 | A | B | C | D | E |
R1(AD) | A1 | B12 | B13 | A4 | B15 |
R2(AB) | A1 | A2 | B13 | A4 | B25 |
R3(BC) | B31 | A2 | A3 | A4 | B35 |
R4(CDE) | B41 | B42 | A3 | A4 | A5 |
R5(AE) | A1 | B52 | B13 | A4 | A5 |
对于B →C,表修改如下:
属性 模式 | A | B | C | D | E |
R1(AD) | A1 | B12 | B13 | A4 | B15 |
R2(AB) | A1 | A2 | A3 | A4 | B25 |
R3(BC) | B31 | A2 | A3 | A4 | B35 |
R4(CDE) | B41 | B42 | A3 | A4 | A5 |
R5(AE) | A1 | B52 | B13 | A4 | A5 |
对于DE→C,表修改如下:
属性 模式 | A | B | C | D | E |
R1(AD) | A1 | B12 | A3 | A4 | B15 |
R2(AB) | A1 | A2 | A3 | A4 | B25 |
R3(BC) | B31 | A2 | A3 | A4 | B35 |
R4(CDE) | B41 | B42 | A3 | A4 | A5 |
R5(AE) | A1 | B52 | A3 | A4 | A5 |
对于CE→A,
属性 模式 | A | B | C | D | E |
R1(AD) | A1 | B12 | A3 | A4 | B15 |
R2(AB) | A1 | A2 | A3 | A4 | B25 |
R3(BC) | B31 | A2 | A3 | A4 | B35 |
R4(CDE) | A1 | B42 | A3 | A4 | A5 |
R5(AE) | A1 | B52 | A3 | A4 | A5 |
表有改动,循环扫描
对A→C, C→D, B →C,DE→C,CE→A再次扫描,表不改变,算法结束。不存在一行全为A,所以分解是有损的。
(3)BE为 R的候选键。由此可判断R不属于BCNF。
考虑A→C,A不是R的码,将R分解为ρ={R1<{AC },{ A→C }>,R2<{ABDE},{ A→D, B →D, BE→A }>};(∵A→C, B →C ,C →D∴A→D, B →D , BE→A, 但依赖DE→C丢失)
R1是BCNF, R2不是,需进一步分解。
考虑A→D,A不是R2的码,将R2分解为ρ={R21<{AD },{ A→D }>,R22<{ABE},{ BE→A }>};(依赖B →D丢失)
R21 和R22均是BCNF,不需进一步分解。
因此,将R分解为ρ={ R1<{AC },{ A→C }>,R21<{AD },{ A→D }>,R22<{ABE},{ BE→A }>}
或ρ={ R1<{AC },{ A→C }>,R21<{BD },{ B→D }>,R22<{ABE},{ BE→A }>}
5.设有关系模式R(U,F),其中U=ABCDE,F = { A→B,BC→E ,ED→AB }。
(1)
(2)求R的所有候选键,并说明理由;
(3)R最高满足第几范式?为什么?
(4)若R不属于BCNF,试改进该关系数据库设计,使它满足BCNF。
解答:
(1) (CD) +F =CD
(BCD) +F =ABCDE
(ACD) +F =ABCDE
(CDE) +F =ABCDE
(2) CD为左部属性,其属性集闭包不包含所有属性,(BCD) +F,(ACD) +F ,(CDE) +F均包含所有属性,所以BCD 、ACD、CDE均是 R的候选码。
(3)R最高满足第3范式。因为R中的所有属性均为主属性,没有任何非主属性对码传递依赖或部分依赖。但存在主属性对码传递依赖或部分依赖,所以R不属于BCNF。
(4)F = { A→B,BC→E ,ED→AB },由Armstrong公理还可推出AC→E。
考虑A→B,A不是R的码,将R分解为
ρ={R1<{AB },{ A→B }>, R2<{ACDE},{ AC→E, ED→A}>};
R1是BCNF, R2不是,需进一步分解。
考虑ED→A,ED不是R2的码,将R2分解为
ρ={R21<{EDA },{ED→A }>, R22<{EDC}>};R22上没有非平凡的函数依赖。
或考虑AC→E,将R2分解为
ρ={R21<{ACE },{ AC→E }>, R22<{ACD}>};
R21、R22均是BCNF,不需进一步分解。
因此,可将R分解为ρ={R1<{AB},{A→B}>,R21<{EDA},{ED→A}>, R22<{EDC}>}(可表示为ρ={ AB,EDA,EDC});或将R分解为ρ={R1<{AB },{ A→B }>,R21<{ACE},{AC→E}>, R22<{ACD}>}(可表示为ρ={AB,ACE,ACD})。
同理,也可将R 分解为ρ={BCE,AB,ACD }等。
6.假设为自学考试成绩管理设计了一个关系R(S#,SN,C#,CN,G,U),其属性的含义依次为考生号、姓名、课程号、课程名、分数和主考学校名称。规定每个学生学习一门课程只有一个分数;一个主考学校主管多门课程的考试,且一门课程只能属于一个主考学校管理;每名考生有惟一的考号,每门课程有惟一的课程号。
(1)根据题目所描述的语义写出关系模式R的基本函数依赖集。
(2)确定关系模式R的候选键。
(3)说明关系模式R最高达到第几范式?为什么?
(4)将R规范化为3NF,并具有无损连接性和保持函数依赖特性。
解答:
(1)根据题目所描述的语义写出关系模式R的基本函数依赖集。
答:F={(S#,C#)→G,C#→U,S#→SN,C#→CN}
(2).可确定关系模式R的候选键为 (S#,C#)。
(3)最高达到第一范式。因为(S#,C#)是主键,但存在函数依赖C#→U,S#→SN,C#→CN,即U、SN、CN这些非主属性均部分函数依赖于主键,所以只能达到第一范式。
(4)根据算法5.4,可将关系模式分解为
ρ={S({S#,SN},{ S#→SN }),C({C#,CN,U},{ C#→U,C#→CN}),SC({S#,C#,G},(S#,C#)→G)}
五、证明题
1.在关系模式R(U,F)中, X→A∈ F,求证:F与G=F-{X→A}等价的充要条件是A∈X0
证明:由引理5.3可知:F+=G+的充分必要条件是F⊆G+且G⊆ F+。
因为 G=F-{X→A},所以 G⊆ F+
而要证 F⊆G+ ,只要证X→A∈G+,即 A∈X+。
因此,F与G=F-{X→A}等价的充要条件是A∈X+
亦可按引理5.3的证明来证。
2.在关系模式R(U,F)中,X Í U,Z是X的真子集,求证:F与{F-{X→A}}∪{Z→A}等价的充要条件是A∈z。
证明同上。