数据库三范式的理解(引用其他网友)
?
第一范式:確保每列的原子性. 如果每列(或者每個屬性)都是不可再分的最小數據單元(也稱為最小的原子單元),則滿足第一范式.
?例如:顧客表(姓名、編號、地址、……)其中"地址"列還可以細分為國家、省、市、區等。第二范式:在第一范式的基礎上更進一
層,目標是確保表中的每列都和主鍵相關. 如果一個關系滿足第一范式,并且除了主鍵以外的其它列,都依賴于該主鍵,則滿足第二
范式. 例如:訂單表(訂單編號、產品編號、定購日期、價格、……),"訂單編號"為主鍵,"產品編號"和主鍵列沒有直接的關系,
即"產品編號"列不依賴于主鍵列,應刪除該列。第三范式:在第二范式的基礎上更進一層,目標是確保每列都和主鍵列直接相關,而
不是間接相關. 如果一個關系滿足第二范式,并且除了主鍵以外的其它列都不依賴于主鍵列,則滿足第三范式. 為了理解第三范式
,需要根據Armstrong公里之一定義傳遞依賴。假設A、B和C是關系R的三個屬性,如果A-〉B且B-〉C,則從這些函數依賴中,可以
得出A-〉C,如上所述,依賴A-〉C是傳遞依賴。 例如:訂單表(訂單編號,定購日期,顧客編號,顧客姓名,……),初看該表沒
有問題,滿足第二范式,每列都和主鍵列"訂單編號"相關,再細看你會發現"顧客姓名"和"顧客編號"相關,"顧客編號"和"訂單編
號"又相關,最后經過傳遞依賴,"顧客姓名"也和"訂單編號"相關。為了滿足第三范式,應去掉"顧客姓名"列,放入客戶表中。
轉載于:https://www.cnblogs.com/guozefeng/p/3225379.html
總結
以上是生活随笔為你收集整理的数据库三范式的理解(引用其他网友)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java--uploadify3.1多文
- 下一篇: 《Data-Intensive Text