正規化顧名思義,即設計資料庫時需要遵循的一些規範。要遵循後邊的正規化要求,必須遵循前面所有正規化的要求。設計關聯式資料庫時,遵從不同的規範要求,設計出合理的關聯式資料庫,這些不同的規範要求被稱為不同的正規化,各種正規化呈遞次規範,越高正規化資料庫冗餘越小。
目前關聯式資料庫有六種正規化:第一正規化(1nf)、第二正規化(2nf)、第三正規化(3nf)、巴斯-科德正規化(bcnf)、第四正規化(4nf)和第五正規化(snf,又稱完美正規化)
對於一般的專案,滿足前三項就可以了。下面具體介紹前面三項。
1.第一正規化(1nf)
每一列都是不可分割的原子資料項
怎麼去理解呢?其實不難,簡單來說就是,必須是乙個能存進去資料庫的資料表。
2.第二正規化(2nf)
函式依賴:a–>b,如果通過a屬性(屬性組)的值,可以唯一確定b屬性的值。則稱b依賴於a
完全函式依賴:a–>b,如果a是乙個屬性組,則b屬性值的確定依賴於a屬性組中所有的屬性值。
部分函式依賴: a–>b,如果a是乙個屬性組,則b屬性值的確定只需依賴於a屬性組中其中一些的屬性值。
傳遞函式依賴:a–>b,b–>c=>a–>c。如果通過a屬性(屬性組)的值,可以唯一確定b屬性的值,通過b屬性(屬性組)的值,可以唯一確定c屬性的值,則稱c傳遞函式依賴於a
3.第三正規化(3nf)
在2nf基礎上,任何非主屬性不依賴於其它非主屬性(在2nf基礎上消除傳遞依賴)
資料庫表設計 三個正規化
在資料庫設計中,為了更好地實現資料庫操作的高效性和便捷性,有三個正規化的規則可以遵循,三個正規化分別是 第一正規化 1nf是對屬性的原子性約束,要求屬性具有原子性,不可再分解 第二正規化 2nf是對記錄的惟一性約束,要求記錄有惟一標識,即實體的惟一性 第三正規化 3nf是對字段冗餘性的約束,即任何字...
資料庫的三個正規化
強調列的原子性,即列不能夠再分成其他幾列。考慮有這樣乙個表 聯絡人 姓名 性別 如果在實際場景中,乙個聯絡人有家庭 和公司 那麼這種表結構就不符合1nf,應把 列拆分成家庭 和公司 首先是1nf,另外還有兩部分內容。1.乙個表必須有乙個主鍵。2.不在主鍵裡的列必須依賴主鍵的所有內容,而不能只依賴主鍵...
理解資料庫設計的三個正規化
如何理解三個正規化 第一正規化 1nf即屬性的原子約束性,屬性具有原子性,怎麼理解了?我們知道原子是不能再分的,即屬性不能往下分了。比如說人作為乙個實體,姓名作為人的乙個屬性,如果系統需要把人的姓和名分開記錄。那麼就必須把姓作為人的乙個屬性,名作為人的乙個屬性。第二正規化 2nf就是記錄唯一性約束,...