函式依賴集的等價是什麼?


如果函式依賴 (FD) 集 F 的閉包中包含 E 中的每個 FD,則稱函式依賴集 (FD) F 覆蓋另一個函式依賴集 E;也就是說,如果可以從 F 推匯出 E 中的每個依賴項。

或者,我們可以說 E 被 F 覆蓋。如果 E+= F+,則兩個函式依賴集 E 和 F 等價。也就是說,如果 E 覆蓋 F 且 F 覆蓋 E,則 E 等價於 F。

為了確定 F 是否覆蓋 E,我們針對 E 中的每個 FD X->y 計算 F 相對於 X 的閉包 X+,然後檢查 X+ 是否包含屬性 Y。

示例

R=(A,B,C,D,E,F)

F1={A->BC, B->CDE, AE->F}

F2={A->BCF, B->DE, E->AB}

檢查 F1 和 F2 是否等價。

解決方案

檢查 F1 是否覆蓋 F2 -

A+={A,B,C,D,E,F} 包含 B,C,F

B+={B,C,D,E} 包含 D,E

E+={E} 包含 A,B

所以 F1 不覆蓋 F2。

因此,F1 和 F2 不等價。

示例

考慮另一個兩個函式依賴等價的示例。

R=(A,C,D,E,H)

F1={A->C, AC->D, E->AD, E->H},

F2={A->CD, E->AH}

檢查 F1 和 F2 是否等價?

解決方案

檢查 F1 是否覆蓋 F2 -

A+={A,C,D} 包含 C,D

E+={A,D,E,H} 包含 A,H

所以 F1 覆蓋 F2

檢查 F2 是否覆蓋 F1

A+={A,C,D} 包含 C

{ A,C}+={A,C,D} 包含 D

E+={A,C,D,E,H} 包含 A,D,H

所以 F2 覆蓋 F1。

因此,F1 和 F2 等價。

這可以用圖表表示如下 -

更新於: 2021年7月3日

6K+ 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告