| 第一范式: 所有的属性都是不可分割的原子单位。 第二范式: 如果关系模式R(U,F)中的所有非主属性都完全依赖于任意一个候选关键字,则称关系R 是属于第二范式。 第三范式: 如果关系模式R(U,F)中的所有非主属性对任何候选关键字都不存在传递信赖,则称关系R是属于第三范式的 BC范式:(BCNF) 如果关系模式R(U,F)的所有属性(包括主属性和非主属性)都不传递依赖于R的任何候选关键字,那么称关系R是属于BCNF的。 举例说明: 第一范式(1NF): 如果关系模式R的每个关系都是r的属性值不可分割的原子值,则称关系R是第一范式的模式.不满足第一范式的情况: 关系R(name,address,phone)
 ----------------------------------------------------------------------
 name address phone
 AA 山西太原 2204446AA 山西太原 8350524
 ----------------------------------------------------------------------
 说明:phone可以再分(可以分为phone1和phone2).
 ************************************************************************************* 第二范式(2NF): 1):局部依赖:对于依赖关系 W->A (A依赖于W),如果存在X归属于W,且X->A(A依赖于X),那么称W->A是局部依赖;否则称W->A是完全依赖.
 比如:
 关系模式R(sno,cno,grade,tname,taddr)
 sno:学生学号;cno:课程编号;grade:成绩;tname:老师姓名;taddr:老师住址
 (sno,cno)->(tname,taddr)(sno,cno决定于tname以及cno)是局部依赖,因为cno->(tname,taddr).
 2):二范式定义:如果关系模式R满足第一范式,且每个非主属性完全依赖于侯选键,则称R满足第二范式.
 不满足第二范式的情况:101 001 100 张老师 山西太原....关系模式R(sno,cno,grade,tname,taddr)
 sno:学生学号;cno:课程编号;grade:成绩;tname:老师姓名;taddr:老师住址
 ----------------------------------------------------------------------
 sno cno grade tname taddr
 102 001 95 张老师 山西太原....
 103 001 98 张老师 山西太原....
 104 002 95 李老师 中国北京....
 105 003 90 刘老师 中国上海....
 ----------------------------------------------------------------------
 说明:出现相同的tname,taddr三次
 消除方法:分解关系模式R
 ----------------------------------------------------------------------
 R1(sno,cno,grade)
   sno cno grade 101 001 100 102 001 95
 103 001 98
 104 002 95
 105 003 90
 R2(cno,tname,taddr)
   cno tname taddr001 张老师 山西太原.... 002 李老师 中国北京....
 003 刘老师 中国上海....
 ----------------------------------------------------------------------
 ************************************************************************************* 第三范式(3NF): 1):传递依赖:如果X->Y,Y->A,且Y不依赖X和A不是Y的子集,那么称X->A是传递依赖.(A传递依赖于X) 2):三范式定义:不满足第三范式的情况:如果关系模式R是1NF,且每个非主属性都不依赖于R的侯选键,那么称R满足第三范式.
 关系模式R2(cno,tname,taddr)是2NF模式,如果在R2中存在cno->tname,tname->taddr,那么cno->taddr就是个传递依赖,及不满足第三范式.
 ----------------------------------------------------------------------
 cno tname taddr
 
 001 张老师 山西太原....
 002 李老师 中国北京....
 003 刘老师 中国上海....
 004 张老师 山西太原....
 005 张老师 山西太原....
 ----------------------------------------------------------------------
 说明:张老师开设了3门课程,上面就出现了3个元组,教师地址重复了3次.
 消除方法:分解关系模式R2
 ----------------------------------------------------------------------
 R3(cno,tname)
   cno tname 001 张老师 002 李老师
 003 刘老师
 004 张老师
 005 张老师
   R4(tname,taddr)   tname taddr张老师 山西太原.... 李老师 中国北京....
 刘老师 中国上海....
 ----------------------------------------------------------------------
 再补充一下: 第四范式(4NF) 第四范式禁止主键列和非主键列一对多关系不受约束  第五范式(5NF) 第五范式将表分割成尽可能小的块,为了排除在表中所有的冗余.  |