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


一、三大范式通俗解釋:

(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)修正: 
                      學生表:學號, 姓名, 年齡, 所在學院;
                      學院表:學院, 電話 

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM