---note---
1NF的定义:
如果一个关系模式R(U,F)的所有属性都是不可分的基本数据项
则R(U,F)属于1NF
2NF的定义:
若关系模式属于1NF,并且每一个非主属性都完全依赖于R的码
则R属于2NF
3NF的定义:
关系模式中若不存在这样的候选码X,属性组Y及非主属性Z,
使得X->Y,Y-\->X,Y->Z 成立,则称R属于3NF
R属于3NF,则R的每一个非主属性既不部分函数依赖于候选码也不传递函数依赖于候选码
R属于3NF,R也是2NF
BCNF的定义:
设R(U,F)属于1NF,如果对于R的每个函数依赖X->Y,若Y不包含于X(Y不属于X),则X必含有候选码,那么R属于BCNF
所有非主属性都完全函数依赖于每个候选码
所有主属性都完全函数依赖于每个不包含它的候选码
设有任何属性完全函数依赖于非码的任何一组属性
如果R属于3NF,且R只有一个候选码,则R属于BCNF
多值依赖:
R关系模式,X,Y,Z是U的子集,并且Z=U-X-Y
X->->Y, Z=U-X-Y=∅
X->->Y为平凡多值依赖
对称性与传递性
4NF定义:
关系模式:R<U,F>属于1NF,如果对于R的每个非平凡多值依赖X-\->Y(Y属于X)
X都含有候选码,则R属于4NF
不允许有非平凡且非函数依赖的多值依赖
允许的是函数依赖
X-\->Y(Y属于X) X都含有候选码
1NF
| 消除非主属性对码的部分函数依赖
2NF
| 消除非主属性对码的传递函数依赖
3NF
| 消除主属性对码的部分和传递函数依赖
BCNF
| 消除非平凡且非函数依赖的多值依赖
4NF
消除非平凡函数依赖的关系,非主码
如果一个分解具有无损连接性,则它能够保证不丢失信息
如果一个分解保持了函数依赖,则它可以减轻或解决各种异常情况
无损连接保持数据完整性
函数依赖保持了逻辑关系
若要求分解保持函数依赖,一定能达到3NF,不一定达到BCNF
既具有无损连接性,又保持函数依赖,则模式分解一定能够达到3NF
---note---