1. 程式人生 > >sql三大範式

sql三大範式

primary 復合主鍵 cred name small mil col 傳遞依賴 完全

一、第一範式:

必須有主鍵,列不可分。

二、第二範式:

當一個表是復合主鍵,非主鍵的字段不依賴於部分主鍵,

例如:

create table sci(

sno int(32),cno int(32),grade int(32),credit int(32),

primary key sno,cno

)

非關鍵字屬性credit僅函數依賴於cno,也就是credit部分依賴組合關鍵字(sno,cno)而不是完全依賴。

分成兩個關系模式 sc1(sno,cno,grade),c2(cno,credit)。

三、第三範式:

關系模式R(U,F)中的所有非主屬性對任何候選關鍵字都不存在傳遞依賴

例----S1(SNO,SNAME,DNO, DNAME, LOCATION)

關鍵字 SNO 對 LOCATION 函數決定是通過傳遞依賴 SNO -> LOCATION 實現的。也就是說,SNO不直接決定非主屬性LOCATION。

解決方法:分為兩個關系 S(SNO,SNAME,DNO),D(DNO,DNAME,LOCATION)

sql三大範式