18. THỰC HÀNH HÀM KẾT HỢP VÀ GOM NHÓM
21.6.2. Thuật toán cơ bản tìm F+
Để tính bao đóng F+ của tập các phụ thuộc hàm F ta thực hiện các bƣớc sau: Bƣớc 1: Tìm tất cả tập con của Q+
Bƣớc 2: Tìm tất cả các phụ thuộc hàm có thể có của Q. Bƣớc 3: Tìm bao đóng của tất cả tập con của Q.
Bƣớc 4: Dựa vào bao đóng của tất cả các tập con đã tìm để xác định phụ thuộc hàm nào thuộc F+
Ví dụ 1:
Cho lƣợc đồ quan hệ Q (A, B, C), F = {AB→C, C→B} là tập phụ thuộc hàm trên Q. F+ đƣợc tính lần lƣợt theo các bƣớc nhƣ trên là nhƣ sau:
Bƣớc 1: các tập con của Q+ A B C {A} {B} {C} {A, B} {A, C} {B, C} {A, B, C}
Bƣớc2: Các phụ thuộc hàm có thể có của F (không kể các phụ thuộc hàm hiển nhiên)
A→B A→BC B→C AB→C F C→A C→BC F+ AC→BC F
+
BC→A C A→AB A→ABC B→AC AB→AC
F+ C→B F+ C→ABC AC→ABC F+ BC→A BC
A→C B→A B→BC AB→BC F
+
C→AB AC→B F+ BC→A
A→AC B→AB B→AB
C AB→ABC F+ C→AC AC→AB F+ BC→AB
Bƣớc 3: Bao đóng của các tập con của Q đối với F
+ = A+ = A C+ = BC ABC+ = ABC B+ = B AC+ = ABC AB+ = ABC BC+ = BC Bƣớc 4: F = {AB→C, C→B} suy ra:
F+ = {AB→C, AB→AC, AB→BC, AB→ABC, C→B, C→BC, AC→B, AC→AB, AC→BC, AB→ABC}
*Thuật toán cải tiến
Bƣớc 1: Tìm tất cả tập con của Q+
Bƣớc 2: Tìm các phụ thuộc hàm có thể có của F (không kể các phụ thuộc hàm hiển nhiên)
Bƣớc 3: Tìm bao đóng của tát cả tập con của Q+
Bƣớc 4: Dựa vào bao đóng của các tập con dã tìm để suy ra các phụ thuộc hàm F+.
Ví dụ 2:
Bao đóng của A+ = A chỉ gồm các phụ thuộc hàm hiển nhiên, bao đóng {Ab}+= ABC cho các phụ thuộc hàm không hiển nhiên sau: AB→C, AB→AC, AB→BC, AB→ABC
(Tìm tất cả các tập con của {ABC} rồi bỏ các tập con của {AB})
Các tập con của {ABC} là: , {A}, {B}, {AB},{C}, {AC}, {BC}, {ABC} Bỏ các tập con của {AB} là: , {A}, {B}, {AB},{C}, {AC}, {BC}, {ABC} Các tập còn lại là vế phải của phụ thuộc hàm có vế trái là AB.