第一范式(
1NF
):在關系模式
R
中的每一個具體關系
r
中,如果每個屬性值都是不可再分的最小數(shù)據(jù)單位,則稱
R
是屬于第一范式的關系。
第二范式(
2NF
):如果關系模式
R
(
U
,
F
)中的所有非主屬性都完全依賴于任意一個候選關鍵字,則稱
R
是屬于第二范式的。
第三范式(
3NF
):如果關系模式
R
(
U
,
F
)中的所有非主屬性對任何候選關鍵字都不存在傳遞信賴,則稱
R
是屬于第三范式的。
第一范式是關系數(shù)據(jù)庫的最小要求
比如
?
姓名
???????????????????
性別
?????????? ????????
身高
Billy?????????? ????????
Male?
???????????? 180CM
這就是第一范式
.
如果改成
???????????????????????????????????????????????????????
三
???? ???????? ??????????????????
圍
????
姓名
???????????????????
性別
???????????????????
胸圍
????????
臀圍
????????
腰圍
這個就不是第一范式了
.
?
第二范式說通俗一點就是不存在部分依賴
,
舉例如下
:
促銷員的銷量表
,
字段為促銷員
OID,
產(chǎn)品
OID,
產(chǎn)品顏色
,
產(chǎn)品重量
業(yè)務上主鍵應該為
促銷員
OID
和產(chǎn)品
OID
但是產(chǎn)品顏色和產(chǎn)品重量顯然依賴于產(chǎn)品
OID,
不能因為某個促銷員長得漂亮產(chǎn)品顏色就艷麗一些
.
所以產(chǎn)品顏色和產(chǎn)品重量就部分依賴于候選主鍵促銷員
OID
和產(chǎn)品
OID,
這樣就滿足第二范式
.
?
?
第三范式說通俗一點就是不存在傳遞依賴
.
舉例如下
:
促銷員表
,
字段為促銷員
OID,
所屬銷售部
OID,
銷售部地址
.
那么促銷員
OID
是業(yè)務主鍵
,
由于只有一個字段做主鍵
,
所以肯定不存在部分依賴
但是這個存在傳遞依賴
促銷員
OID
決定了所屬銷售部
OID,
而所屬銷售部又能決定銷售部地址
.
所以銷售部地址間接依賴于銷售部
OID
于是存在傳遞依賴
.
?
?
由于我們采用
OID
一個字段做表的主鍵
,
所以肯定滿足第二范式
.
至于滿不滿足第三范式就要分析一下了
.
但是有些情況下是需要保存歷史信息的
比如銷售部的地址變動了
這些另當別論
,
打破第三范式就好了
另外聯(lián)合查詢的性能損失很大
,
有時候破壞范式來換取報表的運行效率也是值得的
.
?
|----------------------------------------------------------------------------------------|
版權(quán)聲明 版權(quán)所有 @zhyiwww
引用請注明來源 http://www.tkk7.com/zhyiwww
|----------------------------------------------------------------------------------------|
posted on 2006-06-13 13:54
zhyiwww 閱讀(772)
評論(0) 編輯 收藏 所屬分類:
database