說到軟件開發(fā) 就不能不說數(shù)據(jù)庫 說到數(shù)據(jù)庫 就不能不說三范式 其實數(shù)據(jù)庫范式一共有六個 除了第一 二 三范式以
外還有第四 第五范式和一個BC范式? 在此我們只討論三范式 有興趣的朋友可以自己找一些專業(yè)的書籍進一步學(xué)習(xí)
第一范式(1NF)
第一范式是指數(shù)據(jù)庫表的每一列都是不可分割的基本數(shù)據(jù)項 同一列中不能有多個值 即實體中的某個屬性不能有多個
值或者不能有重復(fù)的屬性?
這就是第一范式的基本概念 什么意思呢 舉個例子吧 在一個表里有一個“電話”字段 其值既有手機號 又有座機號 那么
這樣就不符合
第一范式的要求了 此時應(yīng)該將“電話”拆分為“手機”跟“座機” 這樣一來就變成了一個符合第一范式的數(shù)據(jù)表了
總結(jié):字段不能再分
第二范式(2NF)
第二范式是在第一范式的基礎(chǔ)上建立起來的 即滿足第二范式必須先滿足第一范式 第二范式要求數(shù)據(jù)庫表中的每個
實例或行必須可以被惟一的區(qū)分 為實現(xiàn)區(qū)分通常需要為表加上一個列 以存儲各個實例的惟一標(biāo)識
要求實體的屬性完全依賴于主鍵 要討論一個表符不符合第二范式的前提是 這個表的主鍵為組合主鍵 如果不是組合主
鍵那就談不上符不符合第二范式了
總結(jié):不能部分依賴,就是說當(dāng)一個表有組合主鍵時,其他非主鍵的字段必須完全依賴于主鍵。
第三范式(3NF)
第三范式是要符合第二范式 第三范式就是一個數(shù)據(jù)表中不能存在其他數(shù)據(jù)表中的非主鍵字段 也就是說如果存在其他
表中的字段 就一定得是那個表的主鍵
假如一個表有有a b c三個字段 a—>b b—>c 那么c與a就是傳遞依賴 這樣就不符合第三范式 而且不管a能不能直接確
定c都屬于傳遞依賴 所以只有b跟c不依賴于a以外的任何字段才符合第三范式
總結(jié):不可以有傳遞依賴,就是說主鍵以外的字段必須依賴主鍵 而不能依賴其他字段
以上就是在下對三范式的粗淺理解 有不妥之處還請大家多多指教
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
