您的当前位置:首页关系数据库规范化理论复习题

关系数据库规范化理论复习题

2022-12-31 来源:飒榕旅游知识分享网
第7章 关系规范化理论

一、单项选择题

1.关系规范化中的删除操作异常是指 ① ,插入操作异常是指 ② 。 A.不该删除的数据被删除 B.不该插入的数据被插入 C.应该删除的数据未被删除 D.应该插入的数据未被插入 答案:①A ②D

2.设计性能较优的关系模式称为规范化,规范化主要的理论依据是 。 A.关系规范化理论 B.关系运算理论 C.关系代数理论 D.数理逻辑 答案:A

3.规范化理论是关系数据库进行逻辑设计的理论依据。根据这个理论,关系数据库中的关系必须满足:其每一属性都是 。 A.互不相关的 B.不可分解的 C.长度可变的 D.互相关联的 答案:B

4.关系数据库规范化是为解决关系数据库中 问题而引入的。 A.插入、删除和数据冗余 B.提高查询速度

C.减少数据操作的复杂性 D.保证数据的安全性和完整性 答案:A 5.规范化过程主要为克服数据库逻辑结构中的插入异常,删除异常以及 的缺陷。 A.数据的不一致性 B.结构不合理 C.冗余度大 D.数据丢失 答案:C

6.当关系模式R(A,B)已属于3NF,下列说法中 是正确的。 A.它一定消除了插入和删除异常 B.仍存在一定的插入和删除异常 C.一定属于BCNF D.A和C都是

答案:B

7. 关系模式1NF是指_________。

A. 不存在传递依赖现象 B. 不存在部分依赖现象 C.不存在非主属性 D. 不存在组合属性 答案:D

8. 关系模式中2NF是指_______。

A.满足1NF且不存在非主属性对关键字的传递依赖现象 B.满足1NF且不存在非主属性对关键字部分依赖现象 C.满足1NF且不存在非主属性 D.满足1NF且不存在组合属性 答案:B

9. 关系模式中3NF是指___________。

A.满足2NF且不存在非主属性对关键字的传递依赖现象 B.满足2NF且不存在非主属性对关键字部分依赖现象 C.满足2NF且不存在非主属性 D.满足2NF且不存在组合属性 答案:A

10.关系模型中的关系模式至少是 。

A.1NF B.2NF C.3NF D.BCNF 答案:A

11.关系模式中,满足2NF的模式, 。 A.可能是1NF B.必定是1NF C.必定是3NF D.必定是BCNF 答案:B

12.X→Y为平凡函数依赖是指__________。 A.X13.若关系模式R∈1NF,且R中若存在X→Y,则X必含关键字,称该模式_______。 A.满足3NF B.满足BCNF C.满足2NF D.满足1NF 答案:B

14.在关系模式中,如果属性A和B存在1对1的联系,则说 。 A.A→B B.B→A C.A←→B D.以上都不是 答案:C

15.候选关键字中的属性称为 。

A.非主属性 B.主属性 C.复合属性 D.关键属性 答案:B

16.关系模式中各级模式之间的关系为 。 A.3NF?2NF?1NF B.3NF?1NF?2NF C.1NF?2NF?3NF D.2NF?lNF?3NF 答案:A

17.消除了部分函数依赖的1NF的关系模式,必定是 。 A.1NF B.2NF C.3NF D.BCNF 答案:B

18.关系模式的候选关键字可以有 ① ,主关键字有 ② 。 A.0个 B.1个 C.1个或多个 D.多个 答案:①C ②B

19.候选关键字中的属性可以有 。

A.0个 B.1个 C.1个或多个 D.多个 答案:C

20.关系模式的分解 。 A.惟一 B.不惟一 答案:B

21.什么样的关系模式是严格好的关系模式________。

A.优化级别最高的关系模式 B.优化级别最高的关系模式 C.符合3NF要求的关系模式 D.视具体情况而定 答案:D

22.按照规范化设计要求,通常以关系模式符合______为标准。 A.1NF B.2NF C.3NF D.BCNF 答案:C

23.设某关系模式S(SNO,CNO,G,TN,D),其中SNO表示学号,CNO表示课程号,G表示成绩,TN表示教师姓名,D表示系名。属性间的依赖关系为:

(SNO,CNO)→G,CNO→TN,TN→D。则该关系模式最高满足_______。 A.1NF B.2NF C.3NF D.BCNF 答案:A

24.设某关系模式S(SNO,CNO,G,TN,D),其属性的含义及属性间的依赖关系同23题,若将S分解为S1(SNO,CNO,G)、S2(CNO,TN)、S3(TN,D),则S1最高满足___①____、S2最高满足___②____、S3最高满足___③_____。 A.1NF B.2NF C.3NF D.BCNF 答案:①D ②D ③D

25.设某关系模式R(ABCD),函数依赖{B→D,AB→C},则R最高满足_______。 A.1NF B.2NF C.3NF D.BCNF

答案:A(AB为Key) 26.设某关系模式R(ABC),函数依赖{A→B,B→A,A→C},则R最高满足_______。 A.1NF B.2NF C.3NF D.BCNF 答案:C(A为Key) 27.设某关系模式R(ABC),函数依赖{A→B,B→A,C→A},则R最高满足_______。 A.1NF B.2NF C.3NF D.BCNF 答案:B(C为Key)

28.设某关系模式R(ABCD),函数依赖{A→C,D→B},则R最高满足_______。 A.1NF B.2NF C.3NF D.BCNF 答案:A(AD为Key)

29.设有关系模式W(C,P,S,G,T,R),其中各属性的含义是:C为课程,P为教师,S为学生,G为成绩,T为时间,R为教室,根据定义有如下函数依赖集: F={C→G,(S,C)→G,(T,R)→C,(T,P)→R,(T,S)→R}

关系模式W的一个关键字是 ① ,W的规范化程度最高达到 ② 。若将关系模式W分解为3个关系模式W1(C,P),W2(S,C,G),W3(S,T,R,C),则W1的规范化程度最高达到 ③ ,W2的规范化程度最高达到 ④ ,W3的规范化程度最高达到 ⑤ 。

①A.(S,C) B.(T,R) C.(T,P) D.(T,S) E.(T,S,P) ②③④⑤ A.1NF B.2NF C.3NF D.BCNF E.4NF

答案:①E ②B ③E ④E ⑤B

二、填空题

1.关系规范化的目的是 。

答案:控制冗余,避免插入和删除异常,从而增强数据库结构的稳定性和灵活性

2.在关系A(S,SN,D)和B(D,CN,NM中,A的主键是S,B的主键是D,则D在S中称为 。

答案:外码 3.对于非规范化的模式,经过 ① 转变为1NF,将1NF经过 ② 转变为2NF,将2NF经过 ③ 转变为3NF。 答案:①使属性域变为简单域

②消除非主属性对主关键字的部分依赖

③消除非主属性对主关键字的传递依赖

4.在一个关系R中,若每个数据项都是不可再分割的,那么R一定属于 。 答案:1NF

5.1NF,2NF,3NF之间,相互是一种 关系。 答案:3NF?2NF?1NF

6.若关系为1NF,且它的每一非主属性都 候选关键字,则该关系为2NF。 答案:不部分函数依赖于

7.在关系数据库的规范化理论中,在执行“分解”时,必须遵守规范化原则:保持原有的依赖关系和 。 答案:无损连接性

三.应用题

1.理解并给出下列术语的定义

函数依赖、部分函数依赖、完全函数依赖、传递函数依赖、候选码、主码、外码、全码、1NF、2NF、3NF、BCNF。 解:

定义1:设R(U)是属性集U上的关系模式。X,Y是属性集U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖于X,记作X?Y。(即只要X上的属性值相等,Y上的值一定

相等。)

术语和记号:

X?Y,但Y不是X的子集,则称X?Y是非平凡的函数依赖。若不特别声明,总是讨论非平凡的函数依赖。

X?Y,但Y是X的子集,则称X?Y是平凡的函数依赖。 若X?Y,则X叫做决定因子(Determinant)。 若X?Y,Y?X,则记作X??Y。

若Y不函数依赖于X,则记作X ? Y。

定义2:在R(U)中,如果 X?Y,并且对于X的任何一个真子集X’,都有X’ ? Y,则称Y

f

对X完全函数依赖,记作: X → Y。

p

若X?Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作:X →Y。

如果X→Y(非平凡函数依赖,并且Y—/→X)、Y→Z,则称Z传递函数依赖于X。

f

定义3:候选码:设K为R(U,F)中的属性或属性组,若K→U,则K为R候选码。(K为决定R全部属性值的最小属性组)。

主码:关系R(U,F)中可能有多个候选码,则选其中一个作为主码。 全码:整个属性组是码,称为全码(All-key) 。

主属性与非主属性:包含在任何一个候选码中的属性 ,称为主属性(Prime

attribute) 。不包含在任何码中的属性称为非主属性(Nonprime attribute)或非码属性(Non-key attribute)。

外码:关系模式 R 中属性或属性组X 并非 R的码,但 X 是另一个关系模式的码,

则称 X 是R 的外部码(Foreign key)也称外码。 定义4:若关系模式R的每一个分量是不可再分的数据项,则关系模式R属于第一范式(1NF)。 定义5:若关系模式R∈1NF,且每一个非主属性完全函数依赖于码,则关系模式R∈2NF 。(即1NF消除了非主属性对码的部分函数依赖则成为2NF)。 定义6:关系模式R 中若不存在这样的码X、属性组Y及非主属性Z(Z不是Y的子集)使得X?Y,Y ? X,Y ? Z成立,则称R∈3NF。

(若R∈3NF,则每一个非主属性既不部分依赖于码也不传递依赖于码。 ) 定义7:关系模式R∈1NF 。若X?Y且Y不是X的子集时,X必含有码,则R∈BCNF。

2.指出下列关系模式是第几范式?并说明理由。 (1) R(X,Y,Z) F={XY→Z} (2) R(x,Y,z)

F={Y→z,XZ→Y} (3) R(X,Y,Z)

F={Y→Z,Y→X,X→YZ} (4) R(x,Y,z)

F={X→Y,X→Z} (5) R(x,Y,Z) F={XY→Z} (6) R(W,X,Y,Z) F={X→Z,WX→Y} 解:

(1) R是BCNF。

R候选关键字为XY,F中只有一个函数依赖,而该函数依赖的左部包含了R的候选关键字XY。

(2) R是3NF。

R候选关键字为XY和XZ,R中所有属性都是主属性,不存在非主属性对的候选关键字的传递依赖。 (3) R是BCNF。

R候选关键字为X和Y,∵X→YZ,∴X→Y,X→Z,由于F中有Y→Z,Y→X,因此Z是直接函数依赖于X,而不是传递依赖于X。又∵F的每一函数依赖的左部都包含了任一候选关键字,∴R是BCNF。 (4) R是BCNF。

R的候选关键字为X,而且F中每一个函数依赖的左部都包含了候选关键字X。 (5) R是BCNF。

R的候选关键字为XY,而且F中函数依赖的左部包含了候选关键字XY。 (6) R是1NF。

R的候选关键字为WX,则Y,Z为非主属性,又由于X→Z,因此F中存在非主属性对候选关键字的部分函数依赖。

3.设有关系模式R(U,F),其中:

U={A,B,C,D,E,P},F={A→B,C→P,E→A,CE→D} 求出R的所有候选关键字。

解:根据候选关键字的定义:如果函数依赖X→U在R上成立,且不存在任何X’? X,使得X→U也成立,则称X是R的一个候选关键字。由此可知,候选关键字只可能由A,C,E组成,但有E→A,所以组成候选关键字的属性可能是CE。 计算可知:(CE)=ABCDEP,即CE→U

而:C=CP,E=ABE ∴R只有一个候选关键字CE。

+

++

补充知识:

在关系模式R中为F所逻辑蕴含的函数依赖的全体叫作 F的闭包,记为F。

+

设F为属性集U上的一组函数依赖,X ?U, XF ={ A|X→A能由F 根据Armstrong公理导出},+

XF称为属性集X关于函数依赖集F 的闭包。

Armstrong公理系统: A1.自反律(Reflexivity):若Y ? X ? U,则X →Y为F所蕴含。 A2.增广律(Augmentation):若X→Y为F所蕴含,且Z ? U,则XZ→YZ为F所蕴含。 A3.传递律(Transitivity):若X→Y及Y→Z为F所蕴含,则X→Z为F所蕴含。 根据A1,A2,A3这三条推理规则可以得到下面三条推理规则:

– 合并规则:由X→Y,X→Z,有X→YZ。

(A2, A3)

– 伪传递规则:由X→Y,WY→Z,有XW→Z。

(A2, A3)

– 分解规则:由X→Y及 Z?Y,有X→Z。

(A1, A3)

算法 求属性集X(X ? U)关于U上的函数依赖集F 的闭包XF+ 输入:X,F 步骤:

(1)令X(0)=X,i=0

(2)求B,这里B = { A |(? V)( ? W)(V→W?F∧V ? X(i)∧A? W)};

输出:XF+

+

(3)X(i+1)=B∪X(i) (4)判断X(i+1)= X (i)吗?

(5)若相等或X(i)=U , 则X(i)就是XF+ , 算法终止。 (6)若否,则 i=i+l,返回第(2)步。举例: 已知关系模式R,其中 U={A,B,C,D,E};

F={AB→C,B→D,C→E,EC→B,AC→B}。 求(AB)F 。 解 设X(0)=AB;

(1) 计算X(1),逐一扫描F集合中各函数依赖,找左部为A,B,或AB的函数依赖,得到

+两个: AB→C,B→D,于是 X(1)=AB∪CD=ABCD。

(2) X(0)≠X(1),所以再找出左部为ABCD子集的那些函数依赖,又得到 C→E,AC→B

X(2)=X(1)∪BE=ABCDE。

(3) X(2)=U,算法终止

所以:(AB)F+ =ABCDE。

4.设有关系模式R(C,T,S,N,G),其上的函数依赖集: F={C→T,CS→G,S→N} 求出R的所有候选关键字。

解:根据候选关键字的定义,R的候选关键字只可能由F中各个函数依赖的左边属性组成,即C,S,所以组成候选关键字的属性可能是CS。 计算可知:(CS)=CGNST,即CS→U

而:C=CT,S=NS

∴R只有一个候选关键字CS。

5.设有关系模式R(A,B,C,D,E),其上的函数依赖集: F={A→BC,CD→E,B→D,E→A} (1) 计算B。

(2) 求出R的所有候选关键字。 解:

++

++

(1) 令X={B},X(0)=B,X(1)=BD,X(2)=BD,故B=BD。 (2) 根据候选关键字定义,R的候选关键字只可能由F中各个函数依赖的左边属性组成,即A,B,C,D,E,由于A→BC(A→B,A→C),B→D,E→A,故: ·可除去A,B,C,D,∴组成候选关键字的属性可能是E。 计算可知:E=ABCDEE,即E→U,∴E是一个候选关键字。 ·可除去A,B,E,∴组成候选关键字的属性可能是CD。

计算可知:(CD)=ABCDE,即CD→U,但C=C,D=D,∴CD是一个候选关键字。 ·可除去B,C,D,E,∴组成候选关键字的属性可能是A。 计算可知:A=ABCDE,即A→U,∴A是一个候选关键字。 ·可除去A,D,E,∴组成候选关键字的属性可能是BC。

计算可知:(BC)=ABCDE,即CD→U,但B=BD,C=C,∴BC是一个候选关键字。

R的所有候选关键字是A,BC,CD,E。

6.设有关系模式R(U,F),其中:

U={A,B,C,D,E},F={A→D,E→D,D→B,BC→D,DC→A} (1) 求出R的候选关键字。

(2) 判断ρ={AB,AE,CE,BCD,AC}是否为无损连接分解? 解:

(1) (CE)=ABCDE,则CE→U,而C=C,E=DE=BDE,根据候选关键字定义,CE是R的候选关键字。

(2) ρ的无损连接性判断表如下表所示,由此判断不具有无损连接性。 Ri A B C D E AB AE CE BCD AC a1 a1 a1 a2 a2 a3 a3 a3 a4 a5 a5 +

+

+

+

+

+

+

+

+

+

+

7.设有关系模式R(A,B,C,D,E)及其上的函数依赖集F={A→C,B→D,C→D,DE→C,CE→A},试问分解ρ={R1(A,D),R2(A,B),R3(B,E),R4(C,D,E),R5(A,E)}是否为R的无损连接分解?

解:p的无损连接性判断结果表如下表所示,由此判断不具有无损连接性。

Ri A B C D E AD AB BE CDE AE a1 a1 a1 a2 a2 a3 a4 a4 a5 a5 a5

8.设有函数依赖集F={AB→CE,A→C,GP→B,EP→A,CDE→P,HB→P,D→HG,ABC→PG},计算属性集D关于F的闭包D。 解:令X={D},X(0)=D。

在F中找出左边是D子集的函数依赖,其结果是:D→HG,∴X(1)=X(0)HG=DGH, 显然有X(1)≠X(0)。

在F中找出左边是DGH子集的函数依赖,未找到,则X(2)=DGH。由于X(2)=X(1),

+

则:D=DOH

9.已知关系模式R的全部属性集U={A,B,C,D,E,G}及函数依赖集: F={AB→C,C→A,BC→D,ACD→B,D→EG,BE→C,CG→BD,CE→AG} 求属性集闭包(BD)。

解:令X={BD},X(0)=BD,X(1)=BDEG,X(2)=BCDEG,X(3)=ABCDEG,故(BD)=ABCDEG。 10.设有函数依赖集F={D→G,C→A,CD→E,A→B),计算闭包D,C,A,(CD),(AD),(AC),(ACD)。 解:

令X={D},X(0)=D,X(1)=DG,X(2)=DG,故D=DG。

令X={C},X(0)=C,X(1)=AC,X(2)=ABC,X(3)=ABC,故C=ABC。

令X={A},X(0)=A,X(1)=AB,X(2)=AB,故A=AB。

令X={CD},X(0)=CD,X(1)=CDG,X(2)=ACDG,X(3)=ACDEG,X(4)=ABCDEG,

故(CD)=ABCDEG。

令X={AD},X(0)=AD,X(1)=ABD,X(2)=ABDG,X(3)=ABDG,故(AD)=ABDG。 令X={AC},X(0)=AC,X(1)=ABC,X(2)=ABC,故(AC)=ABC。

令X={ACD},X(0)=ACD,X(1)=ABCD,X(2)=ABCDG,X(3)=ABCDEG,故(ACD)=ABCDEG。

11.设有函数依赖集F={AB→CE,A→C,GP→B,EP→A,CDE→P,HB→P,D→H,ABC→PG,求与F等价的最小函数依赖集。

解:(1) 将F中依赖右部属性单一化: AB→C HB→P AB→E D→H F1= A→C D→G GP→B ABC→P EP→A ABC→G CDE→P

(2) 对于AB→C,由于有A→C,则为多余的: AB→E HB→P A→C D→H F2= GP→B D→G EP→A ABC→P CDE→P ABC→G (3) 通过分析没有多余的依赖,则: AB→E HB→P A→C D→H F3= GP→B D→G EP→A ABC→P CDE→P ABC→G

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

补充知识:

如果函数依赖集F满足下列条件,则称F为一个极小函数依赖集。亦称为最小依赖集或最小覆盖。

(1) F中任一函数依赖的右部仅含有一个属性。

(2) F中不存在这样的函数依赖X→A,使得F与F-{X→A}等价。 (3) F中不存在这样的函数依赖X→A, X有真子集Z使得F-{X→A}∪{Z→A}与F等价。[例] 关系模式S,其中:

U={ Sno,Sdept,Mname,Cno,Grade },

F={ Sno→Sdept,Sdept→Mname,(Sno,Cno)→Grade } 设F’={Sno→Sdept,Sno→Mname,Sdept→Mname, (Sno,Cno)→Grade,(Sno,Sdept)→Sdept} F是最小覆盖,而F’不是。

因为:F ’ - {Sno→Mname}与F ’等价

F ’ - {(Sno,Sdept)→Sdept}也与F ’等价

定理:每一个函数依赖集F均等价于一个极小函数依赖集F。此F称为F的最小依赖集。

mm证明: 构造性证明,找出F的一个最小依赖集。

(1)逐一检查F中各函数依赖FDi:X→Y,若Y=A1A2 …Ak,k > 2, 则用 { X→Aj |j=1,2,…,

k} 来取代X→Y。

(2)逐一检查F中各函数依赖FDi:X→A,令G=F-{X→A}, 若A?XG+, 则从F中去掉此函数依赖。

(3)逐一取出F中各函数依赖FDi:X→A,设X=B1B2…Bm, 逐一考查Bi (i=l,2,…,m),若A ?(X-Bi )F+ , 则以X-Bi 取代X。

12.设有关系模式R(U,F),其中:

U={E,F,G,H},F={E→G,G→E,F→EG,H→EG,FH→E} 求F的最小依赖集。 解:

(1) 将F中依赖右部属性单一化:

F1={E→G,G→E,F→E,F→G,H→E,H→G,FH→E} (2) 对于FH→E,由于有F→E,则为多余的,则: F2={E→G,G→E,F→E,F→G,H→E,H→G}

(3) 由于E→G,所以在F2中的F→E和F→G以及H→E和H→G之一是多余的,则: F3={E→G,G→E,F→G,H→G} 或F3={E→G,G→E,F→G,H→E} 或F3={E→G,G→E,F→E,H→E}

或F3={E→G,G→E,F→E,H→G}

13.设有关系模式R(U,F),其中:

U={A,B,C,D},F={A→B,B→C,D→B},把R分解成BCNF模式集: (1) 如果首先把R分解成{ACD,BD},试求F在这两个模式上的投影。

(2) ACD和BD是BCNF吗?如果不是,请进一步分解。 解:

(1) ΠACD(F)={A→C,D→C} ΠBD(F)={D→B} (2) BD已是BCNF。

ACD不是BCNF。模式ACD的候选关键字是AD。考虑A→C,A不是模式ACD的候选关键字,所以这个函数依赖不满足BCNF条件。将ACD分解为AC和AD,此时AC和AD均为BCNF。

14.设有关系模式R(A,B,C,D),其上的函数依赖集: F={A→C,C→A,B→AC,D→AC}

(1) 计算(AD)。

(2) 求F的最小等价依赖集Fm。 (3) 求R的关键字。

(4) 将R分解使其满足BCNF且无损连接性。

(5) 将R分解成满足3NF并具有无损连接性与保持依赖性。 解:

(1) 令X={AD},X(0)=AD,X(1)=ACD,X(2)=ACD,故(AD)=ACD。

(2) 将F中的函数依赖右部属性单一化: A→C C→A F1= B→A B→C D→A D→C 在Fl中去掉多余的函数依赖:

∵B→A,A→C ∴B→C是多余的。 又∵D→A,A→C ∴D→C是多余的。

A→C C→A F2=

B→A D→A 函数依赖集的最小集不是惟一的,本题中还可以有其他答案。

∵F2中所有依赖的左部却是单属性,∴不存在依赖左部有多余的属性 ∴ A→C C→A F=

B→A D→A

(3) ∵BD在F中所有函数依赖的右部均未出现

∴候选关键字中一定包含BD,而(BD)=ABCD,因此,BD是R惟一的候选关键字。 (4) 考虑A→C

∵AC不是BCNF(AC不包含候选关键字BD),将ABCD分解为AC和ABD。 AC已是BCNF,进一步分解ABD,选择B→A,把ABD分解为AB和BD。 此时AB和AD均为BCNF ∴ρ={AC,AB,BD}。

(5) 由(2)可求出满足3NF的具有依赖保持性的分解为ρ={AC,BD,DA}。

判断其无损连接性如下表所示,由此可知ρ不具有无损连接性。

Ri A B C D AC BA DA a1 a1 a1 a2 a3 a3 a3 a4 +

+

+

令ρ=ρ∪{BD},BD是R的候选关键字

∴p={AC,BA,DA,BD}。

15.己知关系模式R(CITY,ST,ZIP)和函数依赖集: F={(CITY,ST)→ZIP,ZIP→CITY} 试找出R的两个候选关键字。

解:设U=(CITY,ST,ZIP),F中函数依赖的左边是CITY,ST,ZIP: · 由于ZIP→CITY,去掉CITY,故(ST,ZIP)可能是候选关键字。 (ST,ZIP)={ST,ZIP,CITY},∴(ST,ZIP)→U。

又ST=ST,ZIP={ZIP,CITY},故(ST,ZIP)是一个候选关键字。

·由于(CITY,ST)→ZIP,去掉ZIP,故(CITY,ST)可能是候选关键字。 (CITY,ST)={CITY,ST,ZIP},∴(CITY,ST)→U。 又CITY=CITY,ST=ST,故(CITY,ST)是一个候选关键字。

因此,R的两个候选关键字是(ST,ZIP)和(CITY,ST)。

16.设有关系模式R(A,B,C,D,E),R的函数依赖集: F={A→D,E→D,D→B,BC→D,CD→A} (1) 求R的候选关键字。 (2) 将R分解为3NF。 解:

(1) 设U=(A,B,C,D,E),由于(CE)=ABCDE,C=C,E=BDE

∴R的候选关键字是CE。

(2) 求出最小依赖集F′={A→D,E→D,D→B,BC→D,CD→A} 将R分解的3NF:ρ={AD,DE,BD,BCD,ACD}。 17.设有关系模式R(U,V,W,X,Y,Z),其函数依赖集: F={U→V,W→z,Y→U,WY→X},现有下列分解: (1) ρl={WZ,VY,WXY,UV} (2) ρ2={UVY,WXYZ}

判断上述分解是否具有无损连接性。 解:

(1) ρ1的无损连接性判断表如下所示,由此判断ρ1不具有无损连接性。

Ri U V W X Y Z WZ VY WXY UV a1 a2 a2 a3 a3 a4 a5 a5 a6 a6 +

+

+

+

+

++

++

(2) ρ2的无损连接性判断表如下所示,由此判断ρ2具有无损连接性。

Ri U V W X Y Z UVY a1 a2 a2 a3 a4 a5 a5 a6 WXYZ a1

18.已知R(Al,A2,A3,A4,A5)为关系模式,其上函数依赖集:

F={Al→A3,A3→A4,A2→A3,A4A5→A3,A3A5→A1}

ρ={Rl(Al,A4),R2(A1,A2),R3(A2,A3),R4(A3,A4,A5),R5(Al,A5)} 判断ρ是否具有无损连接性。

解:ρ的无损连接性判断表如下所示,由此判断ρ不具有无损连接性。

Ri A1A4 A1A2 A2A3 A1A5 A1 a1 a1 a1 A2 a2 a2 A3 a3 a3 a3 a3 a3 A4 a4 a4 a4 a4 a4 5 a5 a5 A3A4A5 a1

19.设有关系模式R(B,O,I,S,Q,D},其上函数依赖集: F={S→D,I→B,IS→Q,B→O}

如果用SD,IB,ISQ,BO代替R,这样的分解是具有无损连接吗? 解:ρ={Rl(S,D),R2(I,B),R3(I,S,Q),R4(B,O) }

ρ的无损连接性判断表如下所示,由此判断ρ具有无损连接性。 Ri B O I S Q D SD IB ISQ BO a1 a1 a1 a2 a2 a3 a3 a4 a4 a5 a5 a6 a6

20.设有关系模式R(F,G,H,I,J),R的函数依赖集:

F={F→I,J→I,I→G,GH→I,IH→F} (1) 求出R的所有候选关键字。

(2) 判断ρ={FG,FJ,JH,IGH,FH}是否为无损连接分解? (3) 将R分解为3NF,并具有无损连接性和依赖保持性。 解:

(1) 从F中看出,候选关键字中至少包含J和H(因为它们不依赖于谁),计算:

令X={JH},X(0)=JH,X(1)=IJH,X(2)=GIJH,X(3)=FGIJH ∴候选关键字只有JH。

(2) ρ的无损连接性判断表如下所示,由此判断ρ不具有无损连接性。

Ri F G H I J FG FJ JH IGH FH a1 a1 a1 a2 a2 a3 a3 a3 a3 a4 a4 a5 a5

(3) 求出最小依赖集F′={F→I,J→I,I→Gl GH→I,IH→F} ∴满足3NF且具有依赖保持性的分解为: ρ={FI,JI,IG,GHI,IHE}

ρ的无损连接性判断结果如下所示,由此判断ρ不具有无损连接性。

Ri F G H I J FI JI IG GHI IHE a1 a1 a1 a2 a2 a2 a2 a2 a3 a3 a4 a4 a4 a4 a4 a5 a5

令ρ=ρ∪{JH},JH是R的候选关键字。

∴ρ={FI,JI,IG,GHI,IHF,JH}具有无损连接性和依赖保持性

21.设有关系模式R(A,B,C,D,E),其上的函数依赖集: F={A→C,C→D,B→C,DE→C,CE→A} (1) 求R的所有候选关键字。

(2) 判断ρ={AD,AB,BC,CDE,AE}是否为无损连接分解? (3) 将R分解为BCNF,并具有无损连接性。 解:

(1) 从F中看,候选关键字至少包含BE(因为它们不依赖于谁),而(BE)=ABCDE

∴BE是R的惟一候选关键字。

(2) ρ的无损连接性判断结果如下所示,由此判定ρ不具有无损连接性。

Ri AD AB BC CDE AE A a1 a1 a1 a1 B a2 a2 C a3 a3 a3 a3 a3 D a4 a4 a4 a4 a4 E a5 a5 +

(3) 考虑A→C

∵AC不是BCNF(AC不包含候选关键字BE) 将ABCDE分解为AC和ABDE,AC已是BCNF。

进一步分解ABDE,选择B→D,把ABDE分解为BD和ABE,此时BD和ABE均为BCNF。

∴ρ={AC,BD,ABE}

22.设有一教学管理数据库,其属性为:学号(S#),课程号(C#),成绩(G),任课教师(TN),教师所在的系(D)。这些数据有下列语义:

·学号和课程号分别与其代表的学生和课程一一对应; ·一个学生所修的每门课程都有一个成绩;

·每门课程只有一位任课教师,但每位教师可以有多门课程; ·教师中没有重名,每个教师只属于一个系。 (1) 试根据上述语义确定函数依赖集。

(2) 如果用上面所有属性组成一个关系模式,那么该关系模式为何模式?并举例说明在进行增、删操作时的异常现象。

(3) 将其分解为具有依赖保持和无损连接的3NF。 解:

(1) F={(S#,C#)→G,C#→TN,TN→D} (2) 关系模式为1NF。

∵该关系模式的候选关键字为(S#,C#) 则非主属性有G、TN和G。

又∵F中有C#→TN

∴存在非主属性TN对候选关键字(S#,C#)的部分依赖

p

即:(S#,C#)—--→TN。

异常现象:

若新增设一门课程而暂时还没有学生选修时,则因缺少关键字S#值而不能进行插入操作。

若某个教师调离学校要删除其有关信息时,会将不该删除的课程(C#)信息删

除。

(3) ∵F=F′={(S#,C#)→G,C#→TN,TN→D} ∴ρ={R1,R2,R3} 其中:R1=(S#,C#,G) R2=(C#,TN)

R3=(TN,D)

23.证明在关系数据库中,任何的二元关系模式必定是BCNF。

证明:设R为一个二元关系R(x1,x2),则属性x1和x2之间可能存在以下几种依赖关系:

(1) x1→x2,但x2→x1,则关系R的候选关键字为x1,函数依赖的左部包含候选关键字x1,∴R为BCNF。 (2) x1→x2,x2→x1,则关系R的候选关键字为x1和x2,这两个函数依赖的左部都包含了R的任一候选关键,∴R为BCNF。

(3) xl?? x2,x2??x1,则关系R的候选关键字为(x1,x2),R上没有函数依赖,∴R为BCNF。

证毕。

24.如下给出的关系R为第几范式?是否存在操作异常?若存在,则将其分解为高一级范式。分解完成的高级范式中是否可以避免分解前关系中存在的操作异常? 工程号 材料号 数量 开工日期 完工日期 价格 P1 P1 P1 P2 P2 I1 I2 I3 I1 I4 4 6 15 6 18 250 300 180 250 350 解:

它为1NF。因为该关系的候选关键字为(工程号,材料号),而非主属性“开工日期”和“完工日期”部分函数依赖于候选关键字的子集“工程号”,即:

P

(工程号,材料号)——→开工日期 P

(工程号,材料号)——→完工日期 ∴它不是2NF。

它存在操作异常,如果工程项目确定后,若暂时未用到材料,则该工程的数据因缺少关键字的一部分(材料号)而不能进入到数据库中,出现插入异常。若某工程下马,则删去该工程的操作也可能丢失材料方面的信息。

将其中的部分函数依赖分解为一个独立的关系,则产生如下所示的两个2NF关系子模式:

R1

工程号 材料号 数量 价格 P1 P1 P1 P2 P2 I1 I2 I3 I1 I4 4 250 6 300 15 180 6 250 18 350 R2

工程号 开工日期 P1 P2 完工日期

分解后,新工程确定后,尽管还未用到材料,该工程数据可在关系R2中插入。某工程数据删除时,仅对关系R2操作,也不会丢失材料方面的信息。

25.试证明:一个BCNF范式必是3NF。 证明:用反证法。

设R是一个BCNF,但不是3NF。

则必存在非主属性A和候选关键字X以及属性集Y,使得X?Y,Y?A,其中A?X,A?Y,Y?X∈F,这就是说Y不可能包含R的关键字,但Y?A却成立。

根据BCNF定义,R不是BCNF,与题设矛盾,所以一个BCNF范式是3NF。

26.教材P108 2、3、4题

27.建立一个关于系、学生、班级、社团等信息的关系数据库。 描述学生的属性有:学号、姓名、出生年月、系名、班号、宿舍区。 描述班级的属性有:班号、专业名、系名、人数、入校年份。 描述系的属性有:系名、系号、系办公室地点、人数。 描述社团的属性有:社团名、成立年份、地点、人数。

有关语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一个宿舍区。每个学生可参加若干社团,每个社团有若干学生。学生参加某社团有一个入会年份。

请给出关系模式,写出每个关系模式的函数依赖集,指出是否存在传递函数依赖。对于函数依赖左部是多属性的情况讨论函数依赖是完全函数依赖,还是部分函数依赖。 指出各关系的候选码、外码,有没有全码存在? 答:关系模式:

学生S(S#,SN,SB,DN,C#,SA) 班级C(C#,CS,DN,CNUM,CDATE) 系D(D#,DN,DA,DNUM)

社团P(PN,DATE1,PA,PNUM) 学生_社团SP(S#,PN,DATE2)

其中,S#→学号,SN→姓名,SB→出生年月,SA→宿舍区

C#→班号,CS→专业名,CNUM→班级人数,CDATE→入校年份 D#→系名,DN→系号,DA→系办公室地点,DNUM→系人数

PN→社团名,DATE1→成立年份,PA→地点,PNUM→社团人数 每个关系模式的函数依赖集:

S:S#→SN,S#→SB,S#→C#,C#→DN,DN→SA C:C#→CS,C#→CNUM,C#→CDATE,CS→DN,(CS,CDATE)→C# ( 因为每个专业每年只招一个班) D:D#→DN,DN→D#,D#→DA,D#→DNUM

( 按照实际情况,系名和系号是一一对应的) P:PN→DATE1,PN→PA,PN→PNUM SP:(S#,PN)→DATE2

+

S中存在传递函数依赖:S#→DN,S#→DA,C#→SA(因为S#→C#,C#→DN,DN→SA) C中存在传递函数依赖: C#→DN(因为C#→CS,CS→DN)

(S#,PN)→DATE2和(CS,CDATE)→C#均为SP中的函数依赖,是完全函数依赖 关系 候选码 外码 全码 S S# C#,DN 无 C C#,(CS,DATE) DN 无 D D#和DN 无 无 P PN 无 无 SP (S#,PN) S#,PN 无

因篇幅问题不能全部显示,请点此查看更多更全内容