複製鏈接
請複製以下鏈接發送給好友

傳遞函數依賴

鎖定
傳遞函數依賴屬於關係模式R(U),傳遞函數依賴在關係模式 R(U)中,設 X,Y,Z 是 U 的不同的屬性子集,如果 X 確定 Y、Y 確定 Z,且有 X 不包含 Y,Y 不確定 X,(X∪Y)∩Z=空集合,則稱 Z 傳遞函數依賴於X。 [1] 
中文名
傳遞函數依賴 [1] 
外文名
Transitive Functional Dependency [1] 
類    型
數學 [1] 
模    式
關係模式 [1] 
類    別
函數依賴 [1] 

目錄

傳遞函數依賴定義1

關係模式R (U) 中, 如果X→Y, Y→Z, Z不是Y的子集, Y不函數決定X, 則稱Z對X傳遞函數依賴 (Transitive Functional Dependency) 。該定義指明傳遞函數依賴包含2種情況: [1] 
(1) Y⊆X成立, 這種情況傳遞函數依賴蜕變為部分函數依賴, 即Z部分函數依賴於X, 部分函數依賴是特殊的傳遞函數依賴。 [1] 
例證1:設關係模式R (U, F) , U={ Sno, Sna, Cno, G }, 其中 Sno:學號, Sna:姓名, Cno:課號, G:成績, F={ (Sno Cno) →G, Sno→Sna }。 [1] 
(Sno Cno)→ Sno [1] 
Sno→ Sna [1] 
Sno不函數決定(Sno Cno) [1] 
Sna不是Sno的子集 [1] 
【Sna傳遞函數依賴於(Sno Cno)】 [1] 
但由於Sno ⊆ (Sno Cno) , 所以Sna 對 (Sno Cno) 的傳遞函數依賴蜕變成了部分函數依賴。 [1] 
例證2:若R∈3NF, 則R∈2NF。[若關係模式R (U, F) 的函數依賴集F中不存在非主屬性對碼的傳遞函數依賴, 則F中一定不存在非主屬性對碼的部分函數依賴。 [1] 
證明 (反證法) :假設關係模式R (U, F) 滿足3NF, 而R不滿足2NF, 即關係模式R (U, F) 的函數依賴集F中不存在非主屬性對碼的傳遞函數依賴, 而存在非主屬性對碼的部分函數依賴。 [1] 
F中存在非主屬性對碼的部分函數依賴即關係模式R中存在碼X, 屬性組Y, 非主屬性Z, Y是X真子集, 有X→Z (碼的定義) , X→Y (平凡依賴) , Y→Z成立, 所以X→ΡΖ, 即Z部分依賴於碼X。同時Z又傳遞依賴於碼X, 因為滿足傳遞依賴的條件: [1] 
X → Y 平凡函數依賴 [1] 
Y → Z [1] 
Y 不函數決定 X [1] 
Z 不是Y的子集 [1] 
【Z傳遞依賴於碼X】 [1] 
與假設矛盾, 所以命題成立。 [1] 
(2) Y⊆X不成立, 這種情況是普通意義上的傳遞函數依賴。 [1] 
例證3:設關係模式R(U,F) ,U={Sno,Sdept,Sloc}, 其中Sno:學號,Sdept:系別,Sloc:住宿樓號;F={Sno→Sdept,Sdept→Sloc}。 [1] 
Sno→Sdept [1] 
Sdept→Sloc [1] 
Sdept不函數決定Sno [1] 
Sloc不是Sdept的子集 [1] 
【Sloc傳遞函數依賴於Sno】 [1] 
定義1指出了部分函數依賴是特殊的傳遞函數依賴, 從而使命題“若R∈3NF, 則R∈2NF”得證, 也使得各種範式之間的包含關係 (圖2) 成立, 使關係數據理論呈現系統化和一致性。 [1] 
1NF⊃2NF⊃3NF⊃BCNF⊃4NF⊃5NF [1] 
範式間的包含關係 [1] 

傳遞函數依賴定義2

在R (U) 中, 如果X→Y, Y→Z, Y不是X的子集, Y不函數決定X , 則稱Z對X傳遞函數依賴。 [2] 
因指出了Y不是X的子集, 所以否定了部分函數依賴是特殊的傳遞函數依賴。所定義的傳遞函數依賴只包含定義1中的情況 (2) , 從而無法證明命題“若R∈3NF, 則R∈2NF”的正確性, 使各種範式之間不具有圖1的包含關係, 關係數據理論呈現局部性和不一致性。所以定義2不嚴謹。 [2] 

傳遞函數依賴定義3

在R (U) 中, 如果X→Y, Y→Z, Y不是X的子集, Z不是Y的子集, Z不是X的子集, Y不函數決定X, 則稱Z對X傳遞函數依賴 [3] 
同定義2一樣指出了Y不是X的子集, 否定了部分函數依賴是特殊的傳遞函數依賴, 同樣使各種範式之間不具有圖1的包含關係, 關係數據理論呈現局部性和不一致性, 所以不嚴謹。 [3] 

傳遞函數依賴定義4

在R (U) 中, 如果X→Y, Y→Z, Y不函數決定X, 則稱Z對X傳遞函數依賴 [4]  。由於沒有指出Y不是X的子集和Z不是Y的子集[用A和B分別表示命題“Y是X的子集”和命題“Z是Y的子集”, 則(A, B) 真值表為 (0, 0) , (1, 1) , (1, 0) , (0, 1) ]。所以可以分下面4種情況進行討論。 [1] 
(1) 當 (A, B) 為 (0, 0) 時, 這與定義1的情況 (2) 相同, 是普通意義上的真正的傳遞函數依賴。 [1] 
(2) 當 (A, B) 為 (1, 1) 時, 則Z ⊆ X成立, X→Z是平凡函數依賴。 [1] 
(3) 當 (A, B) 為 (1, 0) 時, 這與定義1的情況 (1) 相同, Z部分函數依賴於X。 [1] 
(4) 當 (A, B) 為 (0, 1) 時, 依據分解規則X對Z直接決定。 [1] 
所以定義4實際上把平凡函數依賴、部分函數依賴和X對Z直接決定都定義為傳遞函數依賴, 使傳遞函數依賴沒有任何的特殊性, 尤其把平凡函數依賴和X對Z直接決定都概括為傳遞函數依賴不夠嚴謹, 所以定義4同樣不嚴謹。 [1] 
參考資料