课本P182 eg.6.4
由题意可以得出
(
S
n
o
,
C
n
o
)
→
G
r
a
g
e
(Sno,Cno)\rightarrow Grage
(Sno,Cno)→Grage,
S
n
o
→
S
d
e
p
t
Sno \rightarrow Sdept
Sno→Sdept,
S
n
o
→
S
l
o
c
Sno \rightarrow Sloc
Sno→Sloc,
S
d
e
p
t
→
S
l
o
c
Sdept \rightarrow Sloc
Sdept→Sloc
1.求候选码
可以得出为(Sno,Cno)。
可以说是一个小规律吧:只出现在左边的一定在候选码里,只在右边出现的一定不是候选码。
2.非主属性:Sdept,Cno,Grade
3.找依赖关系
(
S
n
o
,
C
n
o
)
→
G
r
a
g
e
(Sno,Cno)\rightarrow Grage
(Sno,Cno)→Grage;
(
S
n
o
,
C
n
o
)
→
S
d
e
p
t
(Sno,Cno) \rightarrow Sdept
(Sno,Cno)→Sdept但是
S
n
o
→
S
d
e
p
t
Sno \rightarrow Sdept
Sno→Sdept,存在部分函数依赖
同理,
(
S
n
o
,
C
n
o
)
→
S
l
o
c
(Sno,Cno) \rightarrow Sloc
(Sno,Cno)→Sloc但是
S
n
o
→
S
l
o
c
Sno \rightarrow Sloc
Sno→Sloc,存在部分函数依赖
所以,最终S-L-C 是第一范式。
课本P184 eg.6.5
1.确定码为Cno。
2.非主属性:Cname和Pcno
3.由于候选码只有一个,所以不存在部分函数依赖关系;
而且,传递依赖关系也不成立,Cname与Pcno没有函数依赖关系,综上两点,可以确定为第三范式。
4.由于Cno为唯一的决定因素,所以为BCNF。
课本P184 eg.6.6
很明显,Sno和Sname分别可以决定剩余的所有。
1.候选码Sno,Sname
2.非主属性:Sage,Sdept
3.不存在部分函数依赖,同时也没有传递依赖(注意
S
n
a
m
e
→
S
n
o
Sname \rightarrow Sno
Sname→Sno且
S
n
o
→
S
n
a
m
e
Sno \rightarrow Sname
Sno→Sname,不满足函数依赖的条件)(其实是
S
n
a
m
e
→
s
n
o
Sname \rightarrow sno
Sname→sno和
S
n
o
→
s
n
a
m
e
Sno \rightarrow sname
Sno→sname)
4.可以确定Sno和Sname为决定因素,无其他决定因素,所以为BCNF。
课本P185 eg.6.7
1.候选码为(S,J),(J,P),两个都可以作为候选码
2.无主属性
3.无部分依赖和传递依赖的关系。可确定为第三范式。
4.除(S,J),(J,P)外无其他决定因素,所以为BCNF。
课本P185 eg.6.8
1.(S,J),(S,T)为候选码。
2.无主属性
3.无依赖关系,可确定为第三范式
4.由于
T
→
J
T \rightarrow J
T→J,T是决定因素,但T不包含码,所以不是BCNF。是第三范式
解决方案:
可分解为ST(S,T)和TJ(T,J),以T为中间枢纽,则两个均是BCNF。
总结:先找候选码,再确定非主属性,再判断函数依赖关系得出第几范式。
只在左侧出现的一定在候选码里,只在右侧出现的一定不是候选码。
补充习题:
一.
Y(X1,X2,X3,X4)
(X1,X2)→X3
X2→X4
侯选码?
属于第几范式?
解:
(1)候选码:(X1,X2)
(2)非主属性:X3,X4
(3)
(
X
1
,
X
2
)
→
X
3
(X1,X2) \rightarrow X3
(X1,X2)→X3成立,但是
(
X
1
,
X
2
)
→
X
4
(X1,X2) \rightarrow X4
(X1,X2)→X4,
X
2
→
X
4
X2 \rightarrow X4
X2→X4,存在部分函数依赖,所以属于1NF。
二.
R(A,B,C,D)
F={AB→D,AC→BD,B→C}
侯选码?
最高属于第几范式?
解:
(1)候选码:(A,B),(A,C)
(2)非主属性:D
(3)不存在部分函数依赖或传递函数依赖,为第三范式
(4)不属于BCNF,因为B→C,B不包含码
最高为3NF
【注】:候选码中一定有A,一定没有D,因为A只在左侧出现,D只在右侧出现。
三.
R(X,Y,Z,W)
F={Y←→W,XY→Z}
侯选码?
最高属于第几范式?
(1)候选码:(X,Y),(X,W)
(2)非主属性:Z
(3)只有Z,且Z完全依赖于码,是第二范式
(4)无传递函数依赖,是第三范式
(5)由于
W
→
Y
W \rightarrow Y
W→Y,但是W不含主码,所以不是BCNF
最高为3NF
四.
R(A,B,C,D,E) F={A→B,CE→A,E→D}
1 求候选码
2 最高属于第几范式,为什么?
3 分解到3NF
解:
(1)候选码:(C,E)
(2) 由于
(
C
,
E
)
→
D
(C,E) \rightarrow D
(C,E)→D,
E
→
D
E \rightarrow D
E→D ,存在部分函数依赖
所以最高属于1NF
(3)分解为2NF:
R1(A,B,C,E),R2(D,E)
因为 CE→A(且A∕→CE),A→B ,存在传递函数依赖
分解为:R1(A,C,E),R2(A,B),R3(D,E)
【注】:分解为3NF时,分解出
A
→
B
A \rightarrow B
A→B
五.
R(商店编号,商品编号,数量,部门编号,负责人)
每个商店的每种商品只在一个部门销售,
每个商店的每个部门只有一个负责人
每个商店的每种商品只有一个库存数量
1 求候选码
2 R已达第几范式?为什么?
3 若不属于3NF,分解成3NF
解:
(1)候选码:(商店编号,商品编号)
(2)R已经是2NF,不存在部分函数依赖
(商店编号,商品编号)→(商店编号,部门编号)(反之不成立)
(商店编号,部门编号) →负责人,所以存在传递函数依赖
(3)分解为3NF
由于对于每个商店,每个部门只有一个负责人,存在传递函数依赖,关键应该是(商店编号,
部
门
编
号
→
负
责
人
部门编号 \rightarrow 负责人
部门编号→负责人)
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)由于
A
B
→
A
AB \rightarrow A
AB→A,
A
→
C
A \rightarrow C
A→C
所以R1(A,C,E)(要把E放在R1,因为
C
→
E
C \rightarrow E
C→E)
A
D
→
F
AD \rightarrow F
AD→F,
D
→
F
D \rightarrow F
D→F
所以R2(D,F)
剩下的:R3(A,B,D)
R1(A,C,E),R2(D,F),R3(A,B,D)
(3)由于
A
→
C
A \rightarrow C
A→C,
C
→
E
C \rightarrow E
C→E存在传递函数依赖,所以将R1分为(A,C)和(C,E)
R1(A,C)R2(C,E),R3(D,F),R4(A,B,D)
(4)
D
→
B
D \rightarrow B
D→B,由于D不包含码,所以应使决定因素中无D
将(A,B,D)分为(A,B)(B,D)
R1(A,C)R2(C,E),R3(D,F),R4(A,B),R5(B,D)
LaTex公式
X
→
Y
X \rightarrow Y
X→Y
X
↛
Y
X \nrightarrow Y
X↛Y
X
↛
Y
X \not\rightarrow Y
X→Y
X
⟶
F
Y
X \overset F \longrightarrow Y
X⟶FY
X
⟶
P
Y
X \overset P \longrightarrow Y
X⟶PY
X
⟶
传
递
Y
X \overset {传递} \longrightarrow Y
X⟶传递Y
X
⟶
F
Y
X \stackrel {F} {\longrightarrow} Y
X⟶FY
$X \rightarrow Y$
$X \nrightarrow Y$
$X \not\rightarrow Y$
$X \overset F \longrightarrow Y$
$X \overset P \longrightarrow Y$
$X \overset {传递} \longrightarrow Y$
$X \stackrel {F} {\longrightarrow} Y$
如果需要向左的箭头,直接将right改为left即可
X
⊂
Y
X \subset Y
X⊂Y
X
⊄
Y
X \not\subset Y
X⊂Y
X
⊆
Y
X \subseteq Y
X⊆Y
X
⊈
Y
X \nsubseteq Y
X⊈Y
$X \subset Y$ $X \not\subset Y$
$X \subseteq Y$ $X \nsubseteq Y$
交换元素可以得到相反的结果。
总结:
掌握还不熟练,还需要多理解哇,函数依赖关系。补充习题的3~6题有难度哇。