关系数据库中范式理论

第一范式:
所有的属性都是不可分割的原子单位。
第二范式:
如果关系模式R(U,F)中的所有非主属性都完全依赖于任意一个候选关键字,则称关系R 是属于第二范式。
第三范式:
如果关系模式R(U,F)中的所有非主属性对任何候选关键字都不存在传递信赖,则称关系R是属于第三范式的
BC范式:
如果关系模式R(U,F)的所有属性(包括主属性和非主属性)都不传递依赖于R的任何候选关键字,那么称关系R是属于BCNF的。

第一范式(1NF):
如果关系模式R的每个关系都是r的属性值不可分割的原子值,则称关系R是第一范式的模式.
不满足第一范式的情况:
关系R(name,address,phone)
----------------------------------------------------------------------
name       address     phone
 AA        湖南长沙    2204446
 AA        湖南长沙    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满足第二范式.
不满足第二范式的情况:
关系模式R(sno,cno,grade,tname,taddr)
sno:学生学号;cno:课程编号;grade:成绩;tname:老师姓名;taddr:老师住址
----------------------------------------------------------------------
sno         cno          grade          tname        taddr
101         001           100           张老师       湖南长沙....
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          taddr
001        张老师         湖南长沙....
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
张老师         湖南长沙....
李老师         湖南常德....
刘老师         湖南衡阳....

你可能感兴趣的:(职场,范式,理论,休闲,关系数据库)