《数据库技术与应用》第6章习题答案
第6章关系数据理论
1. 理解下列术语的定义:
函数依赖、部分函数依赖、完全函数依赖、传递依赖、候选码、码、主码、外码、全码、1NF、2NF、3NF、BCNF、4NF。
解:
函数依赖:设R(U)是属性集U上的关系模式。X,Y是U的子集,若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作X→Y。
部分函数依赖:如果X→Y,但Y不完全函数依赖于X,则称Y对X 部分函数依赖(Partial Functional Dependency),记作:X Y。
完全函数依赖:如果X→Y,但对于X中的任意一个真子集,都有Y不依赖于,即,则称Y对X完
全函数依赖(Full Functional Dependency),记作:X Y。
传递依赖:如果X→Y,Y→Z,且Y X,,则称Z对X传递函数依赖(Transitive Functional Dependency)。记作:X Z。
候选码:若关系中的某一属性组的值能惟一地标识一个元组,则称该属性组为候选码(Candidate key)。
主码:若一个关系有多个候选码,则选定其中一个为主码(Primarykey) 。
外部码:设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码K s相对应,则称F是基本关系R的外部码(Foreign key),简称外码。
全码:最复杂的情况,整个属性组是码,称为全码(All-key)。
1NF:若一个关系模式R中每一个属性值都是一个不可再分的最小数据单元,则称关系模式满足第一范式,记作R1NF。
2NF:若R1NF,且每一个非主属性完全函数依赖于R的码,则R2NF。
3NF:关系模式R中若不存在这样的候选码X,属性组Y及非主属性Z(Z Y)使得X Y,Y Z成立,则称R3NF。
BCNF:关系模式R1NF。若对于R中的每一个函数依赖X Y且Y X,X必含有码,则RBCNF。
4NF:关系模式R∈1NF,如果对于R的每个非平凡多值依赖X→→Y(Y?X),X 都含有码,则称R∈4NF。
2. 下面的结论哪些是正确的?哪些是错误的?对于错误的请给出一个反例说明。
(1) 任何一个二目关系是属于3NF的。
(2) 任何一个二目关系是属于BCNF的。
(3) 任何一个二目关系是属于4NF的。
(4) 当且仅当函数依赖A B在R上成立,关系R(A,B,C)等于投影R1(A,B)和R2(A,B)的连接。
(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) 正确,按BCNF的定义,若X Y,且Y不是X的子集时,每个决定因素都包含码,对
于二目关系决定因素必然包含码。详细证明如下:
证明:设R为一个二目关系R(A1,A2),则属性A1和A2之间可能存在以下几种依赖关系:
A、A1A2,但A2A1,则关系R的码为A1,决定因素都包含码,所以,R是BCNF。
B、A1A2,A2A1,则关系R的码为A2,所以决定因素都包含码,R是BCNF。
(3) 正确,因为只有两个属性,所以无非平凡的多值依赖。
(4) 正确。
(5) 正确。
(6) 正确。
(7) 正确。
(8) 错误。
3. 汽车保险公司管理客户和保险车辆信息。每位客户拥有一辆或多辆汽车。每辆汽车可能发生0次或多次交通事故。客户需要登记的信息包括驾照号、姓名、住址、电话、等信息。车辆需要登记车辆编号、车型、出厂年份、驾照号等信息。事故需要登记事故编号、事故发生日期、发生地点、车辆编号、赔偿金等信息。根据上述描述,列举可能的函数依赖(不必列举平凡函数依赖)。
解:
关系模式:
客户(驾照号,姓名,住址,电话)
sql包含哪几个部分车辆(车辆编号,车型,出厂年份)
事故(事故编号,事故发生日期,发生地点,赔偿金)
存在的函数依赖:
客户(驾照号→姓名,驾照号→住址,驾照号→电话)
车辆(车辆编号→车型,车辆编号→出厂年份、车辆编号→驾照号)
事故(事故编号→事故发生日期,事故编号→发生地点,事故编号→赔偿金、事故编号→车辆编号)
4. 设关系模式R(A,B,C,D,E,F),函数依赖集F={A C,C A,B AC,D AC,BD A}。
(1) 求出R的候选码。
(2) 求出F的最小函数依赖集。
解:
(1)B、D。
(2) ①将F中每个函数依赖的右部均变成单属性。则,
F={A C,C A,B A,B C,D A,D C,BD A};
②去掉F中各函数依赖左部多余的属性。
在BD A中,由于存在B A和D A因此,BD A为多余的函数依赖,可去掉。
③去掉F中冗余的函数依赖。
由于B A可由B C和C A推出,因此,可去掉B A。
D A可由D C和C A推出,因此,可去掉D A。
因此,F m={A C,C A,B C,D C }。
5. 设X在关系模式R中成立。如果存在Z X使得Z Y成立,则称函数依赖X称为部分函数依赖,并称Y部分函数依赖于X;否则称X为完全函数依赖,并称Y完全依赖于X。使用完全函数依赖概念给出2NF的等价定义。
解:
若R1NF,且R的所有函数依赖都满足完全函数依赖,则R2NF。
6. 证明:
(1) 如果R的所有属性都是主属性,则R是3NF。
(2) 如果R的码包含R的所有属性(全码),则R是BCNF。
解:
(1) 证明:关系模式R中若不存在这样的候选码X,属性组Y及非主属性Z(Z Y)使得X Y,Y Z成立,则称R3NF。因为如果R的所有属性都是主属性,即没有非主属性,则不存在非主属性对码的部分和传递函数依赖。因此如果R的所有属性都是主属性,则R是3NF。
(2) 证明:BCNF要求关系范式满足1NF,且每一个函数依赖的决定因子都包含码。而全码的关系满足1NF,且只有一个决定因子,即关系模式包含的所有属性。因此如果R 的码包含R的所有属性(全码),则R是BCNF。
7. 在关系模式设计中,有没有理由设计一个属于2NF,但不属于更高范式的关系模式?解释你的答案。
解:
没有理由。因为2NF是表示所有属性都必须依赖于码,保证在表内所有的属性都是非冗余或者说都是相关的,必不可少的。3NF是在2NF的基础上的增强,既然2NF是属性依赖于码,那么就可能存在一种依赖情况:A依赖B,B依赖C ,这样既可推出A依赖C这样就表示A既依赖于B也依赖于C,那么你可以选择B也可以选择C做主码,那么违反了主码要唯一的基本原则,这样是不合适的。所以说3NF是在2NF的增强,确定了主码必须唯一,消除了2NF的传递依赖性。因此,3NF是一个可用关系模式应满足的最低范式,也就是说,如果一个关系不服从3NF,这个关系其实是不可用的。
8. 设关系R和函数依赖F:R(W,X,Y,Z)F={X Z,WX Y},试求:
(1) 关系R属于第几范式?
(2) 如果关系R不属于BCNF,请将关系R逐步分解为BCNF。
解:
(1) R是1NF。侯选码为WX,则Y,Z为非主属性,又由于X→Z,因此F中存在非主属性对侯选码的部分函数依赖。
(2) 将关系分解为:
R1(W,X,Y),F1 = { WX→Y }
R2(X,Z),F2 = { X→Z }
消除了非主属性对码的部分函数依赖。F1和F2中的函数依赖都是非平凡的,并且决定因素是候选码,所以上述关系模式是BCNF。
9. 设有关系模式R(EGHIJ),R的函数依赖集F={E I,J I,I G,GH I,IH},求:
(1) R的候选关键字
(2) 判断s={EG,EJ,JH,IGH,EH}是否为无损连接分解?
(3) 将R分解为3NF,并具有无损连接性和保持函数依赖性。
解:
(1)由函数依赖集F可知,该关系模式的候选码为JH。
(2) s={EG,EJ,JH,IGH,EH}是无损连接分解。
(3) 去掉在函数依赖集右侧出现的,剩下JH,(JH)+=EGHIJ,所以候选码只有JH。第一、求出最小依赖集F m=F;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论