Relational-Theory

函式依賴和連接依賴的區別

  • July 17, 2018

根據定義,函式依賴定義為

令 X 和 Y 是關係 R 的屬性的子集。當且僅當對於 R 的任何實例 r,當 r 的兩個元組 t1 和 t2 在屬性 X 上一致時,函式依賴 X → Y 對 R 成立在屬性 Y 上。也就是說,

t1.X = t2.X ⇒ t1.Y = t2.Y

同時,一個連接依賴

如果 T 總是可以通過連接多個具有 T 屬性子集的表來重新創建,則表 T 受連接依賴關係的影響。

我可能是錯的,但我想知道功能依賴的概念和連接依賴之間是否有任何關係。

Join Dependencies 可以被認為是 Multivalued Dependencies 的泛化,遵循關係 R 中的 Multivalued Dependency X →→ Y 可以看作是編寫二元Join Dependency 的另一種方式⨝

$$ XY, X(U − Y) $$,其中 U 是關係 R 的所有屬性的集合。 例如,在描述員工及其工資歷史以及其他屬性的關係中R(empNo, salary, year, name, role),我們可以說有一個 MultivaluedDependency empNo →→ salary, year,或者等價地有一個 Join Dependency ⨝[{empNo, salary, year}, {empNo, name, role}](請注意,這清楚地表明在 R 中也包含“對偶”多值依賴empNo →→ name, role)。

您在詢問功能依賴關係和連接依賴關係之間存在哪些關係。這個問題是合理的,因為函式依賴和多值依賴之間存在關係。

Abiteboul, S. “數據庫基礎”的第 8 章中。馬薩諸塞州雷丁:Addison-Wesley,1995 年。您可以找到一個也被證明的答案:

提案 8.3.3。令 U 是一組屬性,{X, Y, Z} 是 U 的一個分區,而 Σ 是一組 U 上的函式依賴關係。那麼 Σ ⊨ ⨝

$$ XY, XZ $$當且僅當 Σ ⊨ X → Y 或 Σ ⊨ X → Z。

換句話說,如果一個功能依賴X → Y在關係模式 R 中成立,那麼這意味著二元連接依賴⨝[XY, XZ]成立,反之亦然。請注意,這相當於說您始終可以對具有 , 中的函式依賴關係的關係進行R{X,Y,Z}無損X → Y分解。R1{XY}``R2{XZ}

因此,例如,在前面的範例中,因為empNo → name,連接依賴關係⨝[{empNo, name}, {empNo, salary, year, role}]成立並且{R1(empNo, name), R2(empNo, salary, year, role)}是無損分解。

引用自:https://dba.stackexchange.com/questions/194389