?
第一范式:確保每列的原子性. 如果每列(或者每個屬性)都是不可再分的最小數(shù)據(jù)單元(也稱為最小的原子單元),則滿足第一范式.
?例如:顧客表(姓名、編號、地址、……)其中"地址"列還可以細(xì)分為國家、省、市、區(qū)等。第二范式:在第一范式的基礎(chǔ)上更進(jìn)一
層,目標(biāo)是確保表中的每列都和主鍵相關(guān). 如果一個關(guān)系滿足第一范式,并且除了主鍵以外的其它列,都依賴于該主鍵,則滿足第二
范式. 例如:訂單表(訂單編號、產(chǎn)品編號、定購日期、價格、……),"訂單編號"為主鍵,"產(chǎn)品編號"和主鍵列沒有直接的關(guān)系,
即"產(chǎn)品編號"列不依賴于主鍵列,應(yīng)刪除該列。第三范式:在第二范式的基礎(chǔ)上更進(jìn)一層,目標(biāo)是確保每列都和主鍵列直接相關(guān),而
不是間接相關(guān). 如果一個關(guān)系滿足第二范式,并且除了主鍵以外的其它列都不依賴于主鍵列,則滿足第三范式. 為了理解第三范式
,需要根據(jù)Armstrong公里之一定義傳遞依賴。假設(shè)A、B和C是關(guān)系R的三個屬性,如果A-〉B且B-〉C,則從這些函數(shù)依賴中,可以
得出A-〉C,如上所述,依賴A-〉C是傳遞依賴。 例如:訂單表(訂單編號,定購日期,顧客編號,顧客姓名,……),初看該表沒
有問題,滿足第二范式,每列都和主鍵列"訂單編號"相關(guān),再細(xì)看你會發(fā)現(xiàn)"顧客姓名"和"顧客編號"相關(guān),"顧客編號"和"訂單編
號"又相關(guān),最后經(jīng)過傳遞依賴,"顧客姓名"也和"訂單編號"相關(guān)。為了滿足第三范式,應(yīng)去掉"顧客姓名"列,放入客戶表中。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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