CHƢƠNG 4 : PHỤC THUỘC HÀM
1. ĐỊNH NGHĨA PHỤ THUỘC HÀM
Cho quan hệ phan Cong sau:
phanCong PHICONG MAYBAY NGAYKH GIOKH
Cushing 83 9/8 10:15a Cushing 116 10/8 1:25p Clark 281 8/8 5:50a Clark 301 12/8 6:35p Clark 83 11/8 10:15a Chin 116 12/8 1:25p Copely 281 9/8 5:50a Copely 281 13/8 5:50a Copely 412 15/8 1:25p
Quan hệ phanCong diễn tả phi công nào lái máy bay nào và máy bay khởi hành vào thời gian nào. Không phải sự phối hợp bất kỳ nào giữa phi công, máy bay và ngày giờ khởi hành cũng đều đƣợc chấp nhận mà chúng có các điều kiện ràng buộc qui định sau:
+ Mỗi máy bay có một giờ khởi hành duy nhất.
+ Nếu biết phi công, biết ngày giờ khởi hành thì biết đƣợc máy bay do phi công ấy lái.
+ Nếu biết máy bay, biết ngày khởi hành thì biết phi công lái chuyến bay ấy. Các ràng buộc này là các ví dụ về phụ thuộc hàm và đƣợc phát biểu lại nhƣ sau:
57 + MAYBAY xác định GIOKH
+{PHICONG,NGAYKH,GIOKH} xác định MABAY +{MAYBAY,NGAYKH} xác định PHICONG
Hay
+ GIOKH phụ thuộc hàm vào MAYBAY
+ MABAY phụ thuộc hàm vào {PHICONG,NGAYKH,GIOKH} + PHICONG phụ thuộc hàm vào {MAYBAY, NGAYKH}
và đƣợc ký hiệu nhƣ sau: + {MAYBAY} GIOKH
+ {PHICONG, NGAYKH, GIOKH} MABAY + {MAYBAY, NGAYKH} PHICONG
Trong ký hiệu trên ta đã ký hiệu MAYBAY thay cho {MAYBAY}. Một cách tổng quát:
a. Định nghĩa phụ thuộc hàm
Cho lƣợc đồ quan hệ Q{A1, A2,…, An}. X, Y là hai tập con khác rỗng của Q+. Ta nói X xác định Y (hay Y phụ thuộc hàm vào X ) nếu với r là một quan hệ nào đó trên Q, t1,t2 r mà t1.X = t2.X t1.Y = t2.Y (nghĩa là không thể tồn tại
hai bộ trong r giống nhau ở các thuộc tính trong tập X mà lại khác nhau ở một hay nhiều thuộc tính nào đó trong tập Y). Khi đó ta ký hiệu là X Y.
Chẳng hạn nhƣ phụ thuộc hàm của thuộc tính họ tên của sinh viên (HOTENSV) vào mã số sinh viên (MASV) và ta có thể diễn tả bằng phụ thuộc hàm:
MASV HOTENSV
b.Tính chất:
+ Phụ thuộc hàm X đúng với mọi quan hệ r
+ Phụ thuộc hàm Y chỉ đúng trên quan hệ r có cùng giá trị trên Y. Ví dụ 4.1: Quan hệ sau thỏa mãn phụ thuộc hàm GIOKH
phanCong (PHICONG, MAYBAY, NGAYKH, GIOKH)
Cushing 83 9/8 10:15a Cushing 116 10/8 10:15a Clark 281 8/8 10:15a Clark 301 12/8 10:15a Clark 83 11/8 10:15a Chin 83 13/8 10:15a
58 Chin 116 12/8 10:15a Copely 281 9/8 10:15a Copely 281 13/8 10:15a Copely 412 15/8 10:15a
Trên thực tế không có quan hệ r nào thỏa tính chất trên nên từ đây về sau nếu không nói rõ thì với một quan hệ r bất kỳ ta luôn xem phụ thuộc hàm Y luôn luôn không thỏa trên r.
c. Phụ thuộc hàm hiển nhiên (Trivial Dependencies)
Hệ quả: Nếu X Y thì X Y.
Chứng minh:
Giả sử t1.X = t2.X do X Y nên t1.Y = t2.Y theo định nghĩa suy ra XY
Trong trƣờng hợp này X Y đƣợc gọi là phụ thuộc hàm hiển nhiên. Ví dụ phụ thuộc hàm X X là phụ thuộc hàm hiển nhiên.
Vậy với r là quan hệ bất kỳ, F là tập phụ thuộc hàm thỏa trên r, ta luôn có F {các phụ thuộc hàm hiển nhiên}
d.Thuật toán Satifies
Cho quan hệ r và X, Y là hai tập con của Q+. Thuật toán SATIFIES sẽ trả về trị true nếu XY
ngƣợc lại là false
SATIFIES
Vào: quan hệ r và hai tập con X,Y ra: true nếu X đ Y, ngƣợc lại là false SATIFIES(r, X, Y)
1.Sắp các bộ của quan hệ r theo X để các giá trị giống nhau trên X nhóm lại với nhau
2.Nếu tập các bộ cùng giá trị trên X cho các giá trị trên Y giống nhau thì trả về true ngƣợc lại là False
Ví dụ 4.2: SATIFIES( phanCong,MAYBAY,GIOKH)
phanCong (PHICONG, MAYBAY, NGAYKH, GIOKH)
Cushing 83 9/8 10:15a
Clark 83 11/8 10:15a
59 Cushing 116 10/8 1:25p Chin 116 12/8 1:25p Clark 281 8/8 5:50a Copely 281 9/8 5:50a Copely 281 13/8 5:50a Clark 301 12/8 6:35p Copely 412 15/8 1:25p
cho kết quả là true nghĩa là MAYBAYGIOKH Ví dụ 4.3: SATIFIES(phanCong, GIOKH, MAYBAY)
phanCong (PHICONG, MAYBAY, NGAYKH, GIOKH)
Clark 281 8/8 5:50a Copely 281 9/8 5:50a Copely 281 13/8 5:50a Cushing 83 9/8 10:15a Clark 83 11/8 10:15a Chin 83 13/8 10:15a Cushing 116 10/8 1:25p Chin 116 12/8 1:25p Copely 412 15/8 1:25p Clark 301 12/8 6:35p
60