数据库范式例题

范式

标准的二维表就满足第一范式(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,决定者不包含候选码
所以第三题最高属于第三范式。

你可能感兴趣的:(数据库实验课,数据库)