-
Chương 1: CÁC KHÁI NIỆM CƠ BẢN
Các khái niệm cơ bản
-
Chương 2: MÔ HÌNH THỰC THỂ LIÊN KẾT
Mô hình thực thể liên kết
-
Chương 3: MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ
Mô hình cơ sở dữ liệu quan hệ
-
Chương 4: ĐẠI SỐ QUAN HỆ
Các phép toán trên dữ liệu
-
Chương 5: RÀNG BUỘC TOÀN VẸN
-
Chương 6: PHỤ THUỘC HÀM
-
Chương 7: CHUẨN HÓA CƠ SỞ DỮ LIỆU
6.1. KHái niệm phụ thuộc hàm
Khái niệm phụ thuộc hàm là khái niệm cơ bản và quan trọng nhất trong thiết kế cơ sở dữ liệu. Nó là thước đo để đánh giá một thiết kế cơ sở dữ liệu có tốt hay không. Phụ thuộc hàm chính là những ràng buộc dữ liệu được suy ra từ ý nghĩa và các mối liên quan giữa các thuộc tính
5.1.1. Định nghĩa phụ thuộc hàm
Cho R(U), với R là quan hệ và U là tập thuộc tính.
Cho X,Y ⊆U, phụ thuộc hàm X → Y (đọc là X xác định Y) được định nghĩa là:
∀ t, t’ ∈ R nếu t.X = t’.X thì t.Y = t’.Y
(Có nghĩa là: Nếu hai bộ có cùng trị X thì có cùng trị Y hay giá trị của bộ tại thuộc tính X xác định duy nhất các giá trị tại thuộc tính Y)
Ý nghĩa toán học của phụ thuộc hàm X->Y: một giá trị của tập X xác định duy nhất 01 giá trị của tập Y.
Và ta nói X xác định Y hay Y phụ thuộc hàm vào X. Phụ thuộc hàm được suy ra từ những quy tắc dữ liệu khi ta khảo sát yêu cầu của bài toán.
Phụ thuộc hàm viết tắt là FD (Functional Dependency), trong đó X được gọi là vế trái của phụ thuộc hàm và Y là vế phải phụ thuộc hàm.
Để biểu diễn các phụ thuộc hàm trong một lược đồ quan hệ, chúng ta sử dụng khái niệm sơ đồ phụ thuộc hàm. Mỗi FD được biểu diễn bằng một đường nằm ngang. Các thuộc tính ở vế trái của FD được nối với đường biểu diễn FD bằng các đường thẳng đứng, các thuộc tính ở vế phải của FD được nối với đường biểu diễn FD bằng mũi tên chỉ đến các thuộc tính.
Ví dụ: Ta có lược đồ cơ sở dữ liệu
MƯỢN(Sốthẻ, Mãsốsách, Tênngườimượn, Tênsách, Ngàymượn)
Với các phụ thuộc hàm:
Sốthẻ → Tênngườimượn
Mãsốsách → Tênsách
Sốthẻ, Mãsốsách → Ngàymượn
Biểu diễn phụ thuộc hàm dưới dạng sơ đồ ta có:
Nhận xét: cho một phụ thuộc hàm X -> Y thì không thể nói gì về Y -> X.
Ví dụ: Có MãSV -> TênSV nhưng không thể khẳng định có phụ thuộc TênSV -> MãSV vì tên sinh viên có thể trùng nhau.