范式
標準的二維表就滿足第一范式(1NF)
滿足第一范式且每一個非主屬性完全函式依賴任何一個候選碼就滿足第二范式(2NF)
滿足第二范式且不存在傳遞函式依賴就滿足第三范式3NF
滿足第三范式且非主屬性對候選碼沒有部分依賴或者傳遞依賴就滿足BC范式(BCNF)
題目
一.
Y(X1,X2,X3,X4)
(X1,X2)
→
\rightarrow
→X3
X2
→
\rightarrow
→X4
侯選碼?
屬于第幾范式?
二.
R(A,B,C,D)
F={AB
→
\rightarrow
→D,AC
→
\rightarrow
→BD,B
→
\rightarrow
→C}
侯選碼?
最高屬于第幾范式?
三.
R(X,Y,Z,W)
F={Y
←
\leftarrow
←
→
\rightarrow
→W,XY
→
\rightarrow
→Z}
侯選碼?
最高屬于第幾范式?
解
一.
因為 X2
→
\rightarrow
→X4
所以
(
X
1
,
X
2
)
→
P
X
4
(X1,X2) \stackrel{P}{\rightarrow} X4
(X1,X2)→PX4
因為
(
X
1
,
X
2
)
→
X
3
(X1,X2) \stackrel{}{\rightarrow} X3
(X1,X2)→X3
所以
(
X
1
,
X
2
)
→
(
X
3
,
X
4
)
(X1,X2) \stackrel{}{\rightarrow} (X3,X4)
(X1,X2)→(X3,X4)
因此:候選碼:(X1,X2);非主屬性:X3,X4,
因為(X1,X2)
→
\rightarrow
→X4, X2
→
\rightarrow
→X4,存在非主屬性X4對候選碼(X1,X2)的部分函式依賴;
所以不屬于2NF,
結論:候選碼(X1,X2),屬于第一范式,
二.
因為 B
→
\rightarrow
→C
所以
(
A
,
B
)
→
(
C
,
D
)
(A,B) \stackrel{}{\rightarrow} (C,D)
(A,B)→(C,D)
因為
(
A
,
C
)
→
(
B
,
D
)
(A,C) \stackrel{}{\rightarrow} (B,D)
(A,C)→(B,D)
因此:候選碼:(A,B)、(A,C);非主屬性:D,
不存在非主屬性D對候選碼(A,B)、(A,C)的部分函式依賴;
所以屬于第三范式,
不屬于BCNF 因為B→C,B不包含碼
滿足BCNF的關系模式有:
- 所有非主屬性對每一個碼都是完全函式依賴
- 所有主屬性對每一個不包含它的碼也是完全函式依賴
- 沒有任何屬性完全函式依賴于非碼的任何一組屬性
第二題因為C并不是完全依賴于不包含C的碼,因為B → \rightarrow →C,
三
因為(X,Y)
→
\rightarrow
→Z ,Y
→
\rightarrow
→W
所以(X,Y)
→
\rightarrow
→(W,Z),(X,Y)是碼
因為(X,W)
→
\rightarrow
→X, (X,W)
→
\rightarrow
→W, W
→
\rightarrow
→Y
所以(X,W)
→
\rightarrow
→(X,Y,W),
因為W
→
\rightarrow
→Y,XW
→
\rightarrow
→XY,XY
→
\rightarrow
→Z,所以(X,W)
→
\rightarrow
→Z
所以(X,W)也是碼
候選碼:(X,Y)、(X,W);非主屬性:Z,
屬于第二范式,因為Z完全依賴于碼(非主屬性只有Z)
屬于第三范式,因為Z沒有傳遞依賴于碼
不屬于BC范式 因為W→Y,決定者不包含候選碼
所以第三題最高屬于第三范式,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/280547.html
標籤:其他
上一篇:學習筆記(十八)——MongoDB(CRUD)與Python互動
下一篇:java筆記--JDBC
