第一范式:
所有的屬性都是不可分割的原子單位。
第二范式:
如果關系模式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
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
張老師 山西太原....
李老師 中國北京....
劉老師 中國上海....
----------------------------------------------------------------------
再補充一下:
第四范式(4NF)
第四范式禁止主鍵列和非主鍵列一對多關系不受約束
第五范式(5NF)
第五范式將表分割成盡可能小的塊,為了排除在表中所有的冗余.
posted on 2007-08-02 09:21
wqwqwqwqwq 閱讀(123)
評論(0) 編輯 收藏