Kết quả thử nghiệm

Một phần của tài liệu (LUẬN án TIẾN sĩ) phát hiện phụ thuộc hàm và phụ thuộc hàm suy rộng trong cơ sở dữ liệu (Trang 90 - 92)

Từ bảng kết quả trờn, ta thấy thuật toỏn 3.6 tiờu tốn ớt thời gian hơn ba thuật toỏn cũn lại.

Ta nhận thấy rằng, so với cỏc thuật toỏn tớnh bao đúng đó nờu, thuật

toỏn 3.6 cú ưu điểm là làm đơn giản húa tập F bằng cỏch loại bỏ phụ thuộc hàm Y Z trong F sau khi đó dựng nú để tớnh giỏ trị mới của Xnew hoặc thay thế phụ thuộc hàm Y Z trong F bằng một phụ thuộc hàm đơn giản hơn trong

trường hợp cả hai vế của phụ thuộc hàm này đều khụng là những tập con của

Xnew. Tuy nhiờn, tớnh đỳng đắn của thuật toỏn 3.6 khụng được chứng minh một cỏch tường minh. Hơn nữa, nhược điểm của nú là mỗi lần duyệt tập F, tất cả cỏc phụ thuộc hàm cú vế trỏi và vế phải cựng chứa trong Xnew vẫn được kiểm tra vế trỏi để từ đú tớnh giỏ trị mới của Xnew (điều này làm mất thời gian khụng cần thiết vỡ giỏ trị Xnew thực chất khụng thay đổi). Thuật toỏn 3.7 dưới

đõy trỏnh được những phộp kiểm tra và tớnh toỏn khụng cần thiết này vỡ thực hiện loại bỏ ngay từ đầu cỏc phụ thuộc hàm cú vế phải chứa trong Xnew nờn

thời gian thực hiện nhanh hơn so với thuật toỏn 3.6.

------------------------------------------------------------------------------------------------ Thuật toỏn 3.7. Tớnh bao đúng

------------------------------------------------------------------------------------------------ INPUT: , F, X  

OUTPUT: Bao đúng X+

Xnew = X;

repeat

Xold = Xnew;

for each Y  Z  F do

if (Z  Xnew) then F = F - {Y  Z } (I)

else if (Y  Xnew) then (II)

Xnew = Xnew  Z; F = F - {Y  Z} else (III) F = F - {Y  Z }; F = F  {Y - Xnew  Z - Xnew}; end if; end for each;

until (Xnew = Xold) or (|F| = 0); return(Xnew);

end;

______________________________________________________________ Với thuật toỏn 3.7, ta cú bổ đề sau:

Bổ đề 3.1. Thuật toỏn 3.7 là đỳng đắn, cú nghĩa nú tớnh đỳng bao đúng X+ của

X đối với F.

Chứng minh. Vỡ thuật toỏn 3.7 là một cải tiến của thuật toỏn 3.6 và do đú

cũng là cải tiến của thuật toỏn 3.1 nờn để chứng minh tớnh đỳng đắn của thuật toỏn 3.7, ta chỉ cần chỉ ra rằng việc thay thế

Y  Z bởi Y - Xnew  Z - Xnew (a) khụng cú ảnh hưởng gỡ đến kết quả của việc tớnh bao đúng.

Thật vậy, thuật toỏn 3.7 sẽ thay thế Y  Z bởi Y -Xnew  Z - Xnew trong trường hợp cả Y và Z đều khụng phải là tập con của Xnew. Do đú, từ (a) ta suy ra Y - Xnew ≠  vỡ nếu Y - Xnew =  thỡ Y là tập con của Xnew (mõu thuẫn).

Mặt khỏc, ta luụn cú

(Y - Xnew)  (Y  Xnew) = Y (b)

Giả sử sau phộp thay thế (a), Xnew thay đổi và nhận giỏ trị mới là Xnew1 với Xnew  Xnew1.

(Y - Xnew)  Xnew1 khi và chỉ khi Y  Xnew1 (c) Thật vậy:

- Từ Y  Xnew1 ta cú Y - Xnew  Xnew1

- Từ (Y - Xnew)  Xnew1, (Y  Xnew)  Xnew  Xnew1 và (b) nờn Y = (Y - Xnew)  (Y  Xnew)  Xnew1

Do đú, (c) được chứng minh.

Vớ dụ 3.4. Cho F = {d  a, ad  c, e  bi, ke  m, ce  ik, d  bei, h  cde}. Tớnh bao đúng của tập thuộc tớnh X = acd theo thuật toỏn 2.7.

F d  a ad  c e  bi ke  m ce  ik d  bei h  cde Xnew F acd (I)  (I)  e  bi ke  m (III) eik acdbei (II)  (I)  Xnew F acdbei (I)  (III) k  m acdbeik (II)  Xnew F acdbeik acdbeikm (II) 

Một phần của tài liệu (LUẬN án TIẾN sĩ) phát hiện phụ thuộc hàm và phụ thuộc hàm suy rộng trong cơ sở dữ liệu (Trang 90 - 92)

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

(132 trang)