數據庫三大範式

三大範式

數據庫設計原則也就是指數據庫的三大範式.

作用:是用來指導數據庫設計人員的一種設計思想,保證數據庫的設計是具備可拓展性,無數據的冗餘,結構清晰簡單明瞭.

  • 1NF:原子性,也就是說表中任何一個列都是唯一的,不可再拆分的
    R(id,name,age),此關係中name可以分爲first_name和last_name,
    所以,此設計不符合1NF,應該重新設計爲:
    R(id,first_name,last_name,age)

  • 2NF:在1NF的基礎上,不存在非關鍵列部分依賴於關鍵列,也就是說所有的非關鍵列都必須完全依賴於關鍵列.
    R(sno,sname,cno,cname,score)
    由於以上不管是以哪一列作爲關鍵列,都存在其他非關鍵列部分依賴
    於關鍵列,所以此設計不符合2NF,應該重新設計爲:
    R1(sno,sname),存放學生信息的表
    R2(cno,cname),存放課程信息的表
    R3(sno,cno,score),存放學生與課程考試成績的中間表

  • 3NF:在2NF的基礎上,不存在非關鍵列傳遞函數依賴於關鍵列,也就是說,所有的非關鍵列都必須直接依賴於關鍵列
    如果A依賴於B,B依賴於C,我們就說A傳遞函數依賴於C
    學生考入某所大學的信息表:
    R(sno,sname,uno,uname,phone,address)
    如果以sno作爲關鍵列,sanme,uno是直接依賴於sno,但是uname,phone,
    address這三列都是直接依賴於uno,間接依賴於sno,所以此設計不符合
    3NF,應該重新設計爲:
    R1(sno,sname,uno),存放學生信息的表

    R2(uno,uname,phone,address);//存放學校的表

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