关系型数据库中的关系需要满足一定的要求,而这些要求就是范式。而所谓第几范式就是说关系满足哪一个级别的要求。
下面的函数依赖范围内的几级范式做下总结:
一、概念简化:
1、
1NF:不含表中表。
2、
2NF:非主属性完全依赖于码。
3、
3NF:非主属性完全依赖于码,并且不传递依赖于码。
4、
BCNF:所有决定因素都含码。
二、
3NF总结
若
R∈3NF,则每一个非主属性既不部分依赖于码,也不传递依赖于码。
证明:反正法
1、有
3NF范式的定义:关系模式R<U,F>∈3NF,那么不存在这样的码 X ,属性组 Y 和非主属性 Z ( Z 不∈ Y ),使得 X→Y ( Y 不 ->X ), Y→Z。
设非主属性
Z部分依赖于码X,Y∈X(Y不等于X)
那么,
Y→Z
因为
Y∈X(Y不等于X)
所以
X->Y
与定义矛盾
2、有
1得Y不属于X
所以由定义可知
Z不传递依赖于X
3、由上可知,
Y若Y∈X(Y不等于X),若Y不属于X则传递依赖于X,既与定义矛盾。
三、
BCNF相关总结:
1、所有非主属性完全依赖于每一个候选码。
设
R<U,F>,U = {A,B,C,D},{A,B},C是候选码。
(
A,B)->D,若A—>D,则A是候选码,这样(A,B)就不是候选码了。
2、所有主属性对于不包含它的码完全依赖。
设
R<U,F>,U={A,B,C,D},(A,B)->C,若A->C 则A是码,那么(A,B)就不是码了。
3、没有任何属性完全函数依赖于非码的任何一组属性。
若存在完全函数依赖于非码属性组的属性,设
R<U,F>,U={A,B,C,D,E}
(
C,D)->E,又(A,B)->(C,D),所以(A,B)->Z,既R不属于3NF。
4、有
1、2、3可知不论主属性还是非主属性都完全依赖于码
5、
3NF的不完整性表现在它相对于BCNF来说没有考虑主属性,即满足3NF的关系可能存在主属性部分依赖于码或传递依赖与码。
6、若关系
R满足BNCF,则R满足3NF,反之不一定成立
证明:
3NF范式的定义:关系模式
R<U,F>∈3NF,那么不存在这样的码 X ,属性组 Y 和非主属性 Z ( Z 不∈ Y ),使得 X→Y ( Y 不 ->X ), Y→Z。
BCNF范式定义:
关系模式R<U,F>∈1NF,X->Y(Y不属于X),则X一定含码。
设
R中存在这样的码 X ,属性组 Y 和非主属性 Z ( Z 不∈ Y ),使得 X→Y ( Y 不 ->X ), Y→Z。
因为
Y->Z
所以
Y含码
所以
Y->X
于
Y 不 ->X定义矛盾
7、关系模式R(
U,F)中所有的属性集合为候选码,则R既满足3NF也满足BCNF。
证明:由题设可知所有的属性都是主属性,即不存在非主属性
所以满足
非主属性完全依赖于码,并且不传递依赖于码。
所以满足
3NF
U是码,所以所有的决定因素都含码。
第一次写博客,还请大家海涵