資料庫正規化是建立資料庫關係表的規範,遵守正規化的級別越高,能夠讓資料冗餘越少,下一級別的正規化包含上一級別的所有正規化;但是對於特定的的冗餘資料(資料屬性的對應關係不變)能夠提高查詢速度(無需連表查詢)。
第一正規化(1nf1normal form):確保每列原子性
確保每個字段不可再分,下表area可再分
第二正規化(2nf2normal form):非鍵字段必須依賴於鍵欄位
乙個表只能描述一件事,下表描述了兩件事情,所以需要拆分
第三正規化(3nf3normal form):消除傳遞依賴
在所有的非鍵字段中,不能有傳遞依賴,
下表cityid和cityname是一種資料,由cityid可以查到cityname
下表因為語文和數學確定了,總分就確定了。所以
設計不滿足第三正規化
總結:表字段{a,b,c,d}
關聯關係:{a->bc,b->c,a->b,ab->c}
可拆分關係:
a->b,
a->c,
b->c,
a->b,
ab->c
因為a->c,所以
ab->c可以不要,
a->b重複,a可以關聯到b和c
可以得到最簡表:
{a,d}
反三正規化
當效能和規範化衝突的時候,
效能更重要
。比如統計大量學生各科分數及總分的時候,就是如下設計
bc正規化(bcnfboycee codd normal form
):任何函式依賴(x->y),x必須是候選鍵。意思是:任何屬性(包括非主屬性和主屬性)都不能被非主屬性所決定
;bc正規化要求主屬性不能依賴於非主屬性,這個也是第三正規化和bc正規化的主要區別,先拆分成3nf,再進行拆分
第四正規化
(
4nf
)
:消除多值依賴;
如果屬性a依賴於b,屬性c也依賴於b,且屬性a和屬性c沒有依賴關係,但是造成了資料冗餘,可以把錶abc分為ba,bc兩個表來消除冗餘資料
第五正規化
(
5nf
)
:拆分表為更小的表,每個小表不可再分,且每個小表都能夠通過候選鍵推導出來
一般建表滿足第三正規化或者bc正規化即可,第五正規化被稱為完美正規化
資料庫規範化
規範化 normalization 是資料庫系統設計中非常重要的乙個技術。資料庫規範化能夠讓資料庫設計者更好地了解組織內部當前的資料結構,最終得到一系列的資料實體。資料庫規範化通過對資料庫表的設計,可以有效降低資料庫冗餘程度。在進行資料庫規範化的時候,我們有一系列的步驟需要遵循。我們把這些步驟稱作正...
資料庫規範化大全
er圖是一種關聯式資料庫邏輯設計的一種方法。normalization 正規化 是另一種 關係型資料庫的邏輯設計的方法。normal forms 正規化 1nf 2nf 3nf bcnf 4nf 5nf 1.不好的資料庫會出現的問題 a.修改異常 anomaly b.刪除異常 c.插入異常 d.資料...
資料庫規範化(二)
資料庫的設計正規化是資料庫設計所需要滿足的規範,滿足這些規範的資料庫是簡潔的 結構明晰的,同時,不會發生插入 insert 刪除 delete 和更新 update 操作異常。反之則是亂七八糟,不僅給資料庫的程式設計人員製造麻煩,而且面目可憎,可能儲存了大量不需要的冗餘資訊。正規化說明 1.1 第一...