首页52avzy,com:分享:数据库系统原理第三章基本概念及课后习题有答案

来源:百度文库 编辑:偶看新闻 时间:2024/04/29 07:20:53

一、关系模式的设计准则
1.数据冗余:同一个数据在系统中多次重复出现。
2.关系模式设计不当引起的异常问题:数据冗余、操作异常(包括修改异常、插入异常和删除异常)
3.关系模式的非形式化设计准则
 1)关系模式的设计应尽可能只包含有直接联系的属性,不要包含有间接联系的属性。也就是,每个关系模式应只对应于一个实体类型或一个联系类型。
 2)关系模式的设计应尽可能使得相应关系中不出现插入异常、删除和修改等操作异常现象。
 3)关系模式的设计应尽可能使得相应关系中避免放置经常为空值的属性。
 4)关系模式的设计应尽可能使得关系的等值连接在主键和外键的属性上进行,并且保证以后不会生成额外的元组。
4.习惯使用的一些符号:
1)英文字母表首部的大写字母“A,B,C,…”表示单个的属性。
2)英文字母表尾部的大写字母“…,U,V,W,X,Y,Z”表示属性集。
3)大写字母R表示关系模式,小写字母r表示其关系。
4)关系模式的简化表示方法:R(A,B,C,…)或R(ABC…)
5)属性集X和Y的并集简写为XY。
二、函数依赖
1.函数依赖(FD)的定义:设有关系模式R(U),X和Y是属性集U的子集,函数依赖是形成X→Y的一个命题,只要r是R的当前关系,对r中任意两个元组t和s,都有t[X]=s[X]蕴涵t[Y]=s[Y],那么称FD  X→Y在关系模式R(U)中成立。
说明:  1)t[X]表示元组t在属性集X上的值,其余类同。
      2)X→Y读作“X函数决定Y”或“Y函数依赖于X”。
   3)FD是对关系模式R的一切可能的关系r定义的。对于当前关系r的任意两个元组,如果X值相同,则要求Y值也相同,即有一个X值就有一个Y值与之对应,或者说Y值由X值决定。
例:设关系模式R(ABCD),在R的关系中,属性值间有这样的联系:A值与B值有一对多联系;C值与D值之间有一对一联系。试根据这些规则写出相应的函数依赖。
  B→A   C→D  D→C
2.如果X→Y和Y→X同时成立,则可记为:X↔Y
3.FD的逻辑蕴涵:设F是在关系模式R上成立的函数依赖的集合,X→Y是一个函数依赖。如果对于R的每个满足F的关系r也满足X→Y,那么称F逻辑蕴涵X→Y,记为F|=X→Y。
4.设F是函数依赖集,被F逻辑蕴涵的函数依赖全体构成的集合,称为函数依赖集F的闭包,记为F+。即F+={X→Y   |   F|=X→Y }
5.FD的推理规则(Armstrong公理)
设U是关系模式R的属性集,F是R上成立的只涉及到U中属性的函数依赖集。
1) 自反性:若YÍXÍU,则X→Y在R上成立。
2) 增广性:若X→Y在R上成立,且ZÍU,则XZ→YZ在R上成立。
3) 传递性:若X→Y和Y→Z在R上成立,则X→Z在R上成立。
6.FD的其他五条推理规则:
   1)合并性:{X→Y,X→Z}  |=  X→YZ
   2)分解性:{X→Y,ZÍY }  |=  X→Z
   3)伪传递性:{X→Y,WY→Z }  |=  WX→Z
 4)复合性:{X→Y,W→Z }  |=  WX→YZ
   5){X→Y,W→Z }  |=  X∪(W-Y)→YZ
7.对于FD X→Y,如果YÍX,那么称X→Y是一个“平凡的FD”,否则称为“非平凡的FD”。通常研究非平凡FD。
例:X→X,X→φ, φ→φ,XY→X都是平凡函数依赖;X→XY则是非平凡函数依赖。
8.函数依赖是关键码概念的推广。
设关系模式R的属性集是U,X是U的一个子集。如果X→U在R上成立,那么称X是R的一个超键。如果X→U在R上成立,但对于R的任一真子集X1都有X1→U不成立,那么称X是R的一个候选键。在关系模式设计理论中,键通常是指候选键。
9.属性集的闭包
10.设F是属性集U上的FD集,X上U的子集,那么(相对于)属性集X的闭包用X+表示,它是一个从F集使用FD推理规则推出的所有满足X→A的属性A的集合:X+={属性A  |  F|=X→A}
11.X→Y能用FD推理规则推出的充分必要条件是YÍ X+,从而避开求F+,使问题得到简化。
12.求属性集X相对于FD集F的闭包X+的算法:
 X+=X;
 do {oldX+:=X+;
        for F中每个FD Y→Z do
            if YÍ X+  then  X+:=X+∪Z;
  }while(X+!=oldX+);
例:属性集U为ABCD,FD集为{A→B,B→C,D→B}。求A+、(AD)+和
(BD)+
A+=ABC
(AD)+=ABCD
(BD)+=BCD
13.如果关系模式R(U)上的两个函数依赖集F和G,有F+=G+,则称F和G是等价的函数依赖集。
三、关系模式的分解特性
1.关系模式的分解:
设有关系模式R(U),属性集为U,而R1,R2,…,Rk都是U的子集,并且有R1∪R2∪…∪Rk=U。关系模式R1,R2,…,Rk的集合用ρ表示,ρ={R1,R2,…,Rk}。用ρ代替R的过程称为关系模式的分解。这里ρ称为R的一个分解,也称为数据库模式。
一般把上述的R称为泛关系模式,R对应的当前值称为泛关系。数据库模式ρ对应的当前值称为数据库实例,它由数据库模式中的每一个关系模式的当前值组成。我们用σ=表示。
因此,在计算机中数据并不是存储在泛关系r中,而是存储在数据库σ中。
2.σ和r是否等价,即是否表示同样的数据。这个问题用“无损分解”特性表示。
在模式R上有一个FD集F,在ρ的每一个模式Ri上有一个FD集Fi,那么{F1,F2,…,Fk}与F是否等价。这个问题用“保持依赖”特性表示。
四、范式
1.范式:衡量关系模式好坏的标准。
2.数据库设计中最常用的是3NF和BCNF。
3.第一范式(1NF):如果关系模式R的每个关系r的属性值都是不可分的原子值,那么称R是第一范式的模式。满足1NF的关系称为规范化的关系,否则称为非规范化的关系。1NF是关系模式应具备的最起码的条件。
4.局部依赖和完全依赖:对于FD  W→A,如果存在XÌW有X→A成立,那么称W→A是局部依赖(A局部依赖于W);否则称W→A是完全依赖。
5.主属性和非主属性:如果A是关系模式R的候选键中的属性,那么称A是R的主属性;否则称A是R的非主属性。
6.第二范式(2NF):如果关系模式是1NF,且每个非主属性完全函数依赖于候选键,那么称R是第二范式(2NF)的模式。
7.分解成2NF模式集的算法:
设关系模式R(U),主键是W,R上还存在FD X→Z,并且Z是非主属性和X
ÌW,那么W→Z就是一个局部依赖。此时应把R分解成两个模式:
R1(XZ),主键是X;
R2(Y),其中Y=U-Z,主键仍是W,外键是X(参照R1)。
如果R1和R2还不是2NF,则重复上述过程,一直到数据库模式中的每一个关系模式都是2NF为止。
8.如果X→Y,Y→A,且Y→X和AÍY,那么称X→A是传递依赖(A传递依赖于X)。
9.第三范式(3NF):如果关系模式R是2NF,且每个非主属性都不传递依赖于R的候选键,那么称R是第三范式(3NF)的模式。
10.分解成3NF模式集的算法:
设关系模式R(U),主键是W,R上还存在FD  X→Z。并且Z是非主属性,ZÍX,X不是候选键,这样W→Z就是一个传递依赖。此时应把R分解成两个模式:
R1(XZ),主键是X;
R2(Y),其中Y=U-Z,主键仍是W,外键是X(参照R1)。
如果R1和R2还不是3NF,则重复上述过程,一直到数据库模式中的每一个关系模式都是3NF为止。
11.如果R是3NF模式,那么R也是2NF模式。如果R是2NF模式,那么R也是1NF模式。
12.BC范式(BCNF):如果关系模式R是1NF,且每个属性都不传递依赖于R的候选键,那么称R是BCNF的模式。
13.如果R是BCNF模式,那么R也是3NF模式。
14.分解成BCNF模式集的算法能保持无损分解,但不一定能保持FD集。而分解成3NF模式集的算法既能保持无损分解,又能保持FD集。
15.关系模式由1NF分解为2NF,消除了非主属性对键的局部函数依赖;由2NF分解为3NF,消除了非主属性对键的传递函数依赖;而BCNF则消除了每一属性对键的传递函数依赖。
16.关系模式设计理论主要用于数据库的逻辑设计过程中。

第三章 复习题
一、单项选择题
1.由于关系模式设计不当所引起的插入异常指的是( B )
A) 两个事务并发地对同一关系进行插入而造成数据库不一致
B) 由于键值的一部分为空而不能将有用的信息作为一个元组插入到关系中
C) 未经授权的用户对关系进行了插入
D) 插入操作因为违反完整性约束条件而遭到拒绝
2.下面有关模式分解的叙述中,不正确的是( D )
A) 若一个模式分解保持函数依赖,则该分解一定具有无损连接性
B) 若要求分解保持函数依赖,那么模式分解可以达到3NF,但不一定能达到BCNF
C) 若要求分解既具有无损连接性,又保持函数依赖,则模式分解可以达到3NF,但不一定能达到BCNF
D) 若要求分解具有无损连接性,那么模式分解一定可以达到BCNF
3.下述哪一条不是由于关系模式设计不当而引起的( B )
A) 数据冗余 B) 丢失修改 C) 插入异常 D) 修改异常
4.根据数据库规范化理论,下面命题中正确的是( D )
A) 若R∈2NF,则R∈3NF
B) 若R∈3NF,则R不属于BCNF
C) 若R∈3NF,则R∈BCNF
D) 若R∈BCNF,则R∈3NF
5.若关系模式R∈3NF,则下面最正确的说法是( C )
A) 某个主属性不传递依赖于码
B) 某个非主属性不部分依赖于码
C) 所有的非主属性都不传递依赖于码
D) 所有的非主属性都不部分依赖于码
6.给定关系模式R〈U,F〉,其中,U是所有属性的集合,F是FD集。如果X,Y是U的子集,且X→Y∈F,则X和Y之间必然存在( C )
A) 一对一联系
B) 一对多联系(含一对一联系)
C) 多对一联系(含一对一联系)
D) 多对多联系
7.设R(U),其中,U是所有属性的集合。如果存在U的子集K,且K→U,则K为R的( D )
A) 外键 B)候选键 C)主键 D)超键
8. 任何一个二元关系在函数依赖的范畴内必能达到( D )
A) 1NF B)2NF C)3NF D)BCNF
9.在关系模式设计理论中,如果一个关系R满足1NF,但R的某个非主属性传递依赖于键,则关系R至多属于( B )
A) 1NF B)2NF C)3NF D)BCNF
10.在一个BCNF关系模式中,所有的非主属性对每一个键都是( D )
A) 部分函数依赖  B)平凡函数依赖
C) 传递函数依赖  D)完全函数依赖
11.在一个关系模式R(A,B,C,D)中,若各个属性间没有任何函数依赖关系,则该模式的主属性有( A )
A) A,B,C,D   B)R,A   C)A,B   D)R,A,B,C,D
12.当下述哪一条成立时,称X→Y为平凡的函数依赖( B )
13.当关系模式R(A,B)已属于3NF,下列( B )说法是正确的。
A) 它一定消除了插入和删除异常 
B) 仍可能存在着一定的插入和删除异常
C) 一定属于BCNF
D) A和C都是
14.关系模型中的关系模式至少是( A )
A) 1NF  B)2NF  C)3NF  D)BCNF
15.下列函数依赖中,( C )是平凡的函数依赖。
A) AB→BC  B)AB→CD  C)AB→A  D)AB→D
16.下列命题中,不正确的是( D )
A)若X→Y在R上成立,且ZÍU,则XZ→YZ在R上成立。
B)若X→Y和Y→Z在R上成立,则X→Z在R上成立。
C)若X→Y,X→Z在R上成立,则 X→YZ在R上成立。
D)若X→Y,WY→Z 在R上成立,则WX→Z在R上不成立。
17.设关系模式R(ABCDE),F是R上成立的FD集,F={AB→C,CD→E,DE→B},则下列哪一项不是关系模式R的候选键( D )
A) ACD  B)ABD  C)AED  D)AD
18.设关系模式R(ABCD)上FD集为F,并且F={ AB→C,C→D,D→A},则下列哪一项不是关系模式R的候选键( B )
A) AB  B)AD  C)BC  D)BD

二、填空题
1.关系模式规范化过程中,若要求分解保持函数依赖,那么模式分解一定可以达到3NF,但不一定能达到BCNF。
2.将一个关系从1NF规范到2NF,目的是消除非主属性对键的部分函数依赖,若进一步规范到3NF,目的是消除非主属性对键的传递函数依赖。
3.在关系数据库的规范化设计中,对模式分解的等价性进行评价的两条主要标准是具有无损连接性和保持函数依赖。
4.若关系为1NF,且它的每一非主属性都完全函数依赖于候选键,则该关系为2NF。
5.衡量关系模式好坏的标准称为范式。
6.满足第一范式的关系称为规范化的关系。
7.设关系模式R(ABCD),F是R上成立的FD集,F={A→B,C→B},则相对于F,关系模式R的候选键是AC。

三、综合题
1.设关系模式R(ABCD),F是R上成立的FD集,F={A→B,B→C}。
 1)试写出属性集BD的闭包(BD)+。
 2)试写出所有左部是B的函数依赖(即形为“B→?”)。
(BD)+=BCD
左部是B的函数依赖有:B→φ,B→B,B→C,B→BC
2.设关系模式R(ABCDE)上FD集为F,并且F={ A→BC,CD→E,B→D,E→A}。
 1)试求R的候选键。
 2)试求B+的值。
R的候选键为:A、E、BC、CD
B+=BD
3.设关系模式R(ABCD),F是R上成立的FD集,F={AB→CD,A→D}。
 1)试说明R不是2NF模式的理由。
 2)试把R分解成2NF模式集。
理由:R的候选键是AB,则非主属性为C和D,并且AB→D成立。而已知A→D,因此AB→D为非主属性D对候选键的局部依赖。
R分解为:R1(AD)主键是A;
R2(ABC)主键是AB,外键是A。
4.设关系模式R(ABCD),F是R上成立的FD集,F={C→B,B→A}。
 1)试说明R不是3NF模式的理由。
 2)试把R分解成3NF模式集。
理由:R的候选键是C,则非主属性为A和B。因为C→B,B→A,则C→A为非主属性A对候选键的传递依赖。
R分解为:R1(CB)主键是C,外键是B;
R2(AB)主键是B。
5.设有关系模式R(职工编号,日期,日营业额,部门名,部门经理),该模式记录了商店里每个职工的日营业额,以及职工所在的部门和经理信息。
如果规定:每个职工每天只有一个营业额;每个职工只在一个部门工作;每个部门只有一个经理。
试回答下列问题:
 1)根据上述规定,写出模式R的基本FD和关键码;
 2)说明R不是2NF的理由,并把R分解成2NF模式集;
 3)进而分解成3NF模式集。
答:1)R的基本FD:(职工编号,日期)→日营业额,职工编号→部门名,部门名→部门经理
R的关键码:(职工编号,日期)
2)R不是2NF的理由:R的候选键是(职工编号,日期),则部门名和部门经理为非主属性,并且(职工编号,日期)→部门名和(职工编号,日期)→部门经理成立。而职工编号→部门名,部门名→部门经理,因此职工编号→部门经理,因此(职工编号,日期)→部门名为非主属性部门名对候选键的局部依赖,(职工编号,日期)→部门经理为非主属性部门经理对候选键的局部依赖
R分解为:R1(职工编号,部门名,部门经理)主键是职工编号;
R2(职工编号,日期,日营业额)主键是(职工编号,日期),外键是职工编号。
3)R分解为:R11(职工编号,部门名)主键是职工编号,外键是部门名(参照R12);
R12(部门名,部门经理) 主键是部门名;
R2(职工编号,日期,日营业额)主键是(职工编号,日期),外键是职工编号(参照R11)。
6.设有关系模式R(运动员编号,比赛项目,成绩,比赛类别,比赛主管),存储运动员比赛成绩及比赛类别、主管等信息。
如果规定:每个运动员每参加一个比赛项目,只有一个成绩;每个比赛项目只属于一个比赛类别;每个比赛类别只有一个比赛主管。
试回答下列问题:
 1)根据上述规定,写出模式R的基本FD和关键码;
 2)说明R不是2NF的理由,并把R分解成2NF模式集;
 3)进而分解成3NF模式集。
答:1)R的基本FD:(运动员编号,比赛项目)→成绩,比赛项目→比赛类别,比赛类别→比赛主管
R的关键码:(运动员编号,比赛项目)
2)R不是2NF的理由:R的候选键是(运动员编号,比赛项目),则比赛类别和比赛主管为非主属性,并且(运动员编号,比赛项目)→比赛类别和(运动员编号,比赛项目)→比赛主管成立。而比赛项目→比赛类别,比赛类别→比赛主管,因此比赛项目→比赛主管成立,因此(运动员编号,比赛项目)→比赛类别为非主属性比赛类别对候选键的局部依赖,(运动员编号,比赛项目)→比赛主管为非主属性比赛主观对候选键的局部依赖。
R分解为:R1(比赛项目,比赛类别,比赛主管)主键是比赛项目;
R2(运动员编号,比赛项目,成绩)主键是(运动员编号,比赛项目),外键是比赛项目。
3)R分解为:R11(比赛项目,比赛类别)主键是比赛项目,外键是比赛类别(参照R12);
R12(比赛类别,比赛主管) 主键是比赛类别;
R2(运动员编号,比赛项目,成绩)主键是(运动员编号,比赛项目),外键是比赛项目(参照R11)。