數據庫設計的三大範式通俗解釋 數據庫設計的三大範式通俗解釋

一、三大範式通俗解釋:

(1)簡單歸納:

  第一範式(1NF):字段不可分;
  第二範式(2NF):有主鍵,非主鍵字段依賴主鍵;
  第三範式(3NF):非主鍵字段不能相互依賴。

(2)解釋:

  1NF:原子性。 字段不可再分,否則就不是關係數據庫;;
  2NF:唯一性 。一個表只說明一個事物;
  3NF:每列都與主鍵有直接關係,不存在傳遞依賴。

二、例子說明

  (1)不符合第一字段的例子

                                                                             表:字段1, 字段2(字段2.1,字段2.2), 字段3

字段2可以拆分成字段2.1和字段2.2,不符合第一範式。

  (2)不符合第二範式的例子 

                                                                            表:學號, 姓名, 年齡, 課程名稱, 成績, 學分 

這個表明顯說明了兩個事務:學生信息, 課程信息。

  1)存在以下問題:

                               a、數據冗餘:每條記錄都含有相同信息; 
                               b、刪除異常:刪除所有學生成績,就把課程信息全刪除了; 
                               c、插入異常:學生未選課,無法記錄進數據庫; 
                               d、更新異常:調整課程學分,所有行都調整。
  2)修正:
                               學生表:學號, 姓名, 年齡 

                               課程表:課程名稱,學分     

                               選課關係表:學號, 課程名稱, 成績


  (3)不符合第三範式的例子 


                                                                         表:學號, 姓名, 年齡, 所在學院, 學院聯繫電話

其中關鍵字爲單一關鍵字"學號"。存在依賴傳遞::(學號) → (所在學院) → (學院聯繫電話) 。

  1)存在問題::
      a、數據冗餘:有重複值; 
      b、更新異常:有重複的冗餘信息,修改時需要同時修改多條記錄,否則會出現數據不一致的情況 
      c、刪除異常 
  2)修正: 
                      學生表:學號, 姓名, 年齡, 所在學院;
                      學院表:學院, 電話 

 

參考:數據庫設計的三大範式通俗解釋

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章