數據庫范式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就是沒有傳遞函數


免責聲明!

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



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