資料庫管理系統中的函式依賴
什麼是函式依賴
函式依賴在資料庫管理系統(DBMS)中,顧名思義,是表屬性之間相互依賴的關係。由E. F. Codd提出,它有助於防止資料冗餘並識別不良設計。
為了透徹理解這個概念,讓我們假設 P 是一個具有屬性A和B的關係。函式依賴用->(箭頭符號)表示。
那麼以下將用箭頭符號表示屬性之間的函式依賴:
A -> B |
以上表示:
示例
以下示例將有助於理解函式依賴:
我們有一個<部門>表,其中包含兩個屬性:DeptId和DeptName。
DeptId = 部門ID DeptName = 部門名稱 |
DeptId是我們的主鍵。這裡,DeptId唯一標識DeptName屬性。這是因為,如果您想知道部門名稱,首先需要知道DeptId。
DeptId | DeptName |
001 | 財務部 |
002 | 市場部 |
003 | 人力資源部 |
因此,DeptId和DeptName之間的上述函式依賴可以確定為DeptId函式依賴於DeptName:
DeptId -> DeptName |
函式依賴的型別
函式依賴有三種形式:
- 平凡函式依賴
- 非平凡函式依賴
- 完全非平凡函式依賴
讓我們從平凡函式依賴開始:
平凡函式依賴
當 B 是 A 的子集時,就會發生這種情況:
A ->B |
示例
我們考慮同一個具有兩個屬性的<部門>表來理解平凡依賴的概念。
以下是平凡函式依賴,因為DeptId是DeptId和DeptName的子集
{ DeptId, DeptName } -> Dept Id |
非平凡函式依賴
當 B 不是 A 的子集時,就會發生這種情況:
A ->B |
示例
DeptId -> DeptName |
以上是非平凡函式依賴,因為DeptName不是DeptId的子集。
完全非平凡函式依賴
當 A 與 B 的交集為空時,就會發生這種情況:
A ->B |
Armstrong公理函式依賴的性質
Armstrong公理性質由William Armstrong於1974年提出,用於推論函式依賴。
該性質提出瞭如果滿足以下條件則成立的規則:
- 傳遞性如果A->B且B->C,則A->C,即傳遞關係。
- 自反性如果B是A的子集,則A->B。
- 增強性最後一條規則表示:如果A->B,則AC->BC。
廣告