導語
數(shù)據(jù)庫規(guī)范化是使用一系列的范式去構(gòu)建關系型數(shù)據(jù)庫,從而減少數(shù)據(jù)依賴和提高數(shù)據(jù)一致性?,F(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) 非主鍵屬性必須直接依賴于主鍵,不能存在傳遞依賴