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

Một phần của tài liệu Đề Cương Cơ Sở Dữ Liệu SQL Sever (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 Cơ Sở Dữ Liệu SQL Sever (Trang 114 - 115)

Tải bản đầy đủ (PDF)

(144 trang)