淺談資料庫設計三範式

來源:互聯網
上載者:User

說到軟體開發 就不能不說資料庫 說到資料庫 就不能不說三範式 其實資料庫範式一共有六個 除了第一 二 三範式以外還有第四 第五範式和一個BC範式  在此我們只討論三範式 有興趣的朋友可以自己找一些專業的書籍進一步學習

 

第一範式(1NF)

第一範式是指資料庫表的每一列都是不可分割的基本資料項目 同一列中不能有多個值 即實體中的某個屬性不能有多個值或者不能有重複的屬性  

這就是第一範式的基本概念 什麼意思呢 舉個例子吧 在一個表裡有一個“電話”欄位 其值既有手機號 又有有線電話號 那麼這樣就不符合第一範式的要求了 此時應該將“電話”拆分為“手機”跟“有線電話” 這樣一來就變成了一個符合第一範式的資料表了

總結:欄位不能再分

 

第二範式(2NF)

第二範式是在第一範式的基礎上建立起來的 即滿足第二範式必須先滿足第一範式 第二範式要求資料庫表中的每個執行個體或行必須可以被惟一的區分 為實現區分通常需要為表加上一個列 以儲存各個執行個體的惟一標識 

要求實體的屬性完全依賴於主鍵 要討論一個表符不符合第二範式的前提是 這個表的主鍵為組合主鍵 如果不是組合主鍵那就談不上符不符合第二範式了 

總結:不能部分依賴,就是說當一個表有組合主鍵時,其他非主鍵的欄位必須完全依賴於主鍵。

 

第三範式(3NF)

第三範式是要符合第二範式 第三範式就是一個資料表中不能存在其他資料表中的非主鍵欄位 也就是說如果存在其他表中的欄位 就一定得是那個表的主鍵

假如一個表有有a b c三個欄位 a—>b b—>c 那麼c與a就是傳遞依賴 這樣就不符合第三範式 而且不管a能不能直接確定c都屬於傳遞依賴 所以只有b跟c不依賴於a以外的任何欄位才符合第三範式

總結:不可以有傳遞依賴,就是說主鍵以外的欄位必須依賴主鍵 而不能依賴其他欄位

 

以上就是在下對三範式的粗淺理解 有不妥之處還請大家多多指教

 

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.