1 / 12
文档名称:

习题集第5章关系理论.doc

格式:doc   大小:106KB   页数:12页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

习题集第5章关系理论.doc

上传人:在水一方 2018/9/30 文件大小:106 KB

下载得到文件列表

习题集第5章关系理论.doc

相关文档

文档介绍

文档介绍:第7章关系数据库设计理论
学****要点
关系数据库设计理论是关系数据库的又一个重点。关系数据库的逻辑设计主要是设计关系模式,而深入了解函数依赖和码的概念则是设计和分解关系模式的基础。学****本章的目的有两个。一个是理论方面的,本章用更加形式化的关系数据理论来描述和研究关系模型。另一个是实践方面的,关系数据库设计理论是我们进行数据库设计的有力工具。
知道什么是函数依赖、完全函数依赖、部分函数依赖和传递函数依赖,能确定两个或多个属性间的函数依赖,计算属性的闭集;
理解关系的码和超码、主属性和非主属性;
3、理解1NF、2NF、F的定义,并能辨别某关系属于哪种范式类型;
4、掌握规范化一个关系模式的原则方法,F;
5、理解多值依赖和连接依赖,初步掌握分解成第四范式的方法。<br****题讲解
1. 理解并给出下列名词的涵义:
函数依赖、部分函数依赖、传递函数依赖、超码、多值依赖。
答:
函数依赖是数据库中两个属性集之间的约束。设R(U)是属性集U上的关系模式,X、Y是U的子集,r是R的任一具体关系。设t1、t2是关系r中的任意两个元组,如果t1[X]=t2[X],有t1[Y]=t2[Y],则称X函数决定Y,或Y函数依赖于X,记作X→Y。
在关系模式R(U)中,X, Y是U的子集,若X→Y,且存在X&#39;&#204;X,使X&#39;→Y,则称X→Y是部分函数依赖(partial functional dependency),记作XY。
在关系模式R(U)中,X, Y是U的子集,若X→Y,Y→Z,并且Y不函数依赖于X,则称Z传递函数依赖于X。
包含候选码的属性或属性组称为超码(Super key)。
设有关系模式R(U),X、Y为U的子集,Z=U-XY,r是R的任一关系,如果r中存在两个元组t1、t2满足t1 [X]= t2 [X],则r中必然存在两个元组t3、t4,使得
(1) t3 [X]= t4 [X]= t1 [X]= t2 [X]
(2) t3 [Y]= t1 [Y]且t4 [Y]= t2 [Y]
(3) t3 [Z]= t2 [Z]且t4 [Z]= t1 [Z]
则称X→→Y是多值依赖(multivalued dependency, MVD), X多值决定Y。
(ABCDE),有函数依赖集F={A&#174;B, AB&#174;D, E&#174;AD,E&#174;C}和G={ A&#174;BD, E&#174;AC },判断F和G是否等价。
答:
AG+=ABD, EG+=ABCDE,可知F中的函数依赖A&#174;B、AB&#174;D、E&#174;AD、E&#174;C都属于G+,所以F&#205;G+;AF+=ABD, EF+=ABCDE,可知G中的函数依赖A&#174;BD, E&#174;AC都属于F+,所以G
&#205;F+。
,F与G等价。
(ABCD),其函数依赖集F={A→BC,B→C,AB→C,AC→D},求F的最小依赖集Fmin。
答:
(1) 首先用分解规则将F中所有的函数依赖的右部属性单一化。得F={ A→B ,A→C,B→C,AB→C, AC→D }。
(2) 去掉F中多余的依赖。具体做法是:从第一个函数依赖(假设为X→Y)开始,把它从F中去掉,求X+,若X+包含Y,则X→Y是多余的,要去掉;若X+不包含Y,则不能去掉X→Y。检查全部依赖后可得G。(2)。
这里,对于A→B,由于(A)+ =ACD不包含B,所以不能去掉;而由于从F中去掉A→C 后,A+ =ABCD,包含了C,所以A→C是多余的,从F中去掉;接下去B→C不能去掉,而且AB→C 明显多余,从F中去掉;(AC)+ =ABC不包含D,所以AC→D不能去掉,最后得G={A→B,B→C,AC→D }。
(3) 去掉F2中的函数依赖左边的多余的属性。具体做法是:检查F中所有左边是非单属性的函数依赖,如XY→A,要判断Y是否为多余属性,只要在F中求X+,若X+包含A,则Y是多余属性,否则Y不是多余属性。该题G中AC→D的C属性多余,去掉后得到的函数依赖集Fmin={A→B,B→C,A→D }。
(ABCDE),其函数依赖F={A&#174;BC,CD&#174;E,B&#174;D,E&#174;A},试求
(1) 计算B+。
(2) 求R的所有码。
答:
(1),令X(0) = B
在F中找出左边是B的子集的函数依赖,有B→D;
X(1) =BD
因为X(1)≠X(0),
继续在F中找出左边是BD的子集的函数依赖,由于不存在这样的函数依赖,所以不必再计算下去了。
结果为:B+ = BD。
(2)因为A+ = ABCDE,E+ = ABCDE,(BC)+ = ABCDE,(CD)+ = ABCDE,B+