数据库原理与应用第2版(雷景生)课后答案(第五、第六章)

习题答案和练习 专栏收录该内容
16 篇文章 10 订阅

第五章

选择题
1、A。
二元关系≠二维表,满足二元关系的一定为BCNF,而不论任何一张表,最少要满足的是1NF,故答案A正确。

2、C。
由书6.3一节可知,答案C正确。

3、B。
由2NF的定义可知,1NF消除了非主属性对候选码的部分函数依赖成为了2NF,故答案B正确。

4、A。
由书6.3.一节可知,规范化的目的是要设计“好的”关系数据库模式,其基本思想是消除关系模式中的数据冗余,消除数据依赖中的不合适的部分,以解决数据插入、删除时发生的异常现象,故答案A正确。

5、D。
已知不论任何一张表,表中的候选键可以有1个或多个,但是主键必须只有且仅有1个,故答案D正确。

6、D。
Armstrong公理系统:设关系模式R<U,F>,其中U为属性集,F是U上的一组函数依赖,则有如下推理规则:
(1)、自反律:若属性集Y 包含于属性集X,属性集X 包含于U,则X→Y为F所蕴涵。

(2)、增广律:若X→Y为F所蕴涵,且属性集Z 包含于属性集U,则XZ→YZ为F所蕴涵。

(3)、传递律:若X→Y,Y→Z为F所蕴涵,则X →Z为F所蕴涵。
根据以上三条推理规则又可推出下述三条推理规则:
(1)、合并规则:若X→Y,X→Z,则X→YZ为F所蕴涵。

(2)、伪传递律:若X→Y,WY→Z,则XW→Z为F所蕴涵。

(3)、分解规则:若X→Y,Z包含于Y,则X→Z为F所蕴涵。
由以上定义得,答案D正确。

7、C。
由书6.4.2一节引理6.1可知,假设事件p代表X→A1A2···AK,事件q代表X→Ai(i=1,2,···,k),则p成立的充分必要条件是q成立。那么由题知,q成立同样也是q成立的充要条件,故答案C正确。

8、D。
一名顾客可能在同一名供应商那里购买不同的东西,所以顾客姓名和供应商姓名不能作为主键,故答案A不正确。一名顾客可能不在同一家商店,却买了相同的商品,所以顾客姓名和商品名不能作为主键,故答案B不正确。一名顾客可能存在多个顾客地址,所以答案C不正确。故答案D正确。

9、B。
多值依赖具有如下性质:
(1)、对称性:若X→→Y,则X→→Z,其中Z=U-X-Y
(2)、传递性:若X→→Y,Y→→Z,则X→→Z-Y
(3)、合并性:若X→→Y,X→→Z,则X→→YZ
(4)、分解性:若X→→Y,X→→Z,则X→→(Y∩Z),X→→Z-Y,X→→Y-Z均成立
(5)、函数依赖可看做多值依赖的特例。
由以上性质可得,答案B正确。选项C为多值依赖的对称性。

10、D。
选项A应该改为“R中非主属性完全依赖与主键”,故答案A不正确。选项B应改为“R∈1NF”,故答案B不正确。选项C应改为“R∈1NF”,故答案C不正确。故答案D正确。

问答题

1、解释下列术语的含义:
函数依赖、平凡函数依赖、非平凡函数依赖、部分函数依赖、完全函数依赖、传递函数依赖、1NF、2NF、3NF、BCNF、多值依赖、4NF、最小函数依赖、函数依赖保持性、无损连接性。

(1)、函数依赖:设R(U)是属性集U上的一个关系模式,X、Y是U的子集。若对于R(U)上的任意一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相同,而在Y上的属性值不同,则称“X函数决定Y”或“Y函数依赖X”,记作X→Y。

(2)、平凡函数依赖:设R(U)是属性集U上的一个关系模式,X、Y是U的子集。若Y是X的子集,则称X→Y为平凡函数依赖。

(3)、非平凡函数依赖:设R(U)是属性集U上的一个关系模式,X、Y是U的子集。如果X→Y,且Y∉X,则称X→Y为非平凡函数依赖。

(4)、部分函数依赖:如果X→Y,但不完全函数依赖于X,则称Y对X部分函数依赖。

(5)、完全函数依赖:在R(U)中,如果X→Y,并且对于X的任何一个真子集X’,都有Y函数不依赖于X’,则称Y完全函数依赖于X。

(6)、传递函数依赖:在R(U)中,如果X→Y ,Y→Z,且Y∉X,X也不函数依赖于Y,则称Z传递函数依赖于X。

(7)、1NF:如果关系模式R的所有属性均为简单属性,即每个属性都是不可再分的,则称R属于第一范式。

(8)、2NF:如果关系模式R∈1NF,且每个非主属性都完全依赖于R的码,则称R属于第二范式。

(9)、3NF:如果关系模式R∈2NF,且每个非主属性都不传递函数依赖于R的候选码,则称R属于第三范式。

(10)、BCNF:如果关系模式R∈1NF,且对于所有的函数依赖X→Y(Y∉X),决定因素X都包含了R的一个候选码,则称R属于BC范式。

(11)、多值依赖:设R(U)是属性集U上的一个关系模式,X、Y、Z是U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖X→→Y成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值,有一组Y的值,这组值仅仅决定于x值而与z值无关。

(12)、4NF:关系模式R<U,F>∈1NF,如果对于R的每个非平凡多值依赖X→→Y(Y∉X),X都含有码,则称R<U,F>∈4NF。

(13)、最小函数依赖:函数依赖集F满足以下条件:
a、F中的任何一个函数依赖的右部仅含有一个属性;
b、F中不岑仔这样一个函数依赖X→A,使得F与F-{X→A }等价;
c、F中不存在这样一个函数依赖X→A,X有真子集Z使得F-{X→A }∪{Z→A}与F等价。

(14)、函数依赖保持性:设p={R1<U1,F1>,R2<U2,F2>,···,Rn<Un,Fn>}是关系模式R{U,F}上的一个分解。若∪Fi  =F ,则称分解p具有函数依赖保持性。

(15)、无损连接性:设p={R1<U1,F1>,R2<U2,F2>,···,Rn<Un,Fn>}是关系模式R{U,F}上的一个分解。若任何属于R{U,F}的关系r,令r1=πR1®,r2=πR2®,···,rn=πRn®,有r=r1∞r2∞···∞rn成立,则称分解p具有无损连接性。

2、什么叫关系模式分解?模式分解要遵循什么准则?

定义:根据规范化理论将一个结构复杂的关系分解为几个结构简单的关系,以消除数据库操作的异常情况。

准则:取原始关系的投影,消去决定因素不是候选键的函数依赖,要求分解既要保持函数依赖,又要具有无损连接性。

3、3NF与BCNF的区别和联系是什么?

答:区别:(1)、BCNF中消除了主属性对候选码的部分函数依赖和传递函数依赖,而3NF不存在该属性

(2)、3NF是建立在2NF基础之上的,如果满足2NF的关系模式中不存在非主属性对传递依赖于码,则该关系模式属于3NF。

(3)、BCNF是3NF的改进形式,它建立在1NF的基础上,如果关系模式R属于1NF,只要其每一个决定因素均包含码,则R属于BCNF。

联系:BCNF由3NF进一步得到,任何满足BCNF的关系都必然满足第三范式,反之不然。

4、试证明全码(All-Key)的关系必是3NF,也必定是BCNF。

(1)、设有关系R(U,F),因为R含全码,所以U中的属性均为主属性,即R不含任何非主属性。根据3NF的定义,R中没有非主属性对码有传递函数依赖存在。根据定义可下结论:
R∈3NF。

(2)、采用反证法。假设R∉BCNF,则按照定义R中必含有X→Y(Y不是X的子集),其中X是U的子集,Y包含于U,X不含码。在X→Y的两边同时并上U-Y,得:X(U-Y)→U。显然X(U-Y)≠U或X(U-Y)是U的子集,这与题中已知条件关系R为全码相矛盾。假设R∉BCNF不成立,本题得证。

5、设一关系为:学生(学号、姓名、年龄、所在系、出生日期),判断此关系属于第几范式,为什么?

由该关系可知,函数依赖为{学号→姓名,学号→年龄,学号→所在系,学号→出生日期},由函数依赖集可知唯一候选码是学号,在该关系中不存在非主属性和主属性对码的部分和传递函数依赖,故该关系为BCNF。

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

答:(1)、将关系模式进行无损连接分解,在关系模式分解的过程中,数据不能丢失或增加,要保持数据的完整性;
(2)、合理地选择规范化程度。在规范化时,既要考虑到低级范式造成的冗余度高、数据不一致性,又要考虑到高级范式带来的查询效率低的问题
(3)、要考虑正确性和可实现原则,既要保证规范化过程是正确的,并且通过规范化能达到要求。

综合题

1、D→B,C→A,(C,D)→A,(C,D)→B

2、
(1)、由函数依赖集F={A→C,B→C}得,

L类属性:A,B
因为
在这里插入图片描述
所以AB是R的惟一候选码
(2)、令U1={A,B},根据F得,F1=∅(即A、B之间没有依赖关系)
所以F在模式AB上的投影为∅

3、
(1)、列关系矩阵如下图:
在这里插入图片描述

(2)、因为A→B,又因为a1≠b12≠b13
所以B无变化

(3)、因为C→D,又因为b31≠a3≠b33
所以D无变化

(4)、因为D→B,又因为a4=a4≠b42
所以b21=a2

得到如下关系矩阵:
在这里插入图片描述

(5)、重复执行步骤,最后可知关系矩阵不能得到一个全a 行,
所以{AD,BC,BD}相对于R不具有无损连接性。

4、
(1)、由函数依赖集F={AB→CE,E→AB,C→D}得,
LR类属性:A、B、C、E
在这里插入图片描述
因为AB→CE,C→D,所以AB→D,即存在非主属性的传递函数依赖,所以不为3NF;
又因为R中不存在非主属性的部分函数依赖,所以为2NF。

(2)、由函数依赖集F={B→D,D→B,AB→C}得,

L类属性:A LR类属性:B、D
在这里插入图片描述
在这里插入图片描述
因为B→D,D→B,未消除主属性的函数依赖关系,所以不为BCNF;
又因为R中不存在非主属性对码的部分或传递函数依赖,所以 R∈3NF。

(3)、由函数依赖集F={A→B,B→A,A→C}得,

LR类属性:A、B
在这里插入图片描述
因为A→B,B→A,未消除主属性的传递函数依赖,所以不为BCNF;
又因为B→A,A→C,未消除非主属性对码的传递函数依赖,所以不为3NF;
又因为R中不存在非主属性对码的部分函数依赖,所以 R∈2NF.

(4)、由函数依赖集F={A→C,D→B }得,

L类属性:A、D
在这里插入图片描述
因为R中不存在非主属性对码的部分或传递函数依赖,也不存在主属性对码的部分或传递函数依赖,所以R∈BCNF。

5、
设F={ABD→E,AB→G,B→F,C→J,CJ→I,G→H},

(1)、已知F中各依赖的右部属性已全部单一化

(2)、逐一考查是否有多余的函数依赖
a、考查ABD→E

记F1={ AB→G,B→F,C→J,CJ→I,G→H},
在这里插入图片描述

b、考查AB→G

记F2={ABD→E,B→F,C→J,CJ→I,G→H},
在这里插入图片描述

c、考查B→F

记F3={ABD→E,AB→G,C→J,CJ→I,G→H},
在这里插入图片描述
∴B→F不能删除

d、同上理得,C→J不能删除

e、CJ→I不能删除

f、G→H不能删除

(3)、逐一考查左部为非单属性的函数依赖的右部是否有多余的属性
a、考查ABD→E
在这里插入图片描述

b、考查AB→G
在这里插入图片描述
c、考查CJ→I
在这里插入图片描述
6、

(1)、Sno→Sname,Sno→SD,Sno→Sdname,SD→Sdname,(Sno,Course)→Grade

(2)、主键为Sno和Course

(3)、设A=Sno,B=Sname,C=SD,D=Sdname,E=Course,F=Grade
记F={A→B,A→C,A→D,C→D,AE→F}

①、求最小函数依赖集
Fm={A→B,A→C,C→D,AE→F}
∴满足3NF且具有依赖保持性的分解为p={AB,AC,CD,AEF}

②、判断无损连接性
a、先给出如下关系矩阵
在这里插入图片描述

b、因为A→B,所以b22=b24=a2
则得到如下关系图:
在这里插入图片描述

c、因为A→C,所以b31=b34=a3
则得到如下关系图:
在这里插入图片描述

d、因为C→D,所以b41=b42=b44=a4
则得到如下关系图:
在这里插入图片描述

由上图可得,AEF一行为全a行,则可知p具有无损连接性
所以p={ AB,AC,CD,AEF }

7、
设顾客号为A,收货地址为B,赊购限额为C,余额为D,折扣为E,订货日期为F,订货细则为G,货物号为S,订货数量为T,制造厂商为M,实际存货量为N,规定的最低存货量为O,货物描述为P,每个细则中的未发量为W
则函数依赖如下:
顾客{B→A,A→C,A→D,A→E}
订货单{AB→F,AB→G}
订货细则{S→T,GS→W,S→G}
货物{S→M,MS→N,MS→O,S→P}
令函数依赖集F={ B→A,A→C,A→D,A→E ,AB→F,AB→G,S→T,GS→W,S→G,S→M,MS→N,MS→O,S→P}

(1)、由函数依赖集F可得BS为唯一候选码

(2)、因为B→A,则BS→A肯定成立,所以函数依赖集F没有消除非主属性对码的部分函数依赖,所以F∈1NF

(3)、由F可得最小函数依赖集为Fm={ B→A,A→C,A→D,A→E ,B→F,B→G,S→T,S→W,S→G,S→M,S→N,S→O,S→P }

第六章

简答题

2、为什么要对数据文件建立索引?

答:最明显的原因是速度。没有索引时,DBMS通过表扫描方式逐个读取指定表中的数据记录来访问,这样的查找方式就好像在图书馆里查找一本书时,将图书馆中的所有书都找一遍,这样做的效率毫无疑问是非常低的。由于索引表是排序的,可以采取类似二分查找的快速定位算法,在实际应用中,索引表还可以驻留在主存储器中,进一步提高查找的访问速度。

3、简述聚集索引和非聚集索引的区别。

答:汉语字典的正文本身就是一个聚集索引。比如,我们要查“安”字,就会很自然地翻开字典的前几页,因为“安”的拼音是“an”,而按照拼音排序汉字的字典是以英文字母“a”开头并以“z”结尾的,那么“安”字就自然地排在字典的前部。如果您翻完了所有以“a”开头的部分仍然找不到这个字,那么就说明您的字典中没有这个字;同样的,如果查“张”字,那您也会将您的字典翻到最后部分,因为“张”的拼音是“zhang”。也就是说,字典的正文部分本身就是一个目录,您不需要再去查其他目录来找到您需要找的内容。正文内容本身就是一种按照一定规则排列的目录称为“聚集索引”。
如果您认识某个字,您可以快速地从自动中查到这个字。但您也可能会遇到您不认识的字,不知道它的发音,这时候,您就不能按照刚才的方法找到您要查的字,而需要去根据“偏旁部首”查到您要找的字,然后根据这个字后的页码直接翻到某页来找到您要找的字。但您结合“部首目录”和“检字表”而查到的字的排序并不是真正的正文的排序方法,比如您查“张”字,我们可以看到在查部首之后的检字表中“张”的页码是672页,检字表中“张”的上面是“驰”字,但页码却是63页,“张”的下面是“弩”字,页面是390页。很显然,这些字并不是真正的分别位于“张”字的上下方,现在您看到的连续的“驰、张、弩”三字实际上就是他们在非聚集索引中的排序,是字典正文中的字在非聚集索引中的映射。我们可以通过这种方式来找到您所需要的字,但它需要两个过程,先找到目录中的结果,然后再翻到您所需要的页码。我们把这种目录纯粹是目录,正文纯粹是正文的排序方式称为“非聚集索引”。

4、为什么一个数据文件只能有一个聚集索引?

答:由于一个数据表只能有一种实际的存储顺序,因此在一个数据表中只能建立一个聚集索引。

  • 21
    点赞
  • 1
    评论
  • 88
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2020 CSDN 皮肤主题: 撸撸猫 设计师:马嘣嘣 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值