1.2.4 資料庫規範化

nana1123發表於2022-04-25

資料庫正規化是建立資料庫關係表的規範,遵守正規化的級別越高,能夠讓資料冗餘越少,下一級別的正規化包含上一級別的所有正規化;但是對於特定的的冗餘資料(資料屬性的對應關係不變)能夠提高查詢速度(無需連表查詢)。

 

第一正規化 ( 1NF  1 Normal Form ) :確保每列原子 性

確保每個欄位不可再分,下表area可再分


第二正規化 ( 2NF  2 Normal Form ) :非鍵欄位必須依賴於鍵欄位

一個表只能描述一件事,下表描述了兩件事情,所以需要拆分


第三正規化 ( 3NF  3 Normal 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正規化(BCNF Boycee Codd Normal Form):任何函式依賴(X->Y),X必須是候選鍵。意思是:任何屬性(包括非主屬性和主屬性)都不能被非主屬性所決定;BC正規化要求主屬性不能依賴於非主屬性,這個也是第三正規化和BC正規化的主要區別,先拆分成3NF,再進行拆分


第四正規化 ( 4NF ) : 消除多值依賴; 如果屬性A依賴於B,屬性C也依賴於B,且屬性A和屬性C沒有依賴關係,但是造成了資料冗餘,可以把表ABC分為BA,BC兩個表來消除冗餘資料

 

第五正規化 ( 5NF ) : 拆分表為更小的表,每個小表不可再分,且每個小表都能夠透過候選鍵推匯出來




來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70017124/viewspace-2888680/,如需轉載,請註明出處,否則將追究法律責任。

相關文章