董晓涛(David Dong)

博客园 首页 新随笔 联系 订阅 管理
数据规范化!!!

以前看到有网友在提问问题给表例的时候,可以明显看出这个关系不符合最基本的INF,2NF,
3NF!下面我就简要介绍一下关系的规范化中的第一范式,第二范式和第三范式!这是关系规范化中最基本的!

第一范式:每个分量必须是不可再分的数据项!如你可以把姓和名分开!这个比较简单,就不多说了!

第二范式:若关系(也就是我们所说的表)R属于1NF,且第个非主属性完全函数依赖于码,则称R属于2NF
如学生(学号,系别,宿舍楼,选修课,分数)这个关系中在如下:
  (学号+选修课)决定你的分数
   学号决定了该生所性的系别
   学号决定了该生在何宿舍楼
   (学号+选修课)决定了系别
   学号+选修课)决定了宿舍楼
则在这个关系(表)中存在部分函数依赖,使之不属于2NF
此时我们可以采用分解的,就是说把上面的表分解成2个表
   学生1(学号,选修课,分数)
   学生2(学号,系别,宿舍楼)
此时这两个关系就属于2NF

第三范式:在关系模式R<U,F>中,若不在在这样的码x,属性组Y及非主属性Z,使得Y
完全函数依赖于X,Z完全函数依赖于Y成立,则R<U,F>属于3NF
   如:学生2(学号,系别,宿舍楼)就存在X(学号),Y(系别),Z(宿舍楼)
使得学生2关系不属于3NF
   同理我们分解它:
    学生21(学号,系别)
    学生22(学号,宿舍楼)
这样所建立的关系
     学生1(学号,选修课,分数)
     学生21(学号,系别)
     学生22(学号,宿舍楼)
就是满足第3范式的关系!
--董晓涛
posted on 2005-04-30 07:35  董晓涛  阅读(1117)  评论(2编辑  收藏  举报