1.2.4 資料庫規範化
資料庫正規化是建立資料庫關係表的規範,遵守正規化的級別越高,能夠讓資料冗餘越少,下一級別的正規化包含上一級別的所有正規化;但是對於特定的的冗餘資料(資料屬性的對應關係不變)能夠提高查詢速度(無需連表查詢)。
第一正規化 ( 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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料庫表規範化問題資料庫
- 資料探勘實驗(一)資料規範化【最小-最大規範化、零-均值規範化、小數定標規範化】
- mysql資料庫規範MySql資料庫
- 資料庫命令規範資料庫
- MySQL資料庫規範 (設計規範+開發規範+操作規範)MySql資料庫
- MySQL 規範 (資料庫表設計規範)MySql資料庫
- 資料庫規範之SQL規範寫法資料庫SQL
- 理解資料庫規範化的意義ZI資料庫
- 八、資料庫的歸約,三大正規化(規範資料庫設計)資料庫
- 資料庫規範化三個正規化應用例項(轉)資料庫
- 必看的資料庫規範資料庫
- 資料庫設計規範資料庫
- 資料庫設計規範化的 5 個要求資料庫
- [資料庫]【MySQL】MySQL資料庫規範總結資料庫MySql
- 必看的資料庫使用規範資料庫
- MySQL 社群規範 | 資料庫篇MySql資料庫
- 資料庫運維管理規範資料庫運維
- MySQL資料庫設計規範MySql資料庫
- Oracle資料庫索引管理規範Oracle資料庫索引
- 【MySQL】資料庫開發規範MySql資料庫
- SQL Server資料庫命名規範SQLServer資料庫
- MySQL資料庫設計規範和優化建議MySql資料庫優化
- 資料庫表欄位命名規範資料庫
- MySQL 資料庫規範--設計篇MySql資料庫
- MongoDB資料庫的設計規範MongoDB資料庫
- MySQL之規範資料庫設計MySql資料庫
- mysql之 資料庫開發規範MySql資料庫
- SQL Server 資料庫設計規範SQLServer資料庫
- 資料庫物件命名規範問題....資料庫物件
- 資料庫系統原理-關聯式資料庫的規範化理論總結資料庫
- 資料的規範化——Pandas處理
- 【乾貨】MySQL資料庫開發規範MySql資料庫
- Postgresql 31條資料庫開發規範SQL資料庫
- Oracle 資料庫管理指令碼命名規範Oracle資料庫指令碼
- 大話資料庫程式設計規範資料庫程式設計
- 『前端規範化』CSS命名規範化前端CSS
- 如何確定一個嚴重規範化的資料庫系統?資料庫
- 1.2.4. 任務4:建立和開啟資料庫資料庫