資料庫的正規化學習筆記
資料的正規化分析
何謂正規化:正規化就是讓資料庫中重復的資料減少到最少,讓我們能夠快速地找到所要的資料,以提高關聯式資料庫的效能.
資料庫的正規化共分為:第一正規化(1st Normarl Form,1NF),第二正規化,第三正規化,BCNF(Boyce-Codd Normal Form),第四正規化,第五正規化等多個階段.
不過對於一個資料庫設計來說,通常只要執行到BCNF即可.其他的更高的正規化只有在特殊的情況下才會用的到.
正規化的過程是循序漸進的,資料表必須滿足第一正規化的條件下,才能進行第二正規化.也就是說第二正規化必須建立在符合第一正規化的資料表上,
依次類推,因此,第一正規化是所有正規化的基礎.
第一正規化:
1.資料表中必須有PRIMARY KEY,而其他所有的欄位都相依與PRIMARY KEY.相依是指一個資料表中,欄位B的值必須搭配欄位A才有意義.
2,每個欄位中只儲存單一值,例如同一筆記錄的姓名欄位中不能放2個人的姓名
3.資料表中沒有意義相同的多個欄位.
反之,若資料表不符合以上規則,則成為非正規化的資料表.
不符合1NF的缺點
1.欄位長度無法確定
2.降低存取資料的效率
第二正規化:
1.符合第一正規化
2.各欄位與PRIMARY KEY 沒有部分相依的關系.(部分相依只有在primary key由多個欄位組成時才會產生,它是由某些欄位只有主鍵中
部分欄位有相依性,而另一部分的欄位沒有相依性)
部分相依會造成以下問題:
1 .新增資料可能無法錄入
2.更改資料時沒有效率
3.刪除資料時可能會同時刪除仍有用的資料.
第三正規化:
1.符合第二正規化
2.個欄位與主鍵間沒有間接相依的關系
對於大多數資料庫來說,通常只需要執行到3NF就足夠了.但如果資料表的主鍵由多個欄位組成,既可以Boyece-Codd正規化來繼續檢查
也成為廣義的3NF
1.符合2NF
2.各欄位與主鍵沒有間接相依的關系
3.主鍵中的各欄位不可以相依與其他非主鍵的欄位.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7899089/viewspace-611721/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java學習筆記:資料庫中的正規化和反正規化Java筆記資料庫
- 資料庫表設計正規化 筆記資料庫筆記
- 資料庫學習(一)三正規化資料庫
- 正規表示式學習筆記筆記
- 規劃關聯式資料庫學習筆記資料庫筆記
- 資料庫學習筆記資料庫筆記
- Ruby學習筆記-正規表示式筆記
- 正規表示式學習筆記一筆記
- PERL學習筆記---正規表示式筆記
- 正規表示式學習筆記 (轉)筆記
- 學習筆記:深度學習中的正則化筆記深度學習
- 菜鳥從零學習資料庫(一)——三正規化資料庫
- MySQL資料庫學習筆記MySql資料庫筆記
- 資料庫設計正規化2——BC正規化和第四正規化資料庫
- 資料庫設計正規化1——三正規化資料庫
- JavaScript正規表示式學習筆記(一)JavaScript筆記
- Python學習筆記 - 正規表示式Python筆記
- 資料庫三正規化資料庫
- 資料庫 三大正規化資料庫
- 啥是資料庫正規化資料庫
- 資料庫設計---正規化資料庫
- 資料庫正規化那些事資料庫
- 細說資料庫正規化資料庫
- 資料庫三大正規化資料庫
- 資料庫mysql學習筆記記錄資料庫MySql筆記
- 資料庫(第一正規化,第二正規化,第三正規化)資料庫
- python 中的正規表示式學習筆記Python筆記
- PERL學習筆記---正規表示式的應用筆記
- 正規表示式學習筆記(1)-認識正則筆記
- Redis學習筆記(七) 資料庫Redis筆記資料庫
- 達夢資料庫學習筆記資料庫筆記
- python學習筆記:資料庫Python筆記資料庫
- 資料庫原理學習筆記——引言資料庫筆記
- 資料庫中的正規化和反正規化詳解!資料庫
- 資料庫標準化與正規化資料庫
- js加固之正規表示式學習筆記JS筆記
- 學習筆記-5.1.正規表示式1筆記
- Python下正規表示式學習筆記Python筆記