古詩詞大全網 - 四字成語 - 舉例說明壹下怎麽算是第壹範式、第二範式、第三範式?

舉例說明壹下怎麽算是第壹範式、第二範式、第三範式?

1.第壹範式:存在非主屬性對碼的部分依賴關系 R(A,B,C) AB是碼 C是非主屬性 B-->C B決定C C部分依賴於B。如果關系R 中所有屬性的值域都是單純域,那麽關系模式R是第壹範式的。

那麽符合第壹模式的特點就有:有主關鍵字、主鍵不能為空、主鍵不能重復,、字段不可以再分。例如:

StudyNo | Name | Sex | Contact

20040901? john Male? Email:kkkk@ee.net,phone:222456

20040901? mary famale? email:kkk@fff.net phone:123455

以上的表就不符合,第壹範式:主鍵重復(實際中數據庫不允許重復的),而且Contact字段可以再分

所以變更為正確的是:

StudyNo | Name | Sex |? Email |? Phone

20040901? john Male?kkkk@ee.net 222456

20040902 mary? famalekkk@fff.net? 123455

2.第二範式:存在非主屬性對碼的傳遞性依賴 R(A,B,C) A是碼 A -->B ,B-->C。如果關系模式R是第壹範式的,而且關系中每壹個非主屬性不部分依賴於主鍵,稱R是第二範式的。所以第二範式的主要任務就是:滿足第壹範式的前提下,消除部分函數依賴。

StudyNo | Name | Sex | Email |? Phone? | ClassNo? | ClassAddress

01? john? Male?kkkk@ee.net 222456? 200401? A樓2

01 mary famalekkk@fff.net 123455? 200402? A樓3

這個表完全滿足於第壹範式,主鍵由StudyNo和ClassNo組成,這樣才能定位到指定行。但是,ClassAddress部分依賴於關鍵字(ClassNo-〉ClassAddress,所以要變為兩個表:

表壹

StudyNo | Name | Sex |? Email |? Phone | ClassNo

01? john Male?kkkk@ee.net? 222456 200401?

01 mary famalekkk@fff.net? 123455? 200402

表二

ClassNo? | ClassAddress

200401? A樓2

200402? A樓3

3.第三範式

不存在非主屬性對碼的傳遞性依賴以及部分性依賴 ,

StudyNo | Name | Sex |? Email |? bounsLevel | bouns

20040901? john Male?kkkk@ee.net 優秀? $1000

20040902 mary famalekkk@fff.net 良 $600

這個完全滿足了第二範式,但是bounsLevel和bouns存在傳遞依賴,更改為:

StudyNo | Name | Sex |? Email |? bouunsNo

20040901? john Male?kkkk@ee.net 1

20040902 mary famalekkk@fff.net 2

bounsNo | bounsLevel | bouns

1 優秀? $1000

2 良 $600

這裏可以用bounsNo作為主鍵,基於兩個原因

(1)不要用字符作為主鍵。可能有人說:如果我的等級壹開始就用數值就代替呢?

(2)但是如果等級名稱更改了,不叫 1,2 ,3或優、良,這樣就可以方便更改,所以壹般優先使用與業務無關的字段作為關鍵字。

壹般滿足前三個範式就可以避免數據冗余。

擴展資料:

設計關系數據庫時,遵從不同的規範要求,設計出合理的關系型數據庫,這些不同的規範要求被稱為不同的範式,各種範式呈遞次規範,越高的範式數據庫冗余越小。

目前關系數據庫有六種範式:第壹範式(1NF)、第二範式(2NF)、第三範式(3NF)、巴斯-科德範式(BCNF)、第四範式(4NF)和第五範式(5NF,又稱完美範式)。

設計關系數據庫時,遵從不同的規範要求,設計出合理的關系型數據庫,這些不同的規範要求被稱為不同的範式,各種範式呈遞次規範,越高的範式數據庫冗余越小。

目前關系數據庫有六種範式:第壹範式(1NF)、第二範式(2NF)、第三範式(3NF)、巴斯-科德範式(BCNF)、第四範式(4NF)和第五範式(5NF,又稱完美範式)。滿足最低要求的範式是第壹範式(1NF)。在第壹範式的基礎上進壹步滿足更多規範要求的稱為第二範式(2NF),其余範式以次類推。壹般說來,數據庫只需滿足第三範式(3NF)就行了。

參考鏈接:

百度百科-數據庫範式