第六章作业和总结

X ← Y X \leftarrow Y XY X → Y X \rightarrow Y XY
X ↚ Y X \nleftarrow Y XY X ↛ Y X \nrightarrow Y XY
X ↚ Y X \not\leftarrow Y XY X ↛ Y X \not\rightarrow Y XY
X → F Y X \overset F \rightarrow Y XFY X ⟶ F Y X \overset F \longrightarrow Y XFY
X → P Y X \overset P \rightarrow Y XPY X ⟶ P Y X \overset P \longrightarrow Y XPY
X → 传 递 Y X \overset {传递} \rightarrow Y XY X ⟶ 传 递 Y X \overset {传递} \longrightarrow Y XY
( S n o , C n o ) → F G r a d e (Sno,Cno) \overset F \rightarrow Grade (Sno,Cno)FGrade
X ⟶ F Y X \stackrel {F} {\longrightarrow} Y XFY

$X \leftarrow Y$ $X \rightarrow Y$ 
$X \nleftarrow Y$ $X \nrightarrow Y$
$X \not\leftarrow Y$ $X  \not\rightarrow Y$
$X \overset F \rightarrow Y$ $X \overset F \longrightarrow Y$
$X \overset P \rightarrow Y$  $X \overset P \longrightarrow Y$
$X \overset {传递} \rightarrow Y$ $X \overset {传递} \longrightarrow Y$
$(Sno,Cno) \overset F \rightarrow Grade$
$X \stackrel {F} {\longrightarrow} Y$



X ⊂ Y X \subset Y XY X ⊃ Y X \supset Y XY X ⊄ Y X \not\subset Y XY X ⊅ Y X \not\supset Y XY
X ⊆ Y X \subseteq Y XY X ⊇ Y X \supseteq Y XY X ⊈ Y X \nsubseteq Y XY X ⊉ Y X \nsupseteq Y XY

$X \subset Y$ $X \supset Y$ $X \not\subset Y$ $X \not\supset Y$
$X \subseteq Y$ $X \supseteq Y$ $X \nsubseteq Y$ $X \nsupseteq Y$



解题步骤:
1.候选码
2.非主属性
3. ⟶ F \overset F \longrightarrow F
4. ⟶ 传 递 \overset {传递} \longrightarrow

一.
Y(X1,X2,X3,X4)
(X1,X2)→X3
X2→X4
侯选码?
属于第几范式?

候选码: (X1,X2)

非主属性:X3,X4

( X 1 , X 2 ) ⟶ P X 4 (X1,X2)\overset P \longrightarrow X4 (X1,X2)PX4,存在非主属性X4对候选码(X1,X2)的部分函数依赖,所以不属于2NF。

得到Y属于第一范式。

二.
R(A,B,C,D)
F={AB→D,AC→BD,B→C}
侯选码?
最高属于第几范式?

候选码:(A,B),(A,C)
非主属性:D

不属于BCNF 因为B→C,B不包含码
属于3NF,因为D没有部分依赖或传递依赖于码

三.
R(X,Y,Z,W)
F={Y←→W,XY→Z}
侯选码?
最高属于第几范式?

XY→X,XY→Y,XY→Z,Y→W,XY→W 所以 XY是key

WX→X,WX→W,W→Y,XW→XY,XY→Z,XW→Z,WX→W,W→Y,WX→Y 所以WX是key

候选码:(X,Y),(W,X)

非主属性:Z

是2NF,因为Z完全依赖于码(非主属性只有Z)
是3NF,因为Z没有传递依赖于码
不是BCNF W→Y,决定者不包含key
所以最高为3NF

四.
R(A,B,C,D,E) F={A→B,CE→A,E→D}
1 求候选码
2 最高属于第几范式,为什么?
3 分解到3NF

解:
1 候选码:(C,E)
2 最高属于1NF
CE→E,CE→D,E→D 非主属性E对CE存在部分函数依赖
3 首先分解到2NF
R1(A,B,C,E),R2(D,E)
因为 CE→A,A∕→CE,A→B ,存在非码对码的传递函数依赖
所以不属于3NF
分解为:R1(A,C,E),R2(A,B),R3(D,E)

五.
R(商店编号,商品编号,数量,部门编号,负责人)
每个商店的每种商品只在一个部门销售,
每个商店的每个部门只有一个负责人
每个商店的每种商品只有一个库存数量
1 求候选码
2 R已达第几范式?为什么?
3 若不属于3NF,分解成3NF

解:
1 候选码:(商店编号,商品编号)
2 R已达2NF
负责人(非码)对码存在传递函数依赖
(商店编号,商品编号)→(商店编号,部门编号)
(商店编号,部门编号) →负责人
3 分解成3NF
R1(商店编号,商品编号,数量,部门编号)
R2(商店编号,部门编号,负责人)

六.
R(A,B,C,D,E,F) F={A→C,AB→D,C→E,D→BF}
1 写出关键字
2 分解到2NF
3 分解到3NF
4 分解到BCNF

解:
1 关键字:(A,B),(A,D)
2 分解到2NF
AB→A,A→C 所以 AB→C,A→C 部分函数依赖
AD→F,D→F也是部分函数依赖
因此,分解为:R1(A,B,D),R2(A,C,E),R3(D,F)
------------------E由C确定,所以放到R2
3 A→C,C\→A,C→E 传递依赖
分为 (A,C),(C,E)
因此R1(A,B,D),R2(A,C),R3(C,E),R4(D,F)
4 D→B,D不包含码
R1 分解成 (A,D),(D,B)
因此 R1(A,B),R2(B,D),R3(A,C),R4(C,E),R5(D,F)



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

有关语义如下:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生。一个系的学生住在同一宿舍区。每个学生可参加若干学会,每个学会有若干学生。学生参加某学会有一个入会年份。
请给出关系模式,写出每个关系模式的极小函数依赖集,指出是否存在传递函数依赖,对于函数依赖左部是多属性的情况,讨论函数依赖是完全函数依赖还是部分函数依赖。
指出各关系的候选码、外部码,并说明是否全码存在。

(1)关系模式如下:
学生:S(Sno, Sname, Sbirth,Dept, Class,Rno)
班级: C(Class,Pname,Dept,Cnum, Cyear)
系:D(Dept.,Dno, Office, Dnum)
学会:M(Mname, Myear, Maddr,Mnum)

(2)每个关系模式的最小函数依赖集如下:

①学生S(Sno, Sname, Sbirth,Dept, Class, Rno)的最小函数依赖集如下:
Sno->Sname,Sno->Sbirth,Sno->Class,Class->Dept,Dept->Rno

传递依赖如下

由于Sno→Dept,而Dept→Sno,Dept→Rno(宿舍区),所以Sno与Rno之间存在着函数依赖;由于 Class->Dept, Dept->Class,Dept->Rno,所以Class与Rno之间存在着传递函数依赖;由于 Sno->Class,Class->Sno ,Class->Dept,所以Sno与Dept之间存在着传递函数依赖。

②班级C( Class, Pname,Dept,Cnum, Cyear)的最小函数依赖集如下:
Class->Pname, Class->Cnum, Class->Cyear, Pname->Dept。

由于 Class->Pname ,Pname->Class, Pname->Dept,所以 Class与Dept之间存在着传递函数依赖。

③系D(Dept,Dno,Office,Dnum)的最小函数依赖集如下:
Dept→Dno,Dno→Dept,Dno->Office, Dno-Dnum
Dept与 Office,Dept与Dnum之间不存在传递依赖。

④学会M (Mname, Myear, Maddr,Mnum)的最小函数依赖集如下:
Mname->Myear, Mname->Maddr Mname->Mnum。该模式不存在传递依赖。

(3)各关系模式的候选码、外部码,全码如下:

①学生候选码:Sno; 外部码:Dept、 Classt;无全码
②班级C候选码: Class; 外部码:Dept;无全码
③系D候选码:Dep或Dno; 无外部码; 无全码
④学会M候选码: Mname;无外部码;无全码


6.有关系模式R(AB,C,D,回答下面各个问题:
(1)若A是R的候选码有函数依赖BCDE,那么在什么条件下R是BCNF?
(2)如果存在函数依赖BC→D,DE→A,列出R的所有码。
(3)如果存在函数依赖DDE-AR属于3NF还是BCNF。

(1)BC->A

(2)
LR=(A,B,D),L=(C,E),R=(空),N=(空)
(CE)+ =CE,(ACE)+ =ABCE,(BCE)+ =BCDE,(CDE)+ =ABCDE=U,所以R的码为CDE。

(3)
都不属于。因为 C D E → P A CDE \overset P \rightarrow A CDEPA,所以R不属于2DF,CDE->A,A->B,R不属于3NF,BC->D不含码,R不属于BCNF。

7.下面的结论哪些是正确的?哪些是错误的?对于错误的请给出元个反例说之。
(1)任何一个二目关系是属于3NF的。
(2)任何元个二关系是属于BCNF的。
(3)任何目关系是属于4NF的。
(4)当且仅当函数依赖A->B在R上成立,关系R(A,B,C)等于其投影R1(A,B)和R2(A,C)的连接。
(5)若R.A->R.B,R.B->R.C,则R.A->R.C。
(6)若R.A->R.B,R.A->R.C则RA->R.(B,C)。
(7)若R.B->R.A,则R.(B,C)->R.A。
(8)若R.(B,C)->R.A,则R.B->R.A,R.C->R.A。

(1)正确,因为关系模式中只有两个属性,所以无传递。

(2)正确,按BCNF的定义,若X→Y,且Y不是X的子集时,每个决定因素都包含码,对于二目关系决定因素必然包含码。

(3)正确,因为只有两个属性,所以无非平凡的多值依赖。

(4)错误,当A→B在R上成立,关系R(A,B,C)等于其投影R1(A,B)和R2(A,C)的连接。反之则不然。正确的是当且仅当函数依赖A→→B在R上成立,关系R(A,B,C)等于其投影R1(A,B)和R2(A,C)的连接。

(5)正确
(6)正确
(7)正确
(8)错误,反例关系模式SC(S,C,G),(S,C)->G


8.证明:
(1)如果R是BCNF关系模式,则R是3NF关系模式,反之则不然。
(2)如果R是3NF关系模式,则R一定是2NF关系模式。

证明:
(1)用反证法:设R是一个BCNF,但不是3NF,则必存在非主属性A和候选码x以及属性集y,使得x→y,y→A,其中A→x,A→y,y→x不在函数依赖中,这就是说y不可能包含R的码,但y→却成立。根据BCNF定义,R不是BCNF,与题设矛盾,所以一个BCF范式必是3NF。

(2)反证法:假设R中非主属性A部分依赖于关键字K,则存在K’是K的子集,使得K’->A,因K’是K的子集有K->K’,但 K ′ ↛ K K' \nrightarrow K KK,于是有K→K’, K ′ ↛ K K' \nrightarrow K KK K ′ → A K' \rightarrow A KA并且A不属于K,因而A传递以来于K,即R不属于3NF与已知矛盾,所以一个3NF一定是2NF



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

2NF:若关系模式R∈1NF,并且每一个非主属性都完全函数依赖于任何一个候选码,则R∈2NF

3NF:设关系模式R<U,F>∈1NF,若R中不存在这样的码X、属性组Y及非主属性Z (Y⊇ Z), 使得X→Y,Y→Z成立,Y ↛ X不成立,
则称R<U,F> ∈ 3NF。

BCNF:设关系模式R<U,F>∈1NF,若X →Y且Y ⊆ X时X必含有码,则R<U,F>∈BCNF。
换言之,在关系模式R<U,F>中,如果每一个决定属性集都包含候选码,则R∈BCNF。

多值依赖:设R(U)是属性集U上的一个关系模式。X,Y,Z是U的子集,并且Z=U-X-Y。关系模式R(U)中多值依赖X→→Y成立,当且仅当对R(U)的任一关系r,给定的一对(x,z)值,有一组Y的值,这组值仅仅决定于x值而与z值无关。

4NF:关系模式R<U,F>∈1NF,如果对于R的每个非平凡多值依赖X→→Y(Y ⊈ X),X都含有码,则R<U,F>∈4NF。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值