資料庫三範式,輕鬆理解

來源:互聯網
上載者:User

 

網上搜羅了一大堆關於資料庫範式理解的文章,都是千律一篇的複製粘貼,連例子都是一模一樣,拜託有點創意好不,實在看不下去,自己寫一篇個人理解三範式的文章。如果有理解上的不正確之處,請聯絡我:279537592#qq.com (#=>@)

官方定義:第一範式(1NF):資料庫表中的欄位都是單一屬性的,不可再分。
我的理解:第一範式這個不用說了,只要是關聯式資料庫都滿足第一範式

官方定義:第二範式(2NF):資料庫表中不存在非關鍵字段對任一候選關鍵字段的部分函數依賴
我的理解:在第二範式中組合主鍵(AB)【註明:也叫做複合主鍵】裡面的A或者B 與其他欄位不能存在組合重複,為解決這個問題,通常的做法是咱們不用組合主鍵,添加一個ID,做為單一主鍵即可滿足第二範式。如果不想添加ID,請滿足組合主鍵(AB)裡面的A或者B 與其他欄位不能存在組合重複。
如:不滿足第二範式,複合主鍵中的A與欄位C組合重複
+------------+-----------+-------------------+
    pk                pk             row
+------------+-----------+-------------------+
    A                  B                  C
+------------+-----------+-------------------+
    A                  D                  C
+------------+-----------+-------------------+
    A                  E                  C
+------------+-----------+-------------------+

改為這樣滿足第二範式(但是不滿足第三範式,欄位A與欄位C是組合重複):
+---------+------------+-----------+-------------------+
    pk            row             row             row
+---------+------------+-----------+-------------------+
      1              A               B                  C
+---------+------------+-----------+-------------------+
      2              A               D                  C
+---------+------------+-----------+-------------------+
      3              A               E                  C
+---------+------------+-----------+-------------------+

官方定義:第三範式(3NF):在第二範式的基礎上,資料表中如果不存在非關鍵字段對任一候選關鍵字段的傳遞函數依賴則符合第三 範式。
我的理解:在第三範式中欄位與欄位之間不能存在組合重複
如:不滿足第三範式,欄位A與欄位C組合重複
+---------+------------+-----------+-------------------+---------------+
    pk            row             row             row                        row
+---------+------------+-----------+-------------------+---------------+
      1              A               B                  C                           F
+---------+------------+-----------+-------------------+---------------+
      2              A               D                  C                          G
+---------+------------+-----------+-------------------+---------------+
      3              A               E                  C                           K
+---------+------------+-----------+-------------------+---------------+

改為這樣滿足第三範式:
表1
+---------+------------+-----------+
    pk            row            row        
+---------+------------+-----------+
      1              A               B              
+---------+------------+-----------+
      2              A               D                
+---------+------------+-----------+
      3              A               E                
+---------+------------+-----------+
和表2
+---------+-------------------+------------+
    pk             row                       row
+---------+-------------------+------------+
      1              C                           F
+---------+-------------------+------------+
      2              C                           G
+---------+-------------------+------------+
      3              C                           K
+---------+-------------------+------------+

原則:當出現欄位與欄位的組合重複,如上的A和C的組合重複,首先要考慮的就是把他們拆分為2個表,具體是C拆到表1, 還是A拆到表1,看情況而定.

關鍵要理解定義這種範式標準的主要目的是為了減少資料冗餘,資料冗餘產生的本質就是在一個表中存在欄位與欄位之間的一對多,或者多對多關係。解決這個幾對幾的關係問題,就能輕易實現滿足第三範式的資料庫設計。
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.