范式
1NF:二维表每个分量必须是不可分开的数据项。
2NF:不存在不完全依赖
3NF:不存在传递依赖
BNCF:若
X
→
Y
X \rightarrow Y
X→Y且
Y
⊈
X
Y \nsubseteq X
Y⊈X时X必含有码。
高一级的范式必定包含低一级的范式。
第一题
Y(X1,X2,X3,X4)
(X1,X2)→X3
X2→X4
侯选码?
属于第几范式?
分析:
因为X2→X4,所以(X1,X2)→X4;
因为(X1,X2)→X3,所以(X1,X2)→(X1,X2,X3,X4)。
因此:候选码:(X1,X2);非主属性:X3,X4。
因为(X1,X2)→X4, X2→X4,存在非主属性X4对候选码(X1,X2)的部分函数依赖;
所以不属于2NF。
结论:候选码(X1,X2),属于第一范式。
第二题
R(A,B,C,D)
F={AB→D,AC→BD,B→C}
求侯选码?
最高属于第几范式?
分析:
通过观察可以直接发现
候选码:(A,B),(A,C)
非主属性:D
因为D没有部分依赖或传递依赖于码,所以属于3NF。
不属于BCNF 因为B→C,B不包含码。
第三题
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)(X,W);非主属性:Z
是2NF,因为Z完全依赖于码(非主属性只有Z)
是3NF,因为Z没有传递依赖于码
不是BCNF W→Y,决定者不包含key
所以最高为3NF
这道题目候选码是(X,W)刚开始还没有做出来,感觉主要是因为Y←→W这个条件写的不太明显,最好把这个条件拆开来写。
总结
判断时第几范式的前提是先要进行候选码的判断,进而判断出主属性和非主属性。再根据相关的范式条件进行判断,只要想办法举出反例就好了。
符号说明
X
←
Y
X \leftarrow Y
X←Y
X
→
Y
X \rightarrow Y
X→Y
X
↚
Y
X \nleftarrow Y
X↚Y
X
↛
Y
X \nrightarrow Y
X↛Y
X
↚
Y
X \not\leftarrow Y
X←Y
X
↛
Y
X \not\rightarrow Y
X→Y
X
→
F
Y
X \overset F \rightarrow Y
X→FY
X
⟶
F
Y
X \overset F \longrightarrow Y
X⟶FY
X
→
P
Y
X \overset P \rightarrow Y
X→PY
X
⟶
P
Y
X \overset P \longrightarrow Y
X⟶PY
X
→
传
递
Y
X \overset {传递} \rightarrow Y
X→传递Y
X
⟶
传
递
Y
X \overset {传递} \longrightarrow Y
X⟶传递Y
(
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
X⟶FY
X
⊂
Y
X \subset Y
X⊂Y
X
⊃
Y
X \supset Y
X⊃Y
X
⊄
Y
X \not\subset Y
X⊂Y
X
⊅
Y
X \not\supset Y
X⊃Y
X
⊆
Y
X \subseteq Y
X⊆Y
X
⊇
Y
X \supseteq Y
X⊇Y
X
⊈
Y
X \nsubseteq Y
X⊈Y
X
⊉
Y
X \nsupseteq Y
X⊉Y
$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 \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$