Khái niệm
Phụ thuộc hàm (Functional Dependency - FD) trong database là ràng buộc giữa các thuộc tính: Một thuộc tính xác định duy nhất giá trị của thuộc tính khác. Ký hiệu: A → B (đọc: "B phụ thuộc hàm vào A" hoặc "A quyết định B").
- A (determinant): Thuộc tính quyết định (bên trái mũi tên).
- B (dependent): Thuộc tính phụ thuộc (bên phải mũi tên).
Tại sao FD quan trọng trong thiết kế DB?
FD đảm bảo tính hợp lệ của dữ liệu. Ví dụ bảng Employees với cột: SSN (số bảo hiểm xã hội), Name, DOB, Address...
SSNlà duy nhất → xác địnhName, DOB, Address. Viết:SSN → Name, DOB, Address.- Ngược lại
Name → SSNKHÔNG ĐÚNG vì nhiều người có thể trùng tên nhưng không trùng SSN.
Nếu biết SSN → tra được Name/DOB/Address. Biết Name → không thể xác định SSN duy nhất.
Phụ thuộc hàm với nhiều thuộc tính (Composite Determinant)
Bên trái mũi tên có thể là nhóm thuộc tính. Ví dụ công ty nhiều chi nhánh, bảng Employee: Employee, Title, Department, Location, Manager.
Employee → Location(nhân viên xác định địa điểm làm việc).- Một Location có thể có nhiều Manager → cần cả Department mới xác định Manager:
Employee, Department → Manager.
Phụ thuộc hàm và Chuẩn hóa (Normalization)
FD là nền tảng của chuẩn hóa database – quy trình tổ chức dữ liệu để:
- Loại bỏ dư thừa (redundancy).
- Đảm bảo toàn vẹn dữ liệu (integrity) – tránh anomaly khi insert/update/delete.
Không có chuẩn hóa → không đảm bảo dữ liệu chính xác, đáng tin cậy. Các dạng chuẩn (1NF, 2NF, 3NF, BCNF, 4NF, 5NF) đều dựa trên phân tích phụ thuộc hàm.
Tóm tắt
- FD: A → B (A quyết định B, B phụ thuộc A).
- Dùng khóa chính/ứng viên làm determinant phổ biến nhất.
- FD đa thuộc tính: (A, B) → C.
- Phân tích FD → thiết kế bảng chuẩn hóa → DB sạch, hiệu quả, dễ bảo trì.