數據庫範式1NF 2NF 3NF詳細闡述

範式:關係數據庫中的關係是要滿足一定要求的,滿足不同程度要求的不同範式。滿足最低要求的叫第一範式,簡稱1NF ,在第一範式中滿足進一步要求的爲第二範式,其餘以此類推。通俗來說是滿足數據庫關係表中的一套規則。

 

範式理論研究:Codd提出1NF,2NF,3NF概念

 

2NF

  例如:有關係模式S-L-C(Sno,Sdept,Sloc,Cno,Grade),其中Sloc爲學生的住處,並且每個系的學生住在同一個地方。S-L-C的碼爲(Sno,Cno)。則函數依賴:Grade對(Sno,Cno)是完全依賴函數。這就屬於2NF。

當然  (Sno,Cno)—>Sdept  只需要其中一個Sno或Cno就能推出Sdept。記做Sdept對(Sno,Cno)碼的部分函數依賴,那麼這就不屬於2NF。

    

  一個R關係模式不屬於2NF就會產生以下幾個問題:

  (1).插入異常:假若要插入一個學生Sno=S7,Sdept=PHY,Sloc=BLD2,但該學生還沒有選課。即這個學生無Cno。這樣的元組就插不進S-L-C中。因而學生的固有信息無法插入

  (2)刪除異常:當要刪除如一個學生要刪除某一個門課程,而課程屬性是主屬性,刪除了課程整個元組就必須一起刪除,使這個學生的信息也被刪除了,從而造成刪除異常。  

 

3NF

  沒有傳遞依賴,如:關係模式SJP(S,J,P)中,S是學生,J代表課程,P代表名次,T表示教師。每一個學生選修每門課程的成績有一定的名次,每門課程中每一名次只有一個學生。由此得到函數依賴

  (S,J)—>P;(J,P)—>S  T—>J   這就是3NF

 

 

總結:    1NF就是不能有表中表

    2NF就是非主屬性全部依賴

    3NF就是沒有傳遞函數

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