設R(U)是一個屬性集U上的關系模式,X和Y是U的子集。若對于R(U)的任意一個可能的關系r,r 中不可能存在兩個元組在X上的屬性值相等, 而在Y上的屬性值不等, 則稱“X函數確定Y”或“Y函數依賴于X”,記作X→Y。
X→Y,但Y?X則稱X→Y是非平凡的函數依賴。
X→Y,但Y?X 則稱X→Y是平凡的函數依賴。
對于任一關系模式,平凡函數依賴都是必然成立的,它不反映新的語義。若不特別聲明, 我們總是討論非平凡函數依賴。
若X→Y,則X稱為這個函數依賴的決定因素(Determinant)。
若X→Y,Y→X,則記作X←→Y。
若Y不函數依賴于X,則記作X?Y。
定義6.2 ?在R(U)中,如果X→Y,并且對于X的任何一個真子集X’, 都有 X’ ? Y, 則稱Y對X完全函數依賴,記作X f→ Y。
若X→Y,但Y不完全函數依賴于X,則稱Y對X部分函數依賴,記作X p→ Y
定義6.3 ?在R(U)中,如果X→Y(Y?X),Y?X,Y→Z,Z?Y, 則稱Z對X傳遞函數依賴(transitive functional dependency)。記為:X → Z。
注: 如果Y→X, 即X←→Y,則Z直接依賴于X,而不是傳遞函數依賴。
[例] 在關系Std(Sno, Sdept, Mname)中,有:
Sno → Sdept,Sdept → Mname,
Mname傳遞函數依賴于Sno