導語
數(shù)據(jù)庫規(guī)范化是使用一系列的范式去構建關系型數(shù)據(jù)庫搁拙,從而減少數(shù)據(jù)依賴和提高數(shù)據(jù)一致性。現(xiàn)代數(shù)據(jù)庫一般滿足3NF,范式過高雖然對數(shù)據(jù)關系有更好的約束性催式,但也導致數(shù)據(jù)關系表增加函喉、數(shù)據(jù)庫IO更頻繁。本文對1NF荣月、2NF管呵、3NF、BCNF加以說明哺窄。
1 - 第一范式
(1) 實體中屬性不可再分--值域為原子值捐下,即屬性項不能是屬性組合。
(2) 每個字段的值都只能是單一值萌业,即屬性項不能是屬性組合坷襟。
例如,“電話號碼” 這一個屬性中生年,可能存在某一記錄既有手機號又有座機號婴程,那么該設計不符合第一范式。需要將該屬性拆分成兩列 -- “手機號”和“座機號”
2 - 第二范式
(1) 滿足第一范式
(2) 非主鍵屬性必須完全依賴于主鍵抱婉,不能只依賴于主鍵的一部分
3 - 第三范式
(1) 滿足第二范式
(2) 非主鍵屬性必須直接依賴于主鍵档叔,不能存在傳遞依賴