1. 程式人生 > >數據庫範式小結 1NF 2NF BCNF 3NF 4NF DB normal form

數據庫範式小結 1NF 2NF BCNF 3NF 4NF DB normal form

key rtm net 能夠 candidate iss nbsp name ast

1. 1NF指關系中的每個變量不可再分

2. 2NF指消除了非主屬性對碼(candidate key)的部分依賴的1NF

比如(S#,C#)-> SN ,(S#,C#)-> SD 。S#->SD那麽SD部分依賴與候選鍵,不是2NF,僅僅能是1NF;分解為SC(S#, C#, G)和S_SD(S#,SN,SD,DEAN)就是2NF

3. BCNF指消除了主屬性對碼(candidate key)的部分依賴的2NF

比如 (S#,C#)->T#, T#->C#不是BCNF。由於candidate 是 (S#,T#),(S#,C#),主屬性C#部分依賴於(S#,T#),所以不是BCNF。能夠分解為:

(S#,T#),(T#,C#)兩張表

4. 3NF指消除了傳遞依賴的BCNF

比如 S#->SD, SD->DEAN不是3NF,由於DEAN傳遞依賴於S#,能夠分解為STUDENT(S#,SN,SD)和DEPT(SD,DEAN)

4. 4NF指消除了多值依賴的3NF

比如:

技術分享

他的原來的主鍵為(C#,T#,B#),分解為(C#,T#)和(C#,B#)



Comments: SN = Student Name, SD = Student Department, T# = the # of teacher


數據庫範式小結 1NF 2NF BCNF 3NF 4NF DB normal form