数据库规范化的基本原理和学习心得

来源:互联网 发布:薄荷减肥软件靠谱吗 编辑:程序博客网 时间:2024/05/16 10:56

构成键码(或候选码)的属性称为主属性,而其它属性称为非主属性

 

 

1.       函数依赖定义

    设:R(U)是属性集U 上的关系模式,XYU。如果对于R(U)的任意一个关系r,以及r 的任意两个元组t1t2,不存在:t1[x]=t2[x],而t1[Y]≠t2[Y],则称X函数决定Y,或者说Y函数依赖于X。记为:X→Y

1“X→Y”必须对RU)的任何一个关系实例都成立。

2)若X→Y Y→X,则记作X←→Y。若Y不函数依赖X,则记作X Y

3)函数依赖是现实世界数据关联的表现形式。

 

2.       完全函数依赖与部分函数依赖

1) 定义完全函数依赖:在R(U)中,如果X→Y,且对X的任何一个真子集X’,都有X’ Y,则称YX完全函数依赖,记作: )

2)定义部份函数依赖:在R(U)中,如果X→Y, Y不完全函数依赖X,则称YX部份函数依赖,记作

3.       传递函数依赖定义:

    R(U)中,如果X→YY X Y X),Y→Z,则称Z传递函数依赖于X,记为X t Z

 

4.       数据库中的范式:

    关系数据库的任意一个关系,需要满足一定的数据依赖约束。满足不同程度数据依赖约束的关系,称为不同范式的关系。

 

第一范式:

    关系模式的各属性域是原子

第二范式:

    R 是一个关系模式。若R∈1NF,且每一个非主属性完全函数依赖于码,则R∈2NF

第三范式:

    如果关系模式RUF)是2NF的,且不存在键码X、属性组Y以及非主属性Z ,使得X→Y Y→Z 成立,则R∈3NF,换句话说就是若R∈3NF,则R中不存在非主属性对码的传递函数依赖。

 

BCNF

    关系模式R1NF。如果对于R的每一个函数依赖XYY X),X都含有键码(即X是超码),那么RBCNF

   

第四范式:

    设关系模式R 1NF。若对于R的每个非平凡多值依赖X→→YY X),X都含有键码,则R 4NF

 

5.       几个问题的总结:

a)   第二范式与BCNF的区别:

       第二范式只要求非主属性对码的完全依赖,而BCNF还要求主属性对不包   含它的键码的完全依赖。

b)   第三范式与BCNF的区别:

       第三范式没有像BCNF那么严格,它只要求主属性对不包含它的键码的部    分依赖。

c)   第三范式的定义(来自《数据库系统基础教程》)是若在关系R中存在非平凡的FD  且要么是{}是超键,要么B属于某个键,怎么能推出R中不存在非主属性对码的传递函数依赖?

    首先键码不能决定键码,由定义可以看出,当B是非主属性,一定由其中一个键码决定,所以不会有对码的传递依赖。

      

6.       规范化目的:

    减小关系模式因规范化程度过低带来的数据冗余,克服修改、删除的异常,

“模式分解”是规范化的实现途径,但数据库设计实践中不能过分追求规范化程度