資料庫設計正規化
關聯式資料庫中的關係必須滿足一定的要求,即滿足不同的正規化。
關聯式資料庫有六種正規化:第一正規化(1nf)、第二正規化(2nf)、第三正規化(3nf)、巴德斯科正規化(bcnf)、第四正規化(4nf)和第五正規化(5nf)。滿足最低要求的正規化是第一正規化(1nf)。在第一正規化的基礎上進一步滿足更多要求的稱為第二正規化(2nf),其餘正規化以次類推。一般說來,資料庫只需滿足第三正規化(3nf)就行了。
設計關係型資料庫時,遵從不同的規範要求,設計出合理的關係型資料庫。這些規範被稱作正規化。越高的正規化資料庫的冗餘度就越低。
第一正規化(1nf)
核心:無重複的列
資料庫表的每一列都是不可分割的原子資料項,而不能是集合,陣列,記錄等非原子資料項。如果實體 中的某個屬性有多個值時,必須拆分為不同的屬性
滿足第一正規化(1nf)是設計的最低要求。
第二正規化(2nf)
先滿足第一正規化(高階別的正規化的都是建立在低階別的正規化之上的。談第二正規化,首先是要滿足第一正規化。)
屬性完全依賴於主鍵
即乙個表中不能有兩個主鍵。
第三正規化(3nf)
先滿足第2正規化
屬性不能傳遞依賴於主屬性(屬性不依賴於其它非主鍵屬性)
第三正規化是標準資料庫設計時的一般要求
mysql三正規化說明
例如 字段 使用者身份標識 usertype userid。這個字段 使用者身份表 可以再分為 使用者型別 和 使用者id標識 常規做法 只要給表乙個 id 字段,並設定自動增長,其實就是取消掉復合主鍵。通過另乙個單一欄位的主鍵來代替。一句話,沒有復合主鍵,就沒有部分依賴。舉例 s1 sno,sna...
MYSQL三大正規化
第一正規化 確保每列的原子性.如果每列 或者每個屬性 都是不可再分的最小資料單元 也稱為最小的原子單元 則滿足第一正規化.例如 顧客表 姓名 編號 位址 其中 位址 列還可以細分為國家 省 市 區等。第二正規化 在第一正規化的基礎上更進一層,目標是確保表中的每列都和主鍵相關.如果乙個關係滿足第一正規...
MySQL三大正規化
資料庫 的三個正規化 指的是什麼呢?即 屬性唯一,記錄唯一,表唯一。下面我們用一張關係圖來三者之間的關係。第一正規化 1nf 資料庫表中的字段的 屬性都是單一的,不可再分。這個單一屬性由哪些型別組成呢?主要是基本型別構成,包括整型 實數 字元型 邏輯型 日期型等。第二正規化 2nf 資料庫表 中不存...