规范化理论(NormalizationTheory)

规范化理论(NormalizationTheory)

关系模式实例 #

供应者与它所提供的零件信息,关系模式FIRST与函数依赖集F如下:

FIRST(Sno, Sname, Status, City, Pno, Qty)
F={Sno->Sname, Sno->Status, Status->City, (Sno, Pno)->Qty}

1NF #

若关系模式R的每一个分量都是不可再分的数据项,则关系模式R属于第一范式。记为 \(R \in 1NF\).

2NF #

若关系模式 \(R \in 1NF\) ,且每一个非主属性完全依赖于码,则关系模式 \(R \in 2NF\)。换句话说,当1NF消除了非主属性对码的部分函数依赖,则称为2NF.

FIRST中, Sno->Status,非主属性Status部分函数依赖于码,非2NF。满足2NF的分解如下:

FIRST_1(Sno, Sname, Status, City)
FIRST_2(Sno, Pno, Qty)

3NF #

不存在这样的码X,属性组Y,非主属性\(Z(Z \nsubseteq Y)\),使得 \(X \rightarrow Y, (Y \nrightarrow X) Y \rightarrow Z\) 成立,则关系 \(R \in 3NF\).

当2NF消除了非主属性对码的传递函数依赖,则称为3NF。

FIRST_1不满足3NF,因为非主属性City传递依赖于码 Sno(Sno->Status,Status->City). 满中3NF的分解如下:

FIRST_11(Sno, Sname, Status)
FIRST_12(Status, City)

BCNF(Boyce Codd Normal Form) #

4NF #

若关系模式 \(R \in 1NF\) ,若对于R的每个非平凡多值依赖 \(X \rightarrow \rightarrow Y\) 且 \(Y \nsubseteq X\) 时, X必含有码,则关系 \(R \in 4NF\).

4NF是限制关系模式的属性间不允许有非平凡且非函数依赖的多值依赖。

如果只考虑函数依赖,关系模式最高的规范化程度是BCNF,如果考虑多值依赖,关系模式最高的规范化程度是4NF。