DBMS 中的功能依賴


什麼是功能依賴

功能依賴在DBMS中,顧名思義,是指表屬性之間相互依賴的關係。由E. F. Codd提出,它有助於防止資料冗餘,並瞭解不良設計。

為了徹底理解這個概念,讓我們假設 P 是一個具有屬性AB的關係。功能依賴用->(箭頭符號)表示。

然後,以下將用箭頭符號表示屬性之間的功能依賴性:

A -> B

以上表明以下幾點

示例

以下是一個示例,可以幫助更容易地理解功能依賴性:

我們有一個<Department>表,它有兩個屬性:DeptId DeptName

DeptId = 部門 IDDeptName = 部門名稱

DeptId 是我們的主鍵。在這裡,DeptId 唯一標識DeptName 屬性。這是因為,如果您想了解部門名稱,則首先需要擁有DeptId

DeptIdDeptName
001財務部
002市場部
003人力資源部

因此,DeptId DeptName 之間的上述功能依賴性可以確定為DeptId 功能依賴於DeptName

DeptId -> DeptName

功能依賴的型別

功能依賴有三種形式:

  • 平凡功能依賴
  • 非平凡功能依賴
  • 完全非平凡功能依賴

讓我們從平凡功能依賴開始:

平凡功能依賴

當 B 是 A 的子集時,就會發生這種情況:

A ->B

示例

我們正在考慮具有兩個屬性的相同的<Department>表來理解平凡依賴的概念。

以下是一個平凡的功能依賴,因為DeptId DeptId DeptName的子集。

{ DeptId,  DeptName } -> Dept Id

非平凡功能依賴

當 B 不是 A 的子集時,就會發生這種情況:

A ->B

示例

DeptId ->  DeptName

以上是一個非平凡的功能依賴,因為 DeptName 不是 DeptId 的子集。

完全非平凡功能依賴

當 A 與 B 的交集為空時,就會發生這種情況:

A ->B

阿姆斯特朗公理功能依賴的性質

阿姆斯特朗公理性質是由 William Armstrong 在 1974 年提出的,用於推理功能依賴性。

該性質提出了一些規則,如果滿足以下條件,則這些規則成立。

  • 傳遞性如果 A->B 且 B->C,則 A->C,即傳遞關係。
  • 自反性A-> B,如果 B 是 A 的子集。
  • 增強性最後一條規則表明:如果 A->B,則 AC->BC。

更新於: 2023-09-13

31K+ 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告