Thuật toỏn tỡm PTH xấp xỉ dựa trờn một số khỏi niệm của lý thuyết thiết kế CSDL quan hệ là phủ tối thiểu và lớp tương đương do tỏc giả Jalal Atoum (Khoa Khoa học Mỏy tớnh, Đại học Cụng nghệ (PSUT), Jordan) đề xuất và cụng bố năm 2009 [16].
2.3.3.1. Mụ tả thuật toỏn
Thuật toỏn khai phỏ PTH xấp xỉ từ những CSDL lớn được trỡnh bày dưới đõy dựa trờn độ đo xấp xỉ g3. Trong đú cú sử dụng một số khỏi niệm của lý thuyết thiết kế CSDL quan hệ, cụ thể là cỏc khỏi niệm phủ tối tiểu và những lớp tương đương (Mining Approximate Functional Dependencies from Databases based on Minimal Cover and Equivalenc Classes viết tắt là
“AFDMCEC”). Thuật toỏn này làm giảm bớt số cỏc thuộc tớnh và cỏc PTH xấp xỉ cần kiểm tra bởi cú kết hợp với một vài khỏi niệm từ lý thuyết thiết kế CSDL quan hệ.
Những khỏi niệm đầu tiờn bao gồm việc tăng trưởng tớnh phủ tối tiểu của cỏc PTH xấp xỉ trong mỗi giai đoạn phỏt hiện những PTH này. Mục đớnh của cỏch làm này là để giảm tối thiểu số cỏc PTH xấp xỉ cần kiểm tra. Trong khi đú khỏi niệm thứ hai bao gồm việc tớnh toỏn về sự tương đương của cỏc thuộc tớnh dựa trờn bao đúng khụng tầm thường của chỳng. Đối với mỗi cặp thuộc tớnh cú cựng bao đúng, thuật toỏn loại đi một trong chỳng khỏi tập hợp
cỏc thuộc tớnh ứng viờn. Như vậy thuật toỏn cũng xem hai thuộc tớnh này là tương đương xấp xỉ. Hai thuộc tớnh tương đương xấp xỉ được ký hiệu bằng “”. Điều này sẽ làm giảm bớt số thuộc tớnh cần phải kiểm tra trong mỗi giai đoạn của thuật toỏn AFDMCEC [8].
2.3.3.2. Thủ tục chớnh của thuật toỏn AFDMCEC
Thuật toỏn khai phỏ PTH xấp xỉ sử dụng phủ tối thiểu và lớp tương đương Input: Bảng dữ liệu D (quan hệ r) và những thuộc tớnh X , X ,..., X1 2 n
của nú
: Ngưỡng sai số, 0 1
Output: Tập PTH xấp xỉ tối tiểu MinimalApproximate_FDSet, tập
cỏc ứng viờn cho mức tiếp theo, EQ_Set
1. Bước khởi tạo
Set R=(X , X ,..., X )1 2 n Nrows = Số hàng trong r Set FD_Set = Approximate_FDSet = Set EQ_Set = Set Candidate_Set = {X , X ,..., X }1 2 n 2. While Candidate_Set Do
For all Xi Candidate_Set Do
Approximate_FDSet =
ComputeMinimaiApproximate_FD(X )i GenerateNextLevelCandidates(Candi date_Set)
3. Display ApproximateFD_Set
Thủ tục chớnh của thuật toỏn AFDMCEC gọi thủ tục tớnh toỏn PTH xấp xỉ tối tiểu ComputeMinimalApproximate_FD(X )i cho mỗi Xi trong tập ứng viờn. Với mỗi thuộc tớnh Y,Y R - Xi, nếu g (X3 i Y) thỡ bổ sung
i
X Y vào tập PTH xấp xỉ Approximate_FDSet, và nếu bao đúng xấp xỉ của Xi bằng với bao đúng xấp xỉ của Y thỡ bổ sung YXi vào tập PTH xấp xỉ Approximate_FDSet, bổ sung Xi Y vào tập EQ_Set và loại bỏ Y khỏi tập ứng viờn Candidate_Set.
Sau đõy là cỏc thủ tục con được sử dụng trong chương trỡnh chớnh:
Thủ tục ComputeMinimalApproximate_FD(Xi ) // Thủ tục tớnh PTH xấp xỉ tối tiểu Procedure ComputeMinimalApproximate_FD(Xi) Max = 0 /XiY TempList = For each Y R - Xi do
M= Xi // Tập cỏc lớp tương đương của thuộc tớnh Xi
N= XiᴗY // Tập cỏc lớp tương đương của thuộc tớnh XiY For all SN do
For all TM do
if TS then
W=WT
if Max<Len(T) then Max = Len(W) Add Max to Templist
For I = 1 to Len(Templist) J = J + Templist(I) Result = 1 – J/Nrows If Result ε Then
Add Xi Y to ApproximateFD_Set
If (approximate closure(Xi) = approximate closure (Y)) then Add YXi to ApproximateFD_Set
Add XiY to EQ_Set Remove Y from candidate_set
Thủ tục GenerateNextLevelCandidates procedure:
//Thủ tục sinh cỏc ứng viờn mức tiếp
Procedure
GenerateNextLevelCandidates(CANDIDATE_SET)
For each Xi Candidate_Set do
For each Xj Candidate_Set do
If (Xi[1]Xj[1],...,Xi[k-2]Xj[k-2] and Xi[k-1]Xj[k- 1]) then
Set XijXi join Xj If Xij TempList then
Delete Xij else
Compute the partition Xij of Xij