第一范式:
所有的屬性都是不可分割的原子單位。
第二范式:
如果關系模式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 山西太原 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
102 001 95 張老師 山西太原....
103 001 98 張老師 山西太原....
104 002 95 李老師 中國北京....
105 003 90 劉老師 中國上海....
----------------------------------------------------------------------
說明:出現相同的tname,taddr三次
消除方法:分解關系模式R
----------------------------------------------------------------------
R1(sno,cno,grade)
sno cno grade
101 001 100102 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
張老師 山西太原....李老師 中國北京....
劉老師 中國上海....
----------------------------------------------------------------------
再補充一下:
第四范式(4NF)
第四范式禁止主鍵列和非主鍵列一對多關系不受約束
第五范式(5NF)
第五范式將表分割成盡可能小的塊,為了排除在表中所有的冗余.
文章來源于領測軟件測試網 http://www.kjueaiud.com/