关系数据库的模式设计习题及答案.docx
《关系数据库的模式设计习题及答案.docx》由会员分享,可在线阅读,更多相关《关系数据库的模式设计习题及答案.docx(11页珍藏版)》请在冰豆网上搜索。
![关系数据库的模式设计习题及答案.docx](https://file1.bdocx.com/fileroot1/2022-12/12/a8f880dd-973b-40b0-b13b-414dc43b3f5b/a8f880dd-973b-40b0-b13b-414dc43b3f5b1.gif)
关系数据库的模式设计习题及答案
数据库原理之关系数据库的模式设计课后习题及答
4.1名词解释
(I)函数依赖:
FD(functiondependency),设有关系模式R(U),X,Y是U的子集,r是R的任一具体关系,如果对r的任意两个元组由n[X冃2[X]导致n[Y]=f2[Y],则称X函数决>i^Y,或Y函数依赖于X,记为XtY。
X-Y为模式R的一个函数依赖。
⑵函数依赖的逻辑蕴涵:
设F是关系模式R的一个函数依赖集,X.Y是R的属性子集,如果从F中的函数依赖能够推出X-Y,则称F逻辑蕴涵X-Y,记为F|=XtY。
(3)部分函数依赖:
即局部依赖,对于一个函数依赖W-A,如果存在XUW(X包含于W}有X-A成立,那么称W-A是局部依赖,否则称WtA为完全依赖。
(4)完全函数依赖:
见上。
⑸传递依赖:
在关系模式中,如果YtX,X-A,且X“Y(X不决主Y).AQX(A不属于X)•那么称Y-A是传递依赖。
(6)函数依赖集F的闭包F+:
被逻辑蕴涵的函数依赖的全体构成的集合,称为F的闭包(closure),记为F+。
(7)1NF:
第一范式。
如果关系模式R的所有属性的值域中毎一个值都是不可再分解的值,则称R是属于第一范式模式。
如果某个数据库模式都是第一范式的,则称该数据库存模式属于第一范式的数据库模式。
第一范式的模式要求属性值不可再分裂成更小部分,即属性项不能是属性组合和组属性组成。
(8)2NF:
第二范式。
如果关系模式R为第一范式,并且R中每一个非主属性完全函数依赖于R的某个候选键,则称是第二范式模式:
如果某个数摇库模式中每个关系模式都是第二范式的,则称该数据库模式属于第二范式的数据库模式。
(注:
如果A是关系模式R的候选键的一个属性,则称A是R的主属性,否则称A是R的非主属性。
)
(9)3NF:
第三范式。
如果关系模式R是第二范式,且毎个非主属性都不传递依赖于R的候选键,则称R是第三范式的模式。
如果某个数据库模式中的每个关系模式都是第三范式,则称为3NF的数据库模式。
(10)BCNF:
BC范式。
如果关系模式R是第一范式,且每个属性都不传递依赖于R的候选键,那么称R是BCNF的模式。
(II)4NF:
第四范式。
设R是一个关系模式,D是R上的多值依赖集合。
如果D中成立非平凡多值依赖X—Y时,X必是R的超键,那么称R是第四范式的模式。
(12)推理规则的正确性和完备性:
正确性是指,如果X-Y是从推理规则推出的,那么X-Y在F+中。
完备性是指,不能从F使用推理规则导出的函数依赖不在F+中。
(13)依赖集的覆盖和等价:
关系模式R(U)匕的两个函数依赖集F和G,如果满足F+=G+,则称F和G是等价的。
如果F和G等价,则可称F覆盖G或G覆盖F。
(14)最小依赖集:
如果函数集合F满足以下三个条件:
(1)F中每个函数依赖的右部都是
单属性:
(2)F中的任一函数依赖X—A,KF-{X-A}*jF是不等价的;(3)F中的任一函数依赖X-A,Z为X的子集,(F-{XtA})U{Z-A}与F不等价。
则称F为最小函数依赖集合,记为Fmin,
(15)无损联接:
设R是一关系模式,分解成关系模式p={Rl,R2..Rk},F是R上的一个函数依赖集。
如果对R中满足F的每一个关系r都有r=nRi(r)txttK2(r)tx1...txirRk(r)则称这个分解相对于F是"无损联接分解“。
(16)保持依赖集:
所谓保持依赖就是指关系模式的函数依赖集在分解后仍在数据库中保持不变,即关系模式R到p={Ri.R2'.…Rk}的分解,使函数依赖集F被F这些上的投影殖涵。
(17)多值依赖:
设R(U)是属性集U上的一个关系模式,X,Y,Z是U的子集,并且Z=U-X-Y.用x.y,2分别代表属性集X.Y.Z的值,只要r是R的关系,1■中存在元组(xyl.zl)和(x,y2,z2)时,就也存在元组(x.yl.z2)和(xj2,zl),那么称多值依赖(MultivaluedDependencyMVD)XftY在关系模式R中成立。
4.2关系模式R有n个属性,在模式R上可能成立的函数依赖有多少个?
其中平凡的函数依赖有多少个?
非平凡的函数依赖有多少个?
(要考虑所有可能的情况,数学排列组合问题。
对于数据库本身而言,本题没多大意义)所有属性相互依赖时,函数依赖最多。
平凡的函数依赖:
对于函数依赖XtY,如果yGx,那么称XtY是一个“平凡的函数依赖二
43建立关于系、学生、班级、社团等信息的一个关系数据库,一个系有若干个专业,
每个专业毎年只招一个班,每个班有若干个学生,一个系的学生住在同一宿舍区,每个
学生可以参加若干个社团,每个社团有若干学生。
描述社团的属性有:
社团名、成立年份、地点、人数、学生参加某社团的年份。
请给出关系模式,写出毎个关系模式的最小函数依赖集,指出是否存在传递函数依赖,于函数依赖左部是多属性的情况,讨论函数依赖是完全函数依赖还是部分函数依赖。
出各关系的候选键、外部键,有没有全键存在?
各关系模式如下:
学生(学号,姓名,出生年月,系名,班级号,宿舍区)
班级(班级号,专业名,系名,人数,入校年份)
系(系需,系号,系办公地点,人数)
社团(社团务成立年份•地点,人数)
加入社团(社团轻,学号,学生参加社团的年份)
学生(学号•姓名•出生年月,系名•班级号■宿舍区)•“学生"关系的最小函数依赖集为:
Fmin={学号-姓名,学号-班级号,学号-出生年月,学号T系名,系名T宿舍区}
•以上关系模式中存在传递函数依赖.如:
学号T系名,系名T宿舍区•候选键是学号,外部键是班级号,系名。
nolice:
在关系模式中,如果Y—X,X—A,且X“Y(X不决定Y〉,A不属于X,那
么称Y-A是传递依赖。
班级(班级号,专业名,系爼,人数,入校年份)「班级"关系的最小函数依赖集为:
Fmm={(系名角业名)T班级号,班级号T人数,班级号-入校年份,班级号T系名,班级
(假设没有相同的系,不同系中专业名可以相同)•以上关系模式中不存在传递函数依赖••“(系需,专业名)T班级号‘‘是完全函数依赖。
•候选键是(系需•专业名),班级号.外部键是系名。
系(系务系号,系办公地点,人数)•“系"关系的最小函数依赖集为:
Fmiz係号f系乳系需f系办公地点,系需f人数,系名T系号}•以上关系模式中不存在传递函数依赖•候选键是系名,系号
枕团(社团名,成立年份,地点,人数)「社团"关系的最小函数依赖集为:
Fmin=(社团名-成立年份,社团名-地点,社团名-人数)
•以上关系模式中不存在传递函数依赖。
•候选键是社团名
加入社团(社团名,学号,学生参加枕团的年份)「加入社团"关系的最小函数依赖集为:
Fmin={(社团牡学号)-学生参加社团的年份)•“(社团轻,学号)f学生参加社团的年份•'是完全函数依赖。
•以上关系模式中不存在传递函数依赖••候选键是(社团名,学号〉e
4.4对函数依赖XfY的定义加以扩充,X和丫对以为空属性集,用9表示•
那么Xt(p,的含义是什么?
根据函数依赖的企义,以上三个表达式的含义为:
⑴一个关系模式R(U)中,X,Y是U的子集,r是R的任一具体关系.如果对r的任意
两个元组tLl2.由tl[X]=l2tX]必有tl[q>]=t2[9].即X-
这是任何关系中都存在的。
(2)(p-Y表示Y函数依赖于空属性。
由此可知该关系中所有元组中Y属性的值均相同。
(3)cp-
这也是任何关系中都存在的。
4.5已知关系模式R(ABC),F={AtC,BtC},求F\
可以H接通过自反律、增广律、传递律加以推广:
F*={
AB—AB.AB—ABC,BC—(p,BC—*C.BC—B・BC—BC»AC—(pABCtq,ABJA,ABC—B,ABCY,ABJBC,ABJAB.ABC-*ABC}
4.6试分析下列分解是否具有无损联接和保持函数依赖的特点:
(1)设R(ABC),F1={A一B}在R上成立,pl={AB,AC}c
尚先,检査是否具有无损联接特点:
第I种解法••算法42
A
B
C
AB
al
a2
bl3
AC
al
b22
a3
(I)构造表
(2)根据AfB进行处理
结果第二行全是a行•,因此分解是无损联接分解°
第2种解法:
(定理4・8)设R1=AB,R2=AC
RiriR2=A
R2-R1=B
VA-B二该分解是无损联接分解・
然后,检查分解是否保持函数依赖
TCRl(Fl)={AtB,以及按自反率推出的•些函数依赖}
7CR2(F1)={按白反率推出的•些函数依赖}
FI被箕RICF1)所蕴涵,代所以该分解保持函数依赖・
(2)设R(ABC)・F2={AfC,B—C}在R上成立,p2={AB,AC}
首•先,检査是否具有无损联接特点:
第1种解法(略)第2种解法:
(定理4・8)设R1=AB,R2=AC
RinR2=A
R2-R1=C
VA-C•••该分解是无损联接分解•
然后,检査分解是否保持函数依赖
JtRi(F2)={按自反率推出的•些函数依赖}
JiRi(F2)={AfC,以及按自反率推出的•些函数依赖}
VFI中的BtC没有彼蕴涵,所以该分解没有保持函数依赖・
⑶设R(ABC),F3={A—B},在R上成立,p3={ABEC}・
首先,检査是否具有无损联接持点;
第1种解法:
没有一行全是a行。
W此这个分解不具有无损联接特性・
第2种解法:
(定理4・8)
设R1=AB.R2=BC
RiriR2=B
R2-R1=C,R1-R2=A
•••B-CB-A不在F3中•••该分解不具有无损联接特性•
然后,检査分解是否保持函数依赖
JIRI(F3)
={AtB,以及按自反率推出的•些函数依赖}
7CR2(F3)
={按自反率推出的•些函数依赖}
F1被JIRI
(F3)所蕴涵,所以该分解保持函数依赖.
(4)设R(ABC),F4={A^B.B—C}在R上成立,p4={ACBC}
首先,检查是否具有无损联接特点:
第I种解法(略)
第2种解法:
(定理4・8)
设R1=AC,R2=BC
Rl(AC)nR2(BC)=C
R2・RI=B,R1-R2=A
•••C-B.C-A不在F4中,•该分解不具有无损联接特性•
然后,检查分解是否保持函数依赖
7CR1(F2)={按自反率推出的•些函数依赖}
7tR2(F2)={BjC,以及按自反率推出的•些函数依赖}
•••FI中的A-B没有彼蕴涵,所以该分解没有保持函数依赖。
4,7设R二ABCD.R上的函数依赖集F={A^B.BfC,A—D,DfC}R的一个
分解p={AB,ACAD},求:
(1)F在p的每个模式上的投影。
(2)p相对于F是无损联
接分解吗?
(3)p保持依赖吗?
(1)
每•行都是a,P相对于F是无损联接分解・
(3)7tAB(F)U7tAC(F)U7r八D(F)={AfB.A-*C>A-*-D},
没有满足BfC,D—C函数依赖,
因此P和对于F的这个分解不保持函数依赖。
相对于F不是无损联接分解。
根据算法4・2
没有•行都是所以,P和对于F不是无损联接分解。
4.9
设R=ABCD・R1:
的F={A^B,B^C,D—B},把R分解成BCNF模式集。
(1)若首先把R分解成{ACDBD},试求F在这两个模武上的投影。
(2)ACD和BD是BCNF吗?
如果不是,请进一步分解。
⑴7tAcn(F)={A^C}
jcbiXFXD^B}
(2)因为根据BCNF的定义,要求关系模式是第•范式,且每个属性都不传递依赖丁・R的侯选键。
BCD中(A・D)为候选键,可是(A・D)fA,A->C,所以它不是BCNF模式©
它可进一步分解为:
(ACDC},此时AC,DC均为BCNF模式。
BD是BCNF.因为R2(BD)是第一范式,且每个属性都不传递依赖于D(候选键),所以它是BCNF
模式。
4,10设R=ABCD,p={AB・BUCD}。
F1={AtB,BtC};F2={BfC,C->D}:
(1)如果Fl是R上的函数依赖集,此时p是无损联接分解吗?
若不是,试举出反
例。
⑵如果F2是R上的函数依赖集呢?
(I)不是无损联接。
可由算法4・2判断或由定理4・8判断。
根据算法4・2
结果没有出现一行全a的情况,所以它不是无损联接。
举例如下:
设模式R的咲系r为((alblcldl)Xa2b2cld2)}则有:
rl=;CAB(r)={(aIbl),(a2b2)}
r2=;c8c(r)={(blcl),(b2cl)j
r3=7Cc'i)(r)={(c1dI),(c1d2)}
令a=rlP4-2P4-3={(alblcldl),(alblcld2X(a2b2cldlX(a2b2cld2)|
岸a,所以p不是无损联接。
(2)如果F2是R上的函数依赖•则可以判断,P是无损联接.判断过程同上•
4JI设关系模式R(S#r#,GRADETNAME,TADDRb其属性分别衣示学生学号、选修课程的編
号,成绩、任课教师地址等意义。
如果规定,每个学生每学•门课只有•个成绩:
每门课只有
•个教师任教;每个教师只有个地址(此处不允许教师同名同姓)。
(I)试写出关系模式R基本的函数依赖和候选键。
(2)试把R分解成2NF模式集并说明理由。
(3)试把R分解成3NF模式集,并说明理由。
(l)F={(S#・C#)fGRADE,C#-*TNAME,TNAKIE^TADDR}
侯选键是(s#r#)□
⑵在模式R中,TNAME不完全依赖于键(S#,C#)」刘此需进行分解,可分解为下列两个关系。
SC={S#・C#.GRADE}C={C#,TNAME.TADDR}
分解后,SC中,GRADE完全依赖于侯选键(S#・C#),在C中,主属性是C#,TNAME、TADDR
均完全依赖于C#。
因此,该分解符合2NF模式。
(3)3NF:
若每个关系模式是2NF.则每个非主属性都不传递于R的候选键・
按上述已分好的两个模式,SC中已满足“,每个非主属性都不传递于R的候选键=已是3NE而在
C中,C#fTNAME,TNAMEfTADDR,TADDR传递依赖于C#,W此还需分成两个模式:
CT(C#・TNAME)・T(TNAME,TADD)e
分解后,总共有SO{S#・C#.GRADE}・CT(C#・TNAME)・T(TNAME,TADD)三个模式。
该分解符合3NF模式。
4J2图4・6衣示•个公司各部门的层次结构,对每个部门.数据库中包含部门号(唯•的)
预算费(BUDGET)以及此部门领导人员的职工号(唯•的)E#邨信息。
对每•个部门,还存有部门的全部职工,生产科研项目以及办公室的信息。
职工信息包括:
职工号,他所参加的生产科研项目号(J#),他所在办公室的电话号(PHONE#)O生产科研项目包含:
项目号(唯•的),预算费。
办公室信息包伶:
办公室号(唯-的),何积。
对每个职工,数据库中有他曾担任过的职务以及担任某•职务时的工资历史。
对每个办公室包含此办公室中全部电话号吗的信息。
请给出你认为合埋的数据依赖.把这个层次结构转换成•组规范化的关系。
提示:
此题可分步完成,先转换成•组1NF的关系,然后逐步转换成2NF.3NF
先得到一个泛关系的模式如下:
D={D#,Manager_E#,Budget,E#J#.Phone#,Business.Sa_History.Office#,Area)
D#:
部门号.ManagejE#:
部门领导人员的职工号.E#:
职工号•J#:
生产科研项目号.Phone#:
办公室
的电话号.Business:
职工职务,Sa_History:
工资历史.Office#:
办公室号,Area:
办公室面积根据所给信息.给出下列数据依赖;
F={D挣fManager_E#•E轻fOffice仪(E#,Business)fSjHistoryJ^TBudgerE#—J存.
Office#^Area.OfficefD弐牌hone#iOffice*}
(假设•个部门可能有多个办公室,有多个项目,一个办公室只属于一个部门•有多部电话,个员工只参加一个项目,一个项目可能属于多个部门)
只耍保证每个属性值不可分割.以上范式即为1NF。
候选键为(E#.Business,Phone#)
转换成2NF关系(消除局部依赖):
Em_Dep(E#.r>#,Manager_E#.Office#-AreaJ#-Budget)
对应F={D#fManagef-E虬E^^Office#J#—>Budget,E#^J#,Office莒fArea.Office^D#}
History(E#.Business.History)
对应F={(E#-Business)—*Sa_History}
Phone(Phone#-Office#)
对应F={Phone#^Office#}
转换成3NF关系(消除非主属性对侯选键的传递依赖):