11 數據庫的設計三範式

11 數據庫的設計三範式


一、什麼數據庫範式

  1. 設計關係數據庫時,遵從不同的規範要求,設計出合理的關係型數據庫,這些不同的規範要求被稱爲不同的範式,各種範式呈遞次規範,越高的範式數據庫冗餘越小
  2. 目前關係數據庫有六種範式:第一範式(1NF)、第二範式(2NF)、第三範式(3NF)、巴斯-科德範式(BCNF)、第四範式(4NF)和第五範式(5NF,又稱完美範式)。
  3. 滿足最低要求的範式是第一範式(1NF)。在第一範式的基礎上進一步滿足更多規範要求的稱爲第二範式(2NF),其餘範式以次類推。一般來說,數據庫只需滿足第三範式(3NF)就行了。

二、第一範式(1NF):

  1. 任何一張表都應該有主鍵,並且每一個字段原子性不可再分。即每個字段的數據不能的集合、數組等。

三、第二範式(2NF)

  1. 建立在第一範式基礎上,所有非主鍵字段完全依賴主鍵,不能產生部份依賴

  2. 解決多對多問題

    • 三張表,關係表加外鍵
      t_student學生表
    sno(pk) sname
    1 張三
    2 李四
    3 王五

    t_teacher教師表

    tno(pk) tname
    1 張老師
    2 李老師
    3 王老師

    t_student_teacher_relation學生教師關係

    id(pk) sno(fk) tno(fk)
    1 1 3
    2 1 2
    3 2 1
    4 2 3
    5 3 1
    6 3 2

四、第三範式(3NF)

  1. 建立在第二範式的基礎上,所有非主鍵字段直接依賴主鍵,不能產生傳遞依賴。

  2. 解決一對多問題

    • 兩張表,多的表加外鍵

    t_class班級表

    cno(pk) cname
    101 一班
    102 二班
    103 三班

    t_student學生表

    sno(pk) sname cno(fk)
    1001 張三 101
    1002 李四 101
    1003 王五 102

五、注意

在實際開發中,爲了滿足客戶的要求,有時候會拿冗餘換執行速度。

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