这节课是练习一下表达式的运用,及课上例题的书写。
第一题
Y(X1,X2,X3,X4)
(X1,X2)→X3
X2→X4
侯选码?
属于第几范式?
问题1:结论:候选码:(X1,X2); 非主属性:X3,X4。
分析:因为 X → Y X \rightarrow Y X→Y,所以 ( X 1 , X 2 ) → X 4 (X1,X2) \rightarrow X4 (X1,X2)→X4;又因为 ( X 1 , X 2 ) → X 3 (X1,X2)→X3 (X1,X2)→X3,所以 ( X 1 , X 2 ) → ( X 1 , X 2 , X 3 , X 4 ) (X1,X2)→(X1,X2,X3,X4) (X1,X2)→(X1,X2,X3,X4),因此:候选码:(X1,X2);非主属性:X3,X4。
- 嗯,上面主要是候选码的选取de挑选,在元素比较少的时候进行挨个看还是比较容易的,但是一旦元素较多的话就比较头疼啦。
- 在挑选候选码的时候,首先进行一个元素的筛选,从一个元素到最多n个元素进行,首先 X 1 ↛ X 2 X1 \not\rightarrow X2 X1→X2,可以直接排除X1,同理 X 2 ↛ X 1 X2 \not\rightarrow X1 X2→X1,可以直接排除X2,同理X3,X4也一样排除掉。
- 然后再看两个元素结合的候选码的情况,根据上面分析中可以知道,(X1,X2)是候选码,(X1,X3)无法推出其他元素,同理其他两个元素组合起来的元素也无法推出其他元素。
- 我们已经推出有两个元素构成的候选码,所以也不用再去推理长度大于2的,大于2的肯定也有符合的,但那属于超码。
问题2:结论:候选码(X1,X2),属于第一范式。
因为(X1,X2)→X4, X2→X4,存在非主属性X4对候选码(X1,X2)的部分函数依赖;所以不属于第二范式。因而属于第一范式
- 简单总结一下,一般的都满足第一范式,若有决定元素不是属于候选码的情况下,则不属于第二范式,若有非主属性函数传递,则不属于第三范式。
- 若一般想要对更高范式转换,则需要对表进行拆开,再分成若干个表。
第二题
R(A,B,C,D)
F={AB→D,AC→BD,B→C}(相当于(a,b)→d…)
Q1;求侯选码
Q2;最高属于第几范式
Q1;
候选码:(A,B),(A,C)
非主属性:D
- 首先A无法推出B,直接排除。
- (A,B)可以推出 C 和 D,所以(A,B)是候选码同理(A,C)也可以推出B,D,所以(A,C)也是候选码,既然如此,我们没必要在分析包含(A,B)和(A,C)的三元素的候选码,所以只考虑(B,C,D)但是无法推出 A,所以它不是候选码。
Q2:属于3NF
因为非主属性只有 D,所以我们看 D 既不函数依赖,又不会函数传递,但是又因为B为决定元素但不是候选码,所以不是BCNF
这里需要注意的是,决定元素必须是在候选码以完整的形式存在。
第三题
R(X,Y,Z,W)
F={Y←→W,XY→Z}
Q1:求侯选码
Q2:最高属于第几范式
Q1:候选码:(x,y),(w,x)。
非主属性码;Z
- 同上面的分析过程一样,一个元素均无法推出其他剩余全部元素,所以直接考虑以两个元素为整体的候选码,首先(X,Y)可以推出 Z,又因为Y可以推出W,所以(X,Y)是候选码,同理(W,X)也是。
Q2:3NF
- 首先,Y←→W,但是Y和W都不是候选码,所以肯定不是BCNF。
- 其次非主属性 Z 而言不是部分函数依赖于候选码,说已符合第二范式。
- 对于非主属性 Z 来说只能由XY整体推出,所以也没有函数传递。所以属于第三范式而不是BCNF。
嗯,最后再对选候选码的简单来个总结,开始的时候,我们要对一个元素一个元素进行判断,其次二个元素,以此类推,但是一旦判断某一个集合为候选码,不是说就不用判断所有更多元素组成的情况,而是不用考虑在候选码基础上再进行元素添加,也就是说抛开以候选码为子集的情况,但是其它不以候选码为子集的更多元素的情况也应进行考虑。
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$
这里是一些公式的练习,附上链接markdown - Unicode - LaTeX