数据库系统教程-课后答案(施伯乐)(第三版).

·3NF:如果R是1NF的模式,且每个非主属性都不传递依赖于R的候选键,那么称R是3NF的模式。

·BCNF:如果R是1NF的模式,且每个属性都不传递依赖于R的候选键,那么称R是BCNF的模式。

·4NF:设D是关系模式R上成立的FD和MVD集合。如果D中每个非平凡的 MVD X→→Y的左部X都是R的超键,那么称R是4NF模式。

·5NF:如果关系模式R的每个JD均由R的候选键蕴涵,那么称R是5NF的模式。 ·多值依赖(MVD):设关系模式R(U),X和Y是U的子集,Z=U-X-Y。对于R的关系r,若在r中存在元组(x,y1,z1)和(x,y2,z2),就也应存在元组(x,y2,z1)和(x,y1,z2),那么称MVD X→→Y在模式R上成立。

·联接依赖(JD):设关系模式R(U),R1、…、Rn是U的子集,并满足U=R1∪…∪Rn,

ρ={ R1,…,Rn }是R的一个分解。如果对于R的每个关系r都有mρ(r)=r,那么称 JD *(R1,…,Rn)在模式R上成立。

4.2 用A1、A2和A3三条推理规则来证明4.2.3节中的定理4.2(推理规则A4~A8)。

(1) A4(合并性,union):{ X→Y,X→Z }?X→YZ。

证明:已知X→Y,根据A2,两边用X扩充,得到X→XY。从已知X→Z,根据A2两边用Y扩充,得到XY→YZ。再根据A3,从X→XY和XY→YZ可得到X→YZ。

(2) A5(分解性,decomposition):{ X→Y,Z证明:已知Z

Y }?X→Z。

Y,可得Y→Z。从Y→Z和已知X→Y,可得X→Z成立。

(3) A6(伪传递性):{ X→Y,WY→Z }?WX→Z。

证明:已知X→Y,根据A2,两边用W扩充,得到WX→WY。据WX→WY和已知的WY→Z,。再根据A3,可得WX→Z成立。

(4) A7(复合性,composition):{ X→Y,W→Z }?XW→YZ。

证明:已知X→Y,根据A2,两边用W扩充,得到WX→WY。从已知W→Z,根据A2两边用Y扩充,得到WY→YZ。再根据A3,从WX→WY和WY→YZ可得到XW→YZ成立。

(5) A8 { X→Y,W→Z }?X∪(W-Y)→YZ。

证明:已知X→Y,根据A2,两边用(W-Y)扩充,得到X∪(W-Y)→Y∪(W-Y),而 Y∪(W-Y)=WY,因此有X∪(W-Y)→WY。从已知W→Z,根据A2两边用Y扩充,得到WY→YZ。再根据A3,从X∪(W-Y)→WY和WY→YZ可得到X∪(W-Y)→YZ。

4.3 对函数依赖X→Y的定义加以扩充,X和Y可以为空属性集,用φ表示,那么X→φ,φ→Y,φ→φ的含义是什么?

答:据推理规则的自反律可知,Xф和фф是平凡的FD,总是成立的。

而фY表示在当前关系中,任意两个元组的Y值相等,也就是当前关系的Y值都相等。 4.4 设关系模式R有n个属性,在模式R上可能成立的函数依赖有多少个?其中平凡的FD有多少个?非平凡的FD有多少个? 解:这个问题是排列组合问题。FD形为X

Y,从n个属性值中选择属性组成X共有C0nY形式应该有2n·2n=4n

nn+C1同理,组成Y也有2n种方法。因此组成Xn+ … +Cn=2种方法;种方法。即可能成立的FD有4n个。

平凡的FD要求Y?X,组合XY形式的选择有:

01(C0+C1)+C2·012n01nC0n·C0+Cn·11n(C2+C2+C2)+ … +Cn(Cn+Cn+ … Cn)

02nnn112n=C0n·2+Cn·2+Cn·2+ … +Cn·2=(1+2)=3

即平凡的FD有3n。因而非平凡的FD有4n-3n个。

4.5 已知关系模式R(ABC),F是R上成立的FD集,F={ A→B,B→C },试写出F的闭包F+。

解:据已知条件和推理规则,可知F+有43个FD: Aф ABф ACф ABCф Bф Cф AA ABA ACA ABCA BB CC AB ABB ACB ABCB BC фф AC ABC ACC ABCC BBC AAB ABAB ACAB ABCAB BCф AAC ABAC ACAC ABCAC BCB ABC ABBC ACBC ABCBC BCC AABC ABABC ACABC ABCABC BCBC 4.6 设关系模式R(ABCD),F是R上成立的FD集,F={ A→B,C→B },则相对于F,试写出关系模式R的关键码。并说明理由。

解:R的关键码为ACD。因为从已知的F,只能推出ACD→ABCD。 4.7 设关系模式R(ABCD)上FD集为F,并且F={AB→C,C→D,D→A}。 ① 试从F求出所有非平凡的FD。

② 试求R的所有候选键。

③ 试求R的所有不是候选键的超键。

解:① 从已知的F可求出非平凡的FD有76个。

譬如,左边是C的FD有6个:C→A,C→D,C→AD,C→AC,C→CD,C→ACD。 左边是D的FD有2个:D→A,D→AD。

左边是AB的FD有12个:AB→C,AB→D,AB→CD,AB→AC,……。 感兴趣的读者可以自行把这76个FD写齐。

② 候选键是能函数决定所有属性的不含多余属性的属性集。根据这个概念可求出R的候选键有三个:AB、BC和BD。

③ R的所有不是候选键的超键有四个:ABC、ABD、BCD和ABCD。 4.8 试举出反例说明下列规则不成立:

① { A→B }?{ B→A }

② { AB→C,A→C }?{ B→C } ③ { AB→C }?{ A→C }

答:设有三个关系:

r1 A B r2 A B C r3 A B C 1 1 2 1 2 1 2 3 2 1 2 2 2 1 3 4 3 2 3

(1)在关系r1中,A→B成立,但B→A不成立。

(2)在关系r2中,AB→C和A→C成立,但B→C不成立

(3)在关系r3中,AB→C成立,但A→C不成立。 4.9 设关系模式R(ABCD),F是R上成立的FD集,F={A→B,B→C},

① 试写出属性集BD的闭包(BD)+。

② 试写出所有左部是B的函数依赖(即形为“B→?”)。 解:①从已知的F,可推出BD→BCD,所以(BD)+=BCD。

②由于B+=BC,因此左部是B的FD有四个: B→φ,B→B,B→C,B→BC。

4.10 设关系模式R(ABCDE)上FD集为F,并且F={A→BC,CD→E,B→D,E→A}。

① 试求R的候选键。 ② 试求B+的值。

解:① R的候选键有四个:A、E、CD和BC。

② B+=BD。

4.11 设有关系模式R(ABC),其关系r如图4.1所示。

① 试判断下列三个FD在关系r中是否成立?

A→B BC→A B→A

② 根据关系r,你能断定哪些FD在关系模式R上不成立?

A B C 1 2 3 4 2 3 5 3 3 图4.1 解:①在关系r中,A→B成立,BC→A不成立,B→A不成立。

②在关系r中,不成立的FD有:B→A,C→A,C→B,C→AB,BC→A。 4.12 设关系模式R(ABC)分解成ρ={ AB,BC },如果R上的FD集F={ A→B },那么这个分解是损失分解。试举出R的一个关系r,不满足mρ(r)=r。 解:这个反例r可以举测试时的初始表格: A B C AB a1 a2 b13 BC b21 a2 a3

π

AB(r)?πBC(r)有四个元组:

A B C

a1 a2 b13 a1 a2 a3 b21 a2 b13 b21 a2 a3

即mρ(r)≠r。

4.13 试解释数据库“丢失信息”与“未丢失信息”两个概念。“丢失信息”与“丢失数据”

有什么区别?

答:数据库中丢失信息是指r≠mρ(r),未丢失信息是指r=mρ(r)。 丢失信息是指不能辨别元组的真伪,而丢失数据是指丢失元组。 4.14 设关系模式R(ABC),F是R上成立的FD集,F={ A→C,B→C },试分别求F在

模式AB和AC上的投影。

答:πAB(F)=φ(即不存在非平凡的FD) πAC(F)={ A→C } 4.15 设关系模式R(ABC),F是R上成立的FD集,F={ B→A,C→A },ρ={ AB,

BC }是R上的一个分解,那么分解ρ是否保持FD集F?并说明理由。 答:已知F={ B→A,C→A },而πAB(F)={ B→A },πBC(F)=φ, 显然,分解ρ丢失了FD C→A。 4.16 设关系模式R(ABC),F是R上成立的FD集,F={ B→C,C→A },那么分解ρ=

{ AB,AC }相对于F,是否无损分解和保持FD?并说明理由。 答:①已知F={ B→C,C→A },

而πAB(F)=φ,πAC(F)={ C→A } 显然,这个分解丢失了FD B→C

② 用测试过程可以知道,ρ相对于F是损失分解。

4.17 设关系模式R(ABCDEG)上FD集为F,并且F={D→G,C→A,CD→E,A→B}。

① 求D+,C+,A+,(CD)+,(AD)+,(AC)+,(ACD)+。 ② 试求R的所有候选键。

③ 用ρ1={CDEG,ABC}替换R,这个分解有什么冗余和异常现象? ④ 用ρ2={DG,AC,CDE,AB}替换R,这个分解是无损分解吗?

⑤ 用ρ3={CDE,AC,DG,BCD}替换R,先求F在ρ3的每个模式上的投影πRi(F),再判断分解ρ3保持FD吗?

解:① D+=DG,C+=ABC,A+=AB,(CD)+=ABCDEG,(AD)+=ABDG,(AC)+=ABC,(ACD)+=ABCDEG。

② R的候选键只有一个:CD。

③ 用ρ1={CDEG,ABC}替换R,在模式CDEG中,有局部依赖CD→G,此时在关系中,一个D值只有一个G值,但当这个D值与10个C值对应时,就要出现10个元组,则G值就要重复10次。

在模式ABC中,有传递依赖(C→A和A→B),此时在关系中,一个A值只有一个B值,但当这个A值与10个C值对应时,就要出现10个元组,则B值就要重复10次。

④ 用ρ2={DG,AC,CDE,AB}替换R,据chase过程可知,相对于F,R分解成ρ是无损分解。

⑤ 用ρ3={CDE,AC,DG,BCD}替换R, 则F在模式CDE上的投影为{CD→E},F在模式AC上的投影为{C→A}, F在模式DG上的投影为{D→G},F在模式BCD上的投影为{C→B},

显然从这四个投影集中的FD推不出原来F中的A→B,因此分解ρ3不保持FD集。 4.18 设关系模式R(ABCD),F是R上成立的FD集,F={ A→B,B→C,A→D,D→C },

ρ={ AB,AC,BD }是R的一个分解。 ① 相对于F,ρ是无损分解吗?为什么? ② 试求F在ρ的每个模式上的投影。 ③ ρ保持F吗?为什么?

答:①用测试过程可以知道,ρ相对于F是损失分解。

②πAB(F)={ A→B },πAC(F)={ A→C },πBD(F)=φ。

③显然,分解ρ不保持FD集F,丢失了B→C、A→D和D→C等三个FD。 4.19 设关系模式R(ABCD),R上的FD集F={ A→C,D→C,BD→A},试说明ρ={ AB,

ACD,BCD }相对于F是损失分解的理由。

答:据已知的F集,不可能把初始表格修改为有一个全a行的表格,因此ρ相对于F是损失分解。

4.20设关系模式R(ABCD)上FD集为F,并且F={A→B,B→C,D→B}。 ① R分解成ρ={ACD,BD},试求F在ACD和BD上的投影。

② ACD和BD是BCNF吗?如不是,试分解成BCNF。 解:① F在模式ACD上的投影为{A→C,D→C},F在模式BD上的投影为{D→B}。

② 由于模式ACD的关键码是AD,因此显然模式ACD不是BCNF。模式ACD应分解成{AC,AD}或{CD,AD}。但是这个分解不保持FD,丢失了FD D→C或A→C。

另外,模式BD已是BCNF。

4.21设关系模式R(ABCD),ρ={AB,BC,CD}是R的一个分解。设F1={A→B,B→C},F2=

{B→C,C→D}。

① 如果F1是R上的FD集,此时ρ是否无损分解?若不是,试举出反例。

② 如果F2是R上的FD集呢?

解:① 据chase过程可知,相对于F1,R分解成ρ是损失分解。 据构造初始表的规则,这个反例可以是下面的表格: r A B C D 1 1 0 0 0 1 1 0 0 0 1 1

对于这个r而言,显然r≠ mρ(r)。

② 据chase过程可知,相对于F2,R分解成ρ是无损分解。 4.22 设关系模式R(ABCD),F是R上成立的FD集,F={ AB→CD,A→D }。

① 试说明R不是2NF模式的理由。 ② 试把R分解成2NF模式集。

答:①从已知FD集F,可知R的候选键是AB。

另外,AB→D是一个局部依赖,因此R不是2NF模式。 ②此时R应分解成ρ={ AD,ABC },ρ是2NF模式集。 4.23 设关系模式R(ABC),F是R上成立的FD集,F={ C→B,B→A }。

① 试说明R不是3NF模式的理由。 ② 试把R分解成3NF模式集。

答:①从已知FD集F,可知R的候选键是C。

从C→B和B→A,可知C→A是一个传递依赖,因此R不是3NF模式。 ②此时R应分解成ρ={ CB,BA },ρ是3NF模式集。

4.24 设有关系模式R(职工编号,日期,日营业额,部门名,部门经理),该模式统计商店

里每个职工的日营业额,以及职工所在的部门和经理信息。

如果规定:每个职工每天只有一个营业额;每个职工只在一个部门工作;每个部门只有一个经理。

试回答下列问题:

(1)根据上述规定,写出模式R的基本FD和关键码; (2)说明R不是2NF的理由,并把R分解成2NF模式集; (3)进而分解成3NF模式集。 解:(1)基本的FD有三个: (职工编号,日期)→ 日营业额 职工编号 → 部门名 部门名 → 部门经理 R的关键码为(职工编号,日期)。 (2)R中有两个这样的FD: (职工编号,日期)→(部门名,部门经理) 职工编号 → (部门名,部门经理)

可见前一个FD是局部依赖,所以R不是2NF模式。

R应分解成R1(职工编号,部门名,部门经理) R2(职工编号,日期,日营业额)

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4