Một phụ thuộc chức năng trong cơ sở dữ liệu thực thi một tập hợp các ràng buộc giữa các thuộc tính. Điều này xảy ra khi một thuộc tính trong một quan hệ xác định duy nhất một thuộc tính khác. Điều này có thể được viết A -> B có nghĩa là "B phụ thuộc vào A về mặt chức năng." Đây còn được gọi là sự phụ thuộc vào cơ sở dữ liệu.
Trong mối quan hệ này, A xác định giá trị của B, còn B phụ thuộc vào A.
Tại sao sự phụ thuộc chức năng lại quan trọng trong thiết kế cơ sở dữ liệu
Sự phụ thuộc chức năng giúp đảm bảo tính hợp lệ của dữ liệu. Hãy xem xét một bảng Nhân viên liệt kê các đặc điểm bao gồm Số An sinh Xã hội (SSN), tên, ngày sinh, địa chỉ, v.v.
Thuộc tính SSN sẽ xác định giá trị của tên, ngày sinh, địa chỉ và có thể là các giá trị khác, vì số an sinh xã hội là duy nhất, trong khi tên, ngày sinh hoặc địa chỉ có thể không. Chúng ta có thể viết nó như thế này:
SSN -> tên, ngày sinh, địa chỉ
Do đó, tên, ngày sinh và địa chỉ phụ thuộc về mặt chức năng vào SSN. Tuy nhiên, câu lệnh ngược lại (tên -> SSN) không đúng vì nhiều nhân viên có thể trùng tên nhưng sẽ không bao giờ có cùng SSN. Nói một cách khác, cụ thể hơn, nếu chúng ta biết giá trị của thuộc tính SSN, chúng ta có thể tìm thấy giá trị của tên, ngày sinh và địa chỉ. Nhưng nếu thay vào đó, chúng tôi chỉ biết giá trị của thuộc tính name, chúng tôi không thể xác định SSN.
Phía bên trái của một phụ thuộc hàm có thể bao gồm nhiều hơn một thuộc tính. Giả sử chúng tôi có một doanh nghiệp với nhiều địa điểm. Chúng ta có thể có một bảng Nhân viên với các thuộc tính nhân viên, chức danh, phòng ban, vị trí và người quản lý.
Nhân viên xác định vị trí anh ta đang làm việc, do đó, có một sự phụ thuộc:
nhân viên -> vị trí
Nhưng vị trí có thể có nhiều người quản lý, vì vậy nhân viên và bộ phận cùng xác định người quản lý:
nhân viên, bộ phận -> người quản lý
Sự phụ thuộc và chuẩn hóa chức năng
Sự phụ thuộc chức năng góp phần vào cái được gọi là chuẩn hóa cơ sở dữ liệu, đảm bảo tính toàn vẹn của dữ liệu và giảm dư thừa dữ liệu. Nếu không có chuẩn hóa, không có gì đảm bảo rằng dữ liệu trong cơ sở dữ liệu là chính xác và đáng tin cậy.