多值依賴

多值依賴

多值依賴屬4nf的定義範圍,比函數依賴要複雜得多。在關係模式中,函數依賴不能表示屬性值之間的一對多聯繫,這些屬性之間有些雖然沒有直接關係,但存在間接的關係,把沒有直接聯繫、但有間接的聯繫稱為多值依賴的數據依賴。

在函數依賴中,X與Y是否存在函數依賴關係,只需考察X,Y的兩組屬性,與別的屬性無關。而在多值依賴中,X與Y是否存在多值依賴還需看屬性Z。

數學定義


設R(U)是屬性集U上的一個關係模式。X,Y,Z是U的子集,並且Z=U-X-Y。關係模式R(U)中多值依賴X→→Y成立,當且僅當對R(U)的任一關係r,給定的一對(x,z)值有一組Y的值,這組值僅僅決定於x值而與z值無關。
平凡的多值依賴與非平凡的多值依賴:
若X→→Y,而Z為空集,則稱X→→Y為平凡的多值依賴;若Z不為空,則稱其為非平凡的多值依賴。

性質


1)對稱性:使用上述定義的符號,若X→→Y,則X→→Z .
2)實例r的X或Z每增刪一個值,r就須同步增刪多條記錄。
3)若X→Y,則X→→Y。故可把函數依賴看成多值依賴的特款。

舉例


有這樣一個關係 <倉庫管理員,倉庫號,庫存產品號> ,假設一個產品只能放到一個倉庫中,但是一個倉庫可以有若干管理員,那麼對應於一個 <倉庫管理員,庫存產品號>有一個倉庫號,而實際上,這個倉庫號只與庫存產品號有關,與管理員無關,就說這是多值依賴。

特點


(1)允許X的一個值決定Y的一組值,這種決定關係與Z取值無關。
(2)多值依賴是全模式的依賴關係。
多值依賴的缺點是:數據冗餘太大

關係模式分解


為降低數據冗餘,作模式分解,使子模式的Z=Ø,僅有平凡多值依賴。對前例,子模式為R1(倉庫,僱員),R2(倉庫,物資)