Phủ tối thiểu

Một phần của tài liệu (LUẬN văn THẠC sĩ) khai phá phụ thuộc hàm xấp xỉ sử dụng phủ tối thiểu và lớp tương đương (Trang 38)

Định nghĩa: Cho FG là những tập phụ thuộc hàm trên tập thuộc tính U. Ta nói F phủ G nếu có G F, và nói FG tƣơng đƣơng nếu G F, và kí hiệu là F~G.

Bằng cách sử dụng thuật toán 2.1, có thể kiểm tra xem FG có tƣơng đƣơng không. Cần chú ý rằng: nếu mọi phụ thuộc hàm trong F đều thuộc G thì mọi phụ thuộc hàm trong F đều suy diễn đƣợc từ G

(nghĩa là F G ). Với phụ thuộc hàm X  Y F , để kiểm tra

X  Y G, ta sẽ tính XG và kiểm chứng YXG.

Bổ đề 2.1 Mỗi tập phụ thuộc hàm F có một tập phụ thuộc hàm G

tƣơng đƣơng với nó sao cho mỗi phần tử của G đều có vế phải chỉ gồm một thuộc tính.

Chứng minh

Với mỗi F, đặt:

{ ( ) , }

GXAX  Y F A Y

Nhờ quy tắc tách và quy tắc hợp trong bổ đề 1.2, dễ dàng thấy rằng G

thỏa mãn các yêu cầu của định lí.

Tập phụ thuộc hàm F đƣợc gọi là tối tiểu nếu:

(i) Vế phải của mỗi phụ thuộc trong F gồm đúng một thuộc tính. (Không dƣ thừa thuộc tính nào ở vế phải).

(ii) Không tồn tại XA trong F sao cho (F \ {XA}) tƣơng đƣơng với F. (Không thể bỏ đi một phụ thuộc nào trong F mà vẫn thu đƣợc một tập phụ thuộc tƣơng đƣơng với nó).

(iii) Không tồn tại XA trong F và tập con thực sự Z của X sao cho (F \ {XA}{ZA}) tƣơng đƣơng với F. (Không thể bỏ đi bất kì một thuộc tính nào ở vế trái của một phụ thuộc bất kì trong F mà vẫn thu đƣợc một tập phụ thuộc tƣơng đƣơng với nó).

Điều kiện thứ nhất đảm bảo rằng mọi phụ thuộc hàm trong F không dƣ thừa thuộc tính nào ở vế phải. Điều kiện thứ hai đảm bảo rằng F không có phụ thuộc hàm nào dƣ thừa. Điều kiện cuối cùng đảm bảo rằng mọi phụ thuộc hàm trong F không dƣ thừa thuộc tính nào ở vế trái.

Định lí 2.1

Với mỗi tập phụ thuộc hàm F, đều tồn tại một tập phụ thuộc hàm tối tiểu

'

F tƣơng đƣơng với nó.

1. Theo bổ đề 1.5, có tập phụ thuộc F1 tƣơng đƣơng với F mà các phần tử của F1 đều có vế phải gồm đúng một thuộc tính.

2. Loại bỏ từ F1 những phụ thuộc hàm vi phạm (ii), ta thu đƣợc F2. 3. Loại bỏ những thuộc tính trong vế trái của các phụ thuộc hàm trong F2

làm cho nó vi phạm (iii), ta thu đƣợc F3.

Dễ dàng thấy rằng, F3 là tối tiểu và tƣơng đƣơng với F nên nó chính là

F cần tìm.

Chú ý: Việc loại bỏ những phụ thuộc hàm và thuộc tính ở bƣớc 2 và bƣớc 3 trong phép chứng minh có thể cho ta những tập phụ thuộc hàm khác nhau (thỏa mãn định lí 1.5), thậm chí chúng có số phần tử khác nhau.

Ví dụ:

Cho F {AB B,  A A, C C, A B, C}. Ta có thể tìm đƣợc hai tập phụ thuộc tối tiểu tƣơng đƣơng với F là:

1 { , , }

FAB BC CA loại bỏ từ trái sang phải ở điều kiện (ii)

2 { , , , }

FAB BA AC CA loại bỏ từ phải sang trái.

Thuật toán 2.1: Tìm phủ tối tiểu của tập phụ thuộc hàm F trên tập thuộc tính U.

INPUT: F, U

OUTPUT: G {G là phủ tối thiểu của F}

Bƣớc 1: G  . Tách tất cả các phụ thuộc hàm f của F thành phụ thuộc hàm mà vế phải chỉ có một thuộc tính:

FOR  f F,f XYDOG G {XA A Y,  }

Bƣớc 2: Loại bỏ những phụ thuộc hàm không đầy đủ:(loại các thuộc tính thừa ở vế trái các phụ thuộc hàm)

WHILE  Z X Z,  X G, G\ {f}{ZA DO} GG\ {f}{ZA}

Bƣớc 3: Loại bỏ những phụ thuộc hàm dƣ thừa:

FOR  f G DO IF G\ f GTHEN GG\ f  Bƣớc 4: RETURN G

Ta có thể diễn giải lại thuật giải nhƣ sau:

{ , , }

FABCD BC CD Tìm phủ tối thiểu?

Bƣớc 1. Tách các phụ thuộc hàm sao cho vế phải chỉ còn một thuộc tính. + Ta có F {ABC AB, D B, C C, D}

Bƣớc 2. Bỏ các thuộc tính dƣ thừa ở vế trái.

+ BC C, D Không xét vì vế trái chỉ có một thuộc tính.

+ XétABC: Nếu bỏ A thì B+=BCD không chứa A nên không thể bỏ A. Nếu bỏ B thì A+=A, không bỏ đƣợc thuộc tính nào.

+ Xét ABD: Nếu bỏ A thì B+=BCD không chứa A nên không thể bỏ A. Nếu bỏ B thì A+=A, không bỏ đƣợc thuộc tính nào.

Bƣớc 3. Loại khỏi F các phụ thuộc hàm dƣ thừa.

+ Xét ABC: Tính AB+=ABCD = Q nên loại bỏ ABC

+ Xét ABD: Tính AB+=ABCD = Q nên loại bỏ ABD

+ BC: Tính B+=B không thể bỏ. + CD: Tính C+=C không thể bỏ.

Ví dụ:

Cho F {AB B,  A A, C C, A B, C}. Ta có thể tìm đƣợc hai phụ thuộc hàm tối tiểu tƣơng đƣơng với F là:

1 { , , }

FAB BC CA

2 { , , A C, }

FAB BACA

2.1.4. Phụ thuộc hàm xấp xỉ và lớp tương đương

Đối với một số quan hệ, một vài phụ thuộc hàm có thể không thỏa mãn cho tất cả các bộ. Vậy một phụ thuộc hàm có thể nghĩa theo hƣớng thỏa mãn xấp xỉ.

Ví dụ:

Về những chiếc xe ôtô, nhãn mác xe đƣợc xác định bởi mô-đen. Dựa vào điều đó, với mô-đen X6, chúng ta biết với xác suất cao nhãn mác xe là BMW,

nhƣng cũng có một xác suất nhỏ rằng nhãn mác xe là Honđa. Phụ thuộc hàm xấp xỉ đƣợc mong đợi đó đƣợc xác định bởi Mô-đen  Nhãn mác xe.

Một định nghĩa chuẩn của một phụ thuộc xấp xỉ XA là dựa trên số tối thiểu những hàng cần loại bỏ khỏi quan hệ r để phụ thuộc XA đúng trong r . Sai số g X3( A) 1 (max{| ||  s srXA đúng trong

})/ | |

s s . Độ đo g3 có một cách hiểu tự nhiên nhƣ tỷ số của các hàng với những ngoại lệ hoặc sai số ảnh hƣởng đến phụ thuộc. Cho một ngƣỡng sai số

, 0 1, chúng ta nói rằng XA là một phụ thuộc xấp xỉ nếu và chỉ nếu g X3(  A) lớn nhất là bằng  .

Một lớp tƣơng đƣơng c của X là hợp của một hoặc nhiều lớp tƣơng đƣơng , ,

1, ...2

c c của XA đúng. Số tối thiểu các hàng cần loại bỏ là kích thƣớc của c trừ đi kích thƣớc của lớp ci lớn nhất. Lấy trên tất cả các lớp tƣơng đƣơng c của X cho tổng số các bộ cần loại bỏ. Nhƣ vậy chúng ta có: ' ' 3( ) 1 c Xmax{| || X {A} g XA   c c   và ' }/ | | cc r . Ví dụ: Cho quan hệ TupleID A B E C D 1 1 a 2 $ Hoa 2 1 x 2 Hoa tulip

3 2 x 0 $ Cây thủy tiên

4 2 x 0 $ Hoa

5 2 y 0 Cây huệ

6 3 y 1 $ Phong lan

7 3 c 1 Hoa

8 3 c 1 # Bông hồng

Bảng 2.3: Bảng quan hệ ví dụ cho phụ thuộc hàm xấp xỉ

Để kiểm tra AB thỏa hoặc không, chúng ta tìm các lớp tƣơng đƣơng của A {{1, 2},{3, 4,5},{6,7,8}} và các lớp tƣơng đƣơng của

{{1},{2,3, 4},{5,6},{7,8}}

B

  . Vì lớp tƣơng đƣơng {1, 2} trong A không

mịn hơn bất kỳ lớp nào trong A, và tƣơng tự nhƣ vậy đối với các lớp khác của A. Do đó AB không thỏa.

Tuy nhiên trong ví dụ trên, AB có thể thỏa với một sai số g3 nào đó nếu chúng ta loại bỏ một vài bộ khỏi quan hệ đã cho. Đầu tiên chúng ta tìm

{ } {{1},{2},{3,4},{5},{6},{7,8}}

A B

   . Lớp tƣơng đƣơng {1, 2} trong A

bằng {1}{2} lấy từ A B , có kích thƣớc lớn nhất của {1} và {2} là 1.

Lớp tƣơng đƣơng {3, 4,5} trong A bằng {3, 4}{5} lấy từ  

B A

 , có kích

thƣớc lớn nhất của {3, 4} và {5} là 2. Cuối cùng lớp tƣơng đƣơng {6,7,8}

của A bằng {6}{7,8} lấy từ A B có kích thƣớc lớn nhất của {6} và

{7,8} là 2.

Từ đó g3AB1122/80.375. Nói cách ít nhất 3 bộ trong 8 bộ ở ví dụ trên cần loại bỏ để AB đƣợc thỏa mãn. Nhƣ vậy có thể nói phụ thuộc hàm: AB thỏa mãn xấp xỉ với tỉ lệ sai số  0.375.

Quá trình phát hiện các phụ thuộc hàm xấp xỉ này đƣợc lặp lại cho tất cả thuộc tính và cho tất cả các tổ hợp của chúng. Lấy ví dụ, cho một quan hệ với 5 thuộc tính (A, B, C, D, E) tập các ứng viên là {Ø, A, B, C, D, E, AB, AC, AD, AE, BC, BD, BE, CD, CE, DE, ABC, ABD, ABE, ACD, ACE, ADE, BCD, BCE, BDE, CDE, ABCD, ABCE, ABDE, ACDE, BCDE, ABCDE} cho một tổng cộng 32 tổ hợp. Các thuộc tính ứng viên này của quan hệ đƣợc biểu diễn nhƣ một dàn đƣợc chỉ rõ trong hình 2.1.

Mỗi nút trong hình 2 biểu diễn một tập thuộc tính ứng viên một cạch giữa hai nút bất kỳ nhƣ E và ED chỉ ra phụ thuộc xấp xỉ: DED cần đƣợc kiểm tra.

Hình 2.1: Dàn cho các thuộc tính (A, B, C, D, E)

Phần tiếp theo sau trình bày thuật toán TANE đã đƣợc sửa đổi để tìm tất cả các phụ thuộc hàm xấp xỉ dạng XA có độ đo lỗi g X3(  A) , với

 là ngƣỡng lỗi cho trƣớc .

2.2. Thuật toán TANE sửa đổi [5]

2.2.1. Thủ tục chính của thuật toán TANE sửa đổi

Sau đây là các thủ tục chính của thuật toán TANE sửa đổi để tính các phụ thuộc hàm xấp xỉ:

Input: Quan hệ r trên lƣợc đồ R

Output: Các phụ thuộc hàm tối tiểu, không tầm thƣờng đúng trên r C(X) {A X | X \ {A}A không đúng}R \ X . + C (X) {A R |   B X,X \ {A,B}B không đúng}. 1. L :0    2. +  C  : R 3. L :1  A AR 4. : 1

5. while L   6. COMPUTE_DEPENDENCIES L 7. PRUNE L 8. L1:GENERATE_NEXT_LEVEL L 9. :  1 Giải thích 1 L khởi tạo bằng rỗng 0 2 C+  bằng R 3 L1 bằng họ tất cả các tập một thuộc tính trong R 4 :l 5 while L  

6 Tính toán các phụ thuộc hàm trong mức  L

7 Prune L tỉa L để tìm kiếm và xóa các phụ thuộc hàm không cần thiết

8 L1 xây dựng các phụ thuộc hàm cho mức tiếp theo, dựa trênL 9 :  l Thủ tục: Tính các phụ thuộc hàm Procedure COMPUTE_DEPENDENCIES L 1 for each XL do 2 C (X)+ AXC ( X \ {A}) 3 for each XL do 4 for each A X C (X) do

5 if e(X\ { }AA) then

6 output X \ { }A A

7 remove A from C (X)

8 If X \ {A}A thỏa mãn then

9 remove all B in R \ X from C (X)

Thủ tục: Tỉa Procedure PRUNE(L ) 1 for each XL do 2 if C X   do 3 delete X from L 4 if X is a (super) key do 5 for each AC X \ X do 6 if AB X CX   A \ B  then 7 output XA 8 delete X from L

Thuật toán TANE đã đƣợc sửa đổi để tính tất cả các phụ thuộc hàm xấp xỉ tối tiểu XA với g3XA , với một giá trị ngƣỡng  cho trƣớc. Việc sửa đổi quan trọng là thay đổi việc kiểm tra tính thỏa trên dòng 5 của thủ tục COMPUTE_DEPENDENCIES bởi:

'

5 If eX \ AA then

Thay dòng 8 của thủ tục COMPUTE_DEPENDENCIES bởi:

'

8 If X \ A A thỏa mãn then

'

2.2.2. Độ phức tạp của thuật toán TANE sửa đổi.

Với quan hệ R có R thuộc tính và r bộ. Độ phức tạp thời gian của thuật toán TANE sửa đổi phụ thuộc vào số bộ trong cơ sở dữ liệu r , phụ thuộc vào số tập trong tất cả các mức của dàn các thuộc tính ứng viên

R

s (2 ) và số khóa K (2 /R R ).

Do đó độ phức tạp của thuật toán TANE sửa đổi là:

2 3

(s( r R ) K R )

   .

Phần tiếp theo sau trình bày thuật toán tìm phụ thuộc hàm 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 [8]

2.3. Thuật toán khai phá phụ thuộc hàm xấp xỉ sử dụng phủ tối thiểu và lớp tƣơng đƣơng

2.3.1. Mô tả thuật toán

Thuật toán khai phá phụ thuộc hàm xấp xỉ từ những cơ sở dữ liệu lớn đƣợc trình bày dƣới đây dựa trên độ đo xấp xỉ g . Trong đó có sử dụng một 3 số khái niệm của lý thuyết thiết kế cơ sở dữ liệu 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 phụ thuộc hàm 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ế cơ sở dữ liệu 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 phụ thuộc hàm xấp xỉ trong mỗi giai đoạn phát hiện những phụ thuộc hàm này. Mục đính của cách làm này là để giảm tối thiểu số các phụ thuộc hàm 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ỉ   . Đ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.

Sau đây là thủ tục chính của thuật toán khai phá phụ thuộc hàm xấp xỉ sử dụng phủ tối thiểu và lớp tƣơng đƣơng.

Thuật toán

Input: Tập dữ liệu D và những thuộc tính X , X ,..., X1 2 n của nó

 : Ngƣỡng sai số, 0  1

Output: Tập phụ thuộc hàm xấp xỉ tối tiểu MinimalApproximate_FDSet, tập hợp ứ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 cơ sở dữ liệu. 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(Candidate_Set) 3. Display ApproximateFD_Set

hàm xấp xỉ tối tiểu ComputeMinimalApproximate_FD(X )i cho mỗi X i 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 Xi Y vào tập phụ thuộc hàm xấp xỉ Approximate_FDSet, và nếu bao đóng xấp xỉ của X bằng với bao đóng xấp xỉ của Y thì bổ sung i

i

YX vào tập phụ thuộc hàm xấp xỉ Approximate_FDSet, bổ sung

i

X 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 đƣợc sử dụng trong chƣơng trình chính.

Thủ tục ComputeMinimalApproximate_FD(X )i : // Thủ tục tính phụ thuộc hàm xấp xỉ tối tiểu

Procedure ComputeMinimalApproximate_FD(Xi)

Max = 0

TempList = 

For each Y R - Xi do

i

M ?X // Tập các lớp tƣơng đƣơng của thuộc tính Xi i

M ?X Y // Tập các lớp tƣơng đƣơng của thuộc tính XiY For all SN do

For all TM do if TS then

W=WT

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 YXi to ApproximateFD_Set

Add Xi to closure [Y] Add XiY 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 XijXi join Xj

If  Xij TempList then Delete Xij

else

Compute the partition Xij of Xij

2.3.2. Độ phức tạp của thuật toán khai phá phụ thuộc hàm xấp xỉ sử dụng phủ tối thiểu và lớp tương đương dụng phủ tối thiểu và lớp tương đương

Thuật toán AFDMCEC đề xuất sẽ kiểm tra toàn bộ bảng gồm r bộ để

Một phần của tài liệu (LUẬN văn THẠC sĩ) khai phá phụ thuộc hàm xấp xỉ sử dụng phủ tối thiểu và lớp tương đương (Trang 38)

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

(69 trang)