1NF直到BCNF的四種范式之間有如下關系:
BCNF包含了3NF包含2NF包含1NF
小結:
目地:規(guī)范化目的是使結構更合理,消除存儲異常,使數(shù)據(jù)冗余盡量小,便于插入、刪除和更新
原則:遵從概念單一化 "一事一地"原則,即一個關系模式描述一個實體或實體間的一種聯(lián)系。規(guī)范的實質(zhì)就是概念的單一化。
方法:將關系模式投影分解成兩個或兩個以上的關系模式。
要求:分解后的關系模式集合應當與原關系模式"等價",即經(jīng)過自然聯(lián)接可以恢復原關系而不丟失信息,并保持屬性間合理的聯(lián)系。
注意:一個關系模式結這分解可以得到不同關系模式集合,也就是說分解方法不是唯一的。最小冗余的要求必須以分解后的數(shù)據(jù)庫能夠表達原來數(shù)據(jù)庫所有信息為前提來實現(xiàn)。其根本目標是節(jié)省存儲空間,避免數(shù)據(jù)不一致性,提高對關系的操作效率,同時滿足應用需求。實際上,并不一定要求全部模式都達到BCNF不可。有時故意保留部分冗余可能更方便數(shù)據(jù)查詢。尤其對于那些更新頻度不高,查詢頻度極高的數(shù)據(jù)庫系統(tǒng)更是如此。
在關系數(shù)據(jù)庫中,除了函數(shù)依賴之外還有多值依賴,聯(lián)接依賴的問題,從而提出了第四范式,第五范式等更高一級的規(guī)范化要求。在此,以后再談。
各位朋友,你看過后有何感想,其實,任何一本數(shù)據(jù)庫基礎理論的書都會講這些東西,考慮到很多網(wǎng)友是半途出家,來做數(shù)據(jù)庫。特找一本書大抄特抄一把,各位有什么問題,也別問我了,自已去找一本關系數(shù)據(jù)庫理論的書去看吧,說不定,對各位大有幫助。說是說以上是基礎理論的東西,請大家想想,你在做數(shù)據(jù)庫設計的時候有沒有考慮過遵過以上幾個范式呢,有沒有在數(shù)據(jù)庫設計做得不好之時,想一想,對比以上所講,到底是違反了第幾個范式呢?
我見過的數(shù)據(jù)庫設計,很少有人做到很符合以上幾個范式的,一般說來,第一范式大家都可以遵守,完全遵守第二第三范式的人很少了,遵守的人一定就是設計數(shù)據(jù)庫的高手了, BCNF的范式出現(xiàn)機會較少,而且會破壞完整性,你可以在做設計之時不考慮它,當然在ORACLE中可通過觸發(fā)器解決其缺點。以后我們共同做設計之時,也希望大家遵守以上幾個范式。
相關推薦:計算機三級數(shù)據(jù)庫:SQL查詢語句精華使用簡要北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |