Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Phụ thuộc hàm (Functional Dependency) trong DBMS

Phụ thuộc hàm (Functional Dependency) là gì?

Phụ thuộc hàm trong DBMS, như tên gọi, là mối quan hệ giữa các thuộc tính của một bảng phụ thuộc lẫn nhau. Được giới thiệu bởi E. F. Codd, nó giúp ngăn chặn dư thừa dữ liệu và nhận ra thiết kế kém.

Để hiểu kỹ khái niệm, hãy xét P là một quan hệ với thuộc tính A và B. Phụ thuộc hàm được biểu diễn bằng → (dấu mũi tên).

Sau đây biểu diễn phụ thuộc hàm giữa các thuộc tính bằng dấu mũi tên:

A → B

Trên gợi ý:

Phụ thuộc hàm (Functional Dependency) trong DBMS

Ví dụ

Ví dụ sau giúp dễ hiểu phụ thuộc hàm:

Chúng ta có bảng <Department> với hai thuộc tính: DeptId và DeptName.

DeptId = Department ID
DeptName = Department Name

DeptId là khóa chính của chúng ta. Ở đây, DeptId xác định duy nhất thuộc tính DeptName. Điều này là vì nếu bạn muốn biết tên phòng ban, trước tiên bạn cần có DeptId.

DeptId DeptName
001 Finance
002 Marketing
003 HR

Do đó, phụ thuộc hàm giữa DeptId và DeptName có thể xác định là DeptId phụ thuộc hàm vào DeptName:

DeptId → DeptName

Các loại Phụ thuộc hàm

Phụ thuộc hàm có ba dạng:

  • Phụ thuộc hàm tầm thường (Trivial Functional Dependency)
  • Phụ thuộc hàm không tầm thường (Non-Trivial Functional Dependency)
  • Phụ thuộc hàm hoàn toàn không tầm thường (Completely Non-Trivial Functional Dependency)

Bắt đầu với Phụ thuộc hàm tầm thường:

Phụ thuộc hàm tầm thường (Trivial Functional Dependency)

Xảy ra khi B là tập con của A trong:

A → B

Ví dụ

Chúng ta xét cùng bảng <Department> với hai thuộc tính để hiểu khái niệm phụ thuộc tầm thường.

Sau đây là phụ thuộc hàm tầm thường vì DeptId là tập con của DeptId và DeptName:

{ DeptId, DeptName } → Dept Id

Phụ thuộc hàm không tầm thường (Non-Trivial Functional Dependency)

Xảy ra khi B không phải là tập con của A trong:

A → B

Ví dụ

DeptId → DeptName

Trên là phụ thuộc hàm không tầm thường vì DeptName không phải tập con của DeptId.

Phụ thuộc hàm hoàn toàn không tầm thường (Completely Non-Trivial Functional Dependency)

Xảy ra khi giao của A và B là null trong:

A → B

Tính chất Ax-i-ôm của Armstrong (Armstrong's Axioms Property of Functional Dependency)

Tính chất Ax-i-ôm của Armstrong được phát triển bởi William Armstrong năm 1974 để suy luận về phụ thuộc hàm.

Tính chất gợi ý các quy tắc đúng nếu các điều kiện sau được thỏa mãn:

  • Tính bắc cầu (Transitivity)
    Nếu A→B và B→C, thì A→C tức là quan hệ bắc cầu.
  • Tính tự phản chiếu (Reflexivity)
    A→B, nếu B là tập con của A.
  • Tính mở rộng (Augmentation)
    Quy tắc cuối gợi ý: AC→BC, nếu A→B.