练习四.docx
《练习四.docx》由会员分享,可在线阅读,更多相关《练习四.docx(16页珍藏版)》请在冰点文库上搜索。
练习四
《数据库原理及应用》综合练习题 一、名词解释
1、函数依赖 对于属性X的每一个具体值,属性Y有唯一的具体值与之对应,则称函数Y依赖于X,或称X函数决定Y,记作X→Y,X称为决定因素。
2、非平凡函数依赖 设X→Y是关系模式R的一个函数依赖,并且Y不是X的子集,则称
X→Y是非平凡函数依赖。
3、平凡函数依赖 设X→Y是关系模式R的一个函数依赖,并且Y是X的子集,则称
X→Y是平凡函数依赖。
4、相互函数依赖 如果属性X和Y是1∶1的联系,则称X和Y之间的依赖关系为相互函数依赖,记作X←→Y。
5、完全函数依赖 设X→Y是关系模式R的一个函数依赖,如果不存在X的真子集X‘,使得X‘→Y成立,则称Y完全(函数)依赖于X,或X完全(函数`)决定Y,记作X f Y。
6、部分函数依赖 设X→Y是关系模式R的一个函数依赖,如果存在X的真子集X‘,使得X‘→Y成立,则称Y部分(函数)依赖于X,记作X p Y
7、传递依赖 在同一个关系模式中,如果存在非平凡函数依赖X→Y,Y→Z,而Y→X,则称Z
传递依赖于X.
8、候选关键字 在一个关系模式中,若一个属性或属性组K完全函数决定整个元组,则称K为该关系的一个候选关键字。
9、主属性和非主属性 包含在任何一个候选关键字中的属性称为主属性,不包含在任何一个候选关键字中的属性称为非主属性。
10、第一范式 在关系模式R中,若每个属性都是不可再分割的最小数据单位,则R属于第一范式,记作R∈1NF。
11、第二范式 如果一个关系R中的所有非主属性都完全函数依赖于每个候选关键字,则称关系R属于第二范式,记作R∈2NF。
12、第三范式 如果一个关系R中的所有非主属性都不传递依赖于任何候选关键字,则称关系R属于第三范式,记作R∈3NF。
13、BCNF 如果一个关系R中的所有属性都不传递依赖于R的任何候选关键字,或者说,关系R中的每个决定因素都是候选关键字时,则称关系R属于BCNF,记作R∈BCNF。
填空题
1、在一个关系的各属性之间存在着 、 和 这三种类型的联系。
2、一个学生可以同时借阅多本图书,一本图书只能由一个学生借阅,学生和图书之间为
的联系。
3、设X→Y是关系模式R的一个函数依赖,并且Y不是X的子集,则称X→Y是 。
4、 设X→Y是关系模式R的一个函数依赖,并且Y是X的子集,则称X→Y是 。
5、 设X→Y是关系模式R的一个函数依赖,如果存在X的真子集X‘,使得X‘→Y成立,则称
Y X,记作X p Y
6、如果属性X和Y是1∶1的联系,则称X和Y之间的依赖关系为 ,记作X←→Y。
──6──
7、设X→Y是关系模式R的一个函数依赖,如果不存在X的真子集X‘,使得X‘→Y成立,则称Y X,记作X f Y。
8、在同一个关系模式中,如果存在非平凡函数依赖X→Y,Y→Z,而Y→X,则称Z
X。
9、在一个关系模式中,若一个属性或属性组K完全函数数决定整个元组,则称K为该关系的一个 。
10、包含在任何一个候选关键字中的属性称为 ,不包含在任何一个候选关键字中的属性称为 ,
11、在一个关系模式中,若属性或属性组X不是该关系的关键字,但它是其它关系模式的关键字,则称X为该关系的 。
12、有一个学生关系,其关键字为学号;又有一个课程关系,其关键字为课程号;另有一个选修关系,其关键字是学号和课程号的结合,则学号和课程号分别为该关系的 。
13、在关系模式R中,若每个属性都是不可再分割的最小数据单位,则R属于 范式,记作 。
14、一个关系模式为Y(X1,X2,X3,X4),假定该关系存在着如下函数依赖:
(X1,X2)→X3,X2→X4,则该关系属于 范式,因为它存在着 。
15、一个关系模式为Y(X1,X2,X3,X4),假定该关系存在着如下函数依赖:
X1→X2,X1→X3,X3→X4,则该关系属于 范式,因为它存在着 。
16、如果一个关系R中的所有非主属性都完全函数依赖于每个候选关键字,则称关系R属于
范式,记作 。
17、如果一个关系R中的所有非主属性都不传递依赖于任何候选关键字,则称关系R属于
范式,记作 。
18、一个关系模式为Y(X1,X2,X3,X4),假定该关系存在着如下函数依赖:
X1←→X2,X1→X3,X1→X4,则该关系属于 范式。
19、如果一个关系R中的所有属性都不传递依赖于R的任何候选关键字,或者说,关系R中的每个决定因素都是候选关键字时,则称关系R属于 范式,记作 。
20、关系规范化的过程是通过对初始关系模式的逐步 来实现的。
21、从第一范式逐步规范化到第二、第三、BCNF范式的过程,就是逐步消除各种
的过程。
22、关系规范化应遵循 原则。
23、关系规范化就是使用一个关系模式描述一个 ,或实体间的一种 。
答案:
1、一对一(或1:
1)一对多(或1:
n)8、传递依赖于
多对多(或m:
n)9、候选关键字
2、一对多(或1:
n)10、主属性非主属性
3、非平凡函数依赖11、外关键字
4、平凡函数依赖12、外关键字
5、部分依赖于13、第一R∈1NF
6、相互函数依赖14、第一部分依赖
7、完全依赖于15、第二传递依赖
16、第二R∈2NF20、分解
17、第三R∈3NF21、传递依赖
18、BCNF22、单一化
19、BCNFR∈BCNF23、实体联系
第5章关系数据理论习题参考答案
规范化定义小结:
定义1:
设R(U)是属性集U上的关系模式。
X,Y是属性集U的子集。
若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作XY。
(即只要X上的属性值相等,Y上的值一定相等。
)
术语和记号:
(P173页)
●XY,但Y不是X的子集,则称XY是非平凡的函数依赖。
若不特别声明,总是讨论非平凡的函数依赖。
●XY,但Y是X的子集,则称XY是平凡的函数依赖。
●若XY,则X叫做决定因素(Determinant)。
●
若XY,YX,则记作XY。
●若Y不函数依赖于X,则记作XY。
定义2:
在R(U)中,如果XY,并且对于X的任何一个真子集X’,都有X’Y,则称Y对X完全函数依赖,记作:
F
XY
若XY,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作:
P
XY
定义3:
若关系模式R的每一个分量是不可再分的数据项,则关系模式R属于第一范式(1NF)。
定义4:
若关系模式R∈1NF,且每一个非主属性完全函数依赖于码,则关系模式R∈2NF。
(即1NF消除了非主属性对码的部分函数依赖则成为2NF)。
定义5:
关系模式R中若不存在这样的码X、属性组Y及非主属性Z(Z不是Y的子集)使得XY,YX,YZ成立,则称R∈3NF。
定义6:
关系模式R∈1NF。
若XY且Y不是X的子集时,X必含有码,则R∈BCNF。
定义7:
关系模式R∈1NF,如果对于R的每个非平凡多值依赖XY(Y不是X的子集,Z=U-X-Y不为空),X都含有码,则称R∈4NF。
习题如下:
2.建立一个关于系、学生、班级、学会等诸信息的关系数据库。
学生:
学号、姓名、出生年月、系名、班号、宿舍区。
班级:
班号、专业名、系名、人数、入校年份。
系:
系名、系号、系办公地点、人数。
学会:
学会名、成立年份、办公地点、人数。
语义如下:
一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。
一个系的学生住在同一宿舍区。
每个学生可参加若干学会,每个学会有若干学生。
学生参加某学会有一个入会年份。
请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。
指出各关系模式的候选码、外部码,有没有全码存在?
解:
(1)关系模式如下:
学生:
S(Sno,Sname,Sbirth,Dept,Class,Rno)
班级:
C(Class,Pname,Dept,Cnum,Cyear)
系:
D(Dept,Dno,Office,Dnum)
学会:
M(Mname,Myear,Maddr,Mnum)
(2)每个关系模式的最小函数依赖集如下:
A、学生S(Sno,Sname,Sbirth,Dept,Class,Rno)的最小函数依赖集如下:
SnoSname,SnoSbirth,SnoClass,ClassDept,DEPTRno
传递依赖如下:
由于SnoDept,而DeptSno,DeptRno(宿舍区)
所以Sno与Rno之间存在着传递函数依赖。
由于ClassDept,DeptClass,DeptRno
所以Class与Rno之间存在着传递函数依赖。
由于SnoClass,ClassSno,ClassDept
所以Sno与Dept之间存在着传递函数依赖。
B、班级C(Class,Pname,Dept,Cnum,Cyear)的最小函数依赖集如下:
ClassPname,ClassCnum,ClassCyear,PnameDept.
由于ClassPname,PnameClass,PnameDept
所以C1ass与Dept之间存在着传递函数依赖。
C、系D(Dept,Dno,Office,Dnum)的最小函数依赖集如下:
DeptDno,DnoDept,DnoOffice,DnoDnum
根据上述函数依赖可知,Dept与Office,Dept与Dnum之间不存在传递依赖。
D、学会M(Mname,Myear,Maddr,Mnum)的最小函数依赖集如下:
MnameMyear,MnameMaddr,MnameMnum
该模式不存在传递依赖。
(3)各关系模式的候选码、外部码,全码如下:
A、学生S候选码:
Sno;外部码:
Dept、Class;无全码
B、班级C候选码:
Class;外部码:
Dept;无全码
C、系D候选码:
Dept或Dno;无外部码;无全码
D、学会M候选码:
Mname;无外部码;无全码
12.下面的结论哪些是正确的?
哪些是错误的?
对于错误的请给一个反例说明之。
(1)任何一个二目关系是属于3NF。
答:
正确。
因为关系模式中只有两个属性,所以无传递。
(2)任何一个二目关系是属于BCNF.
答:
正确。
按BCNF的定义,若XY,且Y不是X的子集时,每个决定因素都包含码,对于二目关系决定因素必然包含码。
详细证明如下:
(任何二元关系模式必定是BCNF)。
证明:
设R为一个二目关系R(A1,A2),则属性A1和A2之间可能存在以下几种依赖关系:
A、A1A2,但A2A1,则关系R的码为A1,决定因素都包含码,所以,R是BCNF。
B、A1A2,A2A1,则关系R的码为A2,所以决定因素都包含码,R是BCNF。
包含码。
R是BCNF。
C、R的码为(A1,A2)(即A1A2,A2A1),决定因素都
(3)任何一个二目关系是属于4NF.
答:
正确。
因为只有两个属性,所以无非平凡的多值依赖。
第5章关系数据理论习题参考答案(补充)
1.已知学生关系模式
S(Sno,Sname,SD,Sdname,Course,Grade)
其中:
Sno学号、Sname姓名、SD系名、Sdname系主任名、Course课程、Grade成绩。
(1)写出关系模式S的基本函数依赖和主码。
答:
关系模式S的基本函数依赖如下:
Sno→Sname,SD→Sdname,Sno→SD,(Sno,Course)→Grade
关系模式S的码为:
(Sno,Course)。
(2)原关系模式S为几范式?
为什么?
分解成高一级范式,并说明为什么?
答:
原关系模式S是属于1NF的,码为(Sno,Course),非主属性中的成绩完全依赖于码,而其它非主属性对码的函数依赖为部分函数依赖,所以不属于2NF。
消除非主属性对码的函数依赖为部分函数依赖,将关系模式分解成2NF如下:
S1(Sno,Sname,SD,Sdname)、S2(Sno,Course,Grade)
(3)将关系模式分解成3NF,并说明为什么?
答:
将上述关系模式分解成3NF如下:
关系模式S1中存在Sno→SD,SD→Sdname,即非主属性Sdname传递依赖于Sno,所以S1不是3NF。
进一步分解如下:
S11(Sno,Sname,SD)S12(SD,Sdname)
分解后的关系模式S11、S12满足3NF。
对关系模式S2不存在非主属性对码的传递依赖,故属于3NF。
所以,原模式S(Sno,Sname,SD,Sdname,Course,Grade)按如下分解满足3NF。
S11(Sno,Sname,SD)S12(SD,Sdname)
S2(Sno,Course,Grade)
2、设有如图所示的学生关系S
学号
学生名
年龄
性别
系号
系名
100001
200001
200002
300001
300004
300005
王婧
张露
黎明远
王烨
张露
潘建
18
19
20
21
20
19
女
女
男
男
女
男
1
2
2
3
3
3
通信工程
电子工程
电子工程
计算机
计算机
计算机
试问S是否属于3NF?
为什么?
若不是,它属于几范式?
并将其规范化为3NF.
解:
S不属于3NF,它属于2NF。
S的候选关键字为“学号”。
依赖关系:
学号→系号,系号→系名,系号→学号
所以:
学号→系名,即存在非主属性系名对候选关键字“学号”的传递依赖,S不是3NF.
在S中所有非主属性均依赖于码学号,所以S是2NF。
将S分解成:
S1(学号,学生名,年龄,性别,系号)、S2(系号,系名),分解后的Sl与S2如图所示:
关系模式S1如下:
学号
学生名
年龄
性别
系号
100001
200001
200002
300001
300004
300005
王婧
张露
黎明远
王烨
张霹
潘建
18
19
20
21
20
19
女
女
男
男
女
男
1
2
2
3
3
3
关系模式S2如下:
系号
系名
1
2
3
通信工程
电子工程
计算机
关系模式S1、S2上无传递依赖,它们是3NF。
3.设有如下关系R
课程名
教师名
教师地址
C1
C2
C3
C4
马千里
于得水
余快
于得水
D1
D1
D2
D1
(1)它为第几范式?
为什么?
解:
它是2NF。
因为R的候选关键字为“课程名”。
依赖关系:
课程名→教师名,教师名→课程名,教师名→教师地址,所以课程名→教师地址。
即存在非主属性“教师地址”对候选关键字课程名的传递函数,因此R不是3NF。
但:
因为不存在非主属性对候选关键字的部分函数依赖,所以R是2NF。
(2)是否存在删除操作异常?
若存在,则说明是在什么情况下发生的?
解:
存在。
当删除某门课程时会删除不该删除的教师的有关信息。
(3)将它分解为高一级范式,分解后的关系是如何解决分解前可能存在的删除操作异常问题?
解:
分解为高一级范式如图所示。
R1如下:
R2如下:
教师名
教师地址
马千里
于得水
余快
D1
D1
D2
课程名
教师名
C1
C2
C3
C4
马千里
于得水
余快
于得水
分解后,若删除课程数据时,仅对关系R1操作,教师地址信息在关系R2中仍然保留,不会丢失教师方面的信息。
4.设有如图所示的关系R。
职工号
职工名
年龄
性别
单位号
单位名
E1
ZHAO
20
F
D3
CCC
E2
QIAN
25
M
D1
AAA
E3
SEN
38
M
D3
CCC
E4
L1
25
F
D3
CCC
试问R属于3NF?
为什么?
若不是,它属于第几范式?
并如何规范化为3NF?
解:
R不属于3NF,它是2NF。
R的候选关键字为职工号和职工名,而:
职工号→单位号,单位号→职工号,单位号→单位名.所以,职工号→单位名,即存在非主属性“单位名”对候选关键字职工号的传递函数依赖,所以R不是3NF,规范化后的关系子模式为如下图。
R1如下:
R2如下:
职工号
职工名
年龄
性别
单位号
E1
E2
E3
E4
ZHAO
QIAN
SEN
L1
20
25
38
25
F
M
M
F
D3
D1
D3
D3
位号
单位名
D3
D1
CCC
AAA
5、如下图给出的关系SC为第几范式?
是否存在插入、删除异常?
若存在,则说明是在什么情况下发生?
发生的原因是什么?
将它分解为高一级范式,分解后的关系能否解决操作异常问题。
表SC如下:
SNO
CNO
CTITLE
INAME
ILOCA
GRADE
80152
C1
OS
王平
D1
70
80153
C2
DB
高升
D2
85
80154
C1
OS
王平
D1
86
80154
C3
AI
杨杨
D3
72
80155
C4
CL
高升
D2
92
其中:
SNO为学号,CNO为课程号,CTITLE为课程名,INAME为教师名,ILOCA为教师地址,GRADE为成绩。
解:
SC为1NF。
它存在插入、删除异常操作。
当增设一门新课程时,因还没有学生选修,则缺少关键字的一部分SNO而不能执行插入操作;当所有学生退选某门课程而进行删除操作时,会将不法删除的课程信息删除。
SC关系中存在插入和删除操作异常的原因在于,该关系的候选关键字为(SNO,CN0),其中仅有非属性GRADE完全函数依赖于(SNO,CNO),其他非主属性CTITLE、INAME、ILOCA都只函数依赖于CNO,即它们与(SNO,CNO)为部分函数依赖关系。
分解后的关系模式如下:
SG如下:
SNO
CNO
GRADE
0152
80153
80154
80154
80155
C1
C2
C1
C3
C4
70
85
86
72
95
O
CTITLE
INAME
ILOCA
C1
C2
C3
C4
OS
DB
AI
CL
王平
高升
杨杨
高升
D1
D2
D3
D2
CI如下:
分解后的两个关系子模式都为2NF(实际上,SG是3NF,它无传递依赖)。
解决了先前的插入、删除异常操作。
当增设一门新课程时,可将数据插入到CI表中;当所有学生退选某门课程时,只需删除SG表中的有关记录,而该课程的有关信息仍保留在CI表中。
分解2NF后的CI关系中仍存在插入、删除操作异常。
若有一个新教师报到,需将其有关数据插入操作;当取消某门课程而删除CI表中的一条记录时,会将不该删除的教师的有关信息删除。
CI表中出现操作异常的原因是该关系中存在非主属性对候选关键字的传递函数依赖:
CNO→INAME,INAME→CNO,INAME→ILOCA,所以CNO→ILOCA(函数传递依赖,CI不是3NF)
将CI进一步分解为如下所示的Course和Inst两个关系,可以解决上述操作异常。
COURSEINST
INAME
ILOCA
王子
高升
杨杨
D1
D2
D3
CNO
CTITLE
INAME
C1
C2
C3
C4
OS
DB
AI
CL
王平
高升
杨杨
高升