Thuật toỏn: Tỡm phủ tối tiểu của tập PTH F trờn tập thuộc tớnh R. INPUT: s = <F, R>
OUTPUT: G {G là phủ tối thiểu của F}
Bước 1: G= φ. Tỏch tất cả cỏc PTH f của F thành PTH mà vế phải chỉ cú một thuộc tớnh:
FOR f F, f X Y DO /Y={A1,A2,..Ak} với AiR G= (G\{f}) ᴗ{XAi, AiY}
Bước 2: Loại bỏ những phụ thuộc hàm khụng đầy đủ: WHILE fG mà f:XA, ZX:ZA
G:=(G\{f})ᴗ{ZA} Bước 3: Loại bỏ những PTH dư thừa: FOR f G DO
IF (G\{f})G THEN G:=G\ {f} Bước 4: RETURN G .
Ta cú thể diễn giải lại thuật giải này như sau:
Bước 1: Tỏch tất cả cỏc PTH của F thành PTH mà vế phải chỉ cú một thuộc tớnh.
Vớ dụ:
ABCD được tỏch thành ABC, ABD (luật tỏch)
Bước 2: Loại bỏ những PTH khụng đầy đủ. Khi loại bỏ, ta phõn biệt hai loại PTH khụng đầy đủ sau:
Loại 1: PTH mà vế phải là tập con của vế trỏi (PTH tầm thường) (loại ABB)
Loại 2: Hai PTH cú vế phải giống nhau, nếu vế trỏi của PTH này chứa vế trỏi của PTH kia thỡ ta loại ra khỏi F.
Bước 3: Loại bỏ những PTH dư thừa:
Giả sử hai PTH cú vế phải giống nhau: f1 = XA và f2 = YA, lỳc đú nếu cú AX \ {f1}F thỡ loại f1 ra khỏi F:
Vớ dụ:
Cho F {AB B, A A, C C, A B, C}. Ta cú thể tỡm được hai PTH tối tiểu tương đương với F là:
1 { , , }
F AB BC CA ; F2 {AB B, A, AC,C A}