MySQL學習筆記(6)之設計範式

來源:互聯網
上載者:User

標籤:mysql   學習筆記   mysql入門   

設計範式(NF = Normal Format)

範式:規範的格式。

範式是設計關聯式資料庫必須遵守的規則。

如果我們滿足了設計範式的要求,則資料庫會簡潔,結構清晰。

反之,會出現資料冗餘,還有插入、刪除、修改資料出現異常。

 

 設計範式種類:1NF、2NF、3NF、BCNF(巴德斯科範式)、4NF、5NF(完美範式)。

1NF是最寬鬆的,依次遞增限制越大。

一般資料庫只需要滿足到3NF就可以了。

 

1、1NF(第一範式):欄位的原子性

要求:資料是二維表,每一列都不能在分割,屬性不能再分割,欄位保證原子性。

不滿足1NF的資料庫,則為非關係型資料庫。


不滿足1NF的2個例子:

name
tel age
小明

13988774444,011-15945612

1
小紅 16812314725 0


name 手機,有線電話 age
小明 13988774444,011-15945612 1
小紅 16812314725,無 0


解決辦法:

name 手機 有線電話 age
小明 13988774444 011-15945612 1
小紅 16812314725 0


2、2NF(第二範式):消除部分(不完全)依賴

要求:滿足1NF的前提下,消除欄位對主鍵的部分依賴,從而完全依賴於主鍵。

依賴:如果欄位A一旦確定,則可以指出B欄位的值。

部分(不完全)依賴:依賴其中某個部分的值。

    

        不滿足2NF的例子:

學生

課程

老師姓名

老師學曆

課程教材

上課教室

上課時間

小明 二年級語文上 張三 研究生 二年級語文上冊 102 8:00
小紅 五年級數學上 李四 博士 五年級數學上冊 306 16:00

        一個課程,一定指定了某個教材,一年級語文上肯定用的是《一年級語文上冊》,那麼就有課程推出教材。課程決定了教材,這就叫做部分依賴。


        解決辦法,拆分成二個或者若干個表:

學生 課程 老師 老師學曆 上課教室 上課時間
小明 二年級語文上 張三 研究生 102 8:00
小紅 五年級數學上 李四 博士 306 16:00


課程

教材

二年級語文上 二年級語文上冊
五年級數學上 五年級數學上冊


3、3NF:消除傳遞依賴

要求:滿足2NF的前提下消除傳遞依賴。

當表裡存在不只一類獨立實體,資料也可能存在冗餘,在插入、修改、刪除、時可能出現混亂的情況。

 

↓解決辦法:拆分成3個表,利用主鍵建立關係。

學生學號

學生姓名

學生課程

教師

110 小明 001 578
911 小紅 005 561


課程ID

課程名稱 教材名稱

001

二年級語文上

二年級語文上冊

005

五年級數學上

五年級數學上冊


教師ID

老師姓名

老師學曆

578 張三 研究生
561 李四 博士


4、BC範式(BCNF):符合3NF,並且主屬性不依賴於主屬性。

若關係模式屬於第一範式,且每個屬性都不傳遞依賴於鍵碼,則R屬於BC範式。

通常:BC範式的條件有多種等價的表述:每個非平凡依賴的左邊必須包含鍵碼;每個決定因素必須包含鍵碼。

BC範式既檢查非主屬性,又檢查主屬性。當只檢查非主屬性時,就成了第三範式。滿足BC範式的關係都必然滿足第三範式。

還可以這麼說:若一個關係達到了第三範式,並且它只有一個候選碼,或者它的每個候選碼都是單屬性,則該關係自然達到BC範式。

一般,一個資料庫設計符合3NF或BCNF就可以了。在BC範式以上還有第四範式、第五範式。

 

 

5、第四範式:要求把同一表內的多對多關係刪除。

 

6、第五範式:從最終結構重建立立原始結構。


本文出自 “一起學習交流” 部落格,請務必保留此出處http://chenhaolinux.blog.51cto.com/9609922/1710794

MySQL學習筆記(6)之設計範式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.