Thuật toán cơ bản tìm F+

Một phần của tài liệu Đề cương bài giảng học phần: Cơ sở dữ liệu (2014 - 2015) (Trang 114 - 115)

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.

Một phần của tài liệu Đề cương bài giảng học phần: Cơ sở dữ liệu (2014 - 2015) (Trang 114 - 115)