Cơ sơ dữ liệu phân tán - 20


+ aff(A1, A2) = 0

+ Vì (use(q1,A1) = 1 use(q1,A3) = 1)=true nên k=1


1

aff (A1, A3 )

k1


3

Có thể bạn quan tâm!

Xem toàn bộ 312 trang tài liệu này.

m1

accm (qk ) acc1 (q1 ) acc2 (q1 ) acc3 (q1 )

= 15 + 20 + 10 = 45

+ Vì (use(q4,A1) = 1 use(q4,A4) = 1)=true nên k=4


4

aff (A1 , A4 )

k 4


3

m1

accm (qk ) acc1 (q4 ) acc2 (q4 ) acc3 (q4 )

= 3 + 0 + 0 = 3

+ Vì (use(q2,A2) = 1 use(q2,A2) = 1)=true (use(q3,A2) = 1 use(q3,A2) = 1)=true nên k=2, k=3

3 3

aff(A2, A2) =

accm(q2) accm(q3)

m1 m1

= acc1(q2) + acc2(q2) + acc3(q2) + acc1(q3) + acc2(q3) + acc3(q3)

= 5 + 0 + 0 + 25 + 25 +25= 80

+ Vì (use(q2,A2) = 1 use(q2,A3) = 1)=true nên k=2


2

aff (A2 , A3 )

k2


3

m1

accm (qk ) acc1 (q2 ) acc2 (q2 ) acc3 (q2 )

= 5 + 0 + 0=5

+ Vì (use(q3,A2) = 1 use(q3,A4) = 1)=true nên k=3


3

aff (A2 , A4 )

k3


3

m1

accm (qk ) acc1 (q3 ) acc2 (q3 ) acc3 (q3 )

= 25 + 25 + 25=75

+ Vì (use(q1,A3) = 1 use(q1,A3) = 1)=true (use(q2,A3) = 1 use(q2,A3) = 1)=true nên k=1, k=2

3 3

aff(A3, A3) =

accm(q1) accm(q2)

m1 m1

= acc1(q1) + acc2(q1) + acc3(q1) + acc1(q2) + acc2(q2) + acc3(q2)

= 15 + 20 + 10 + 5 +0 +0 = 50

+ aff(A3, A4) = 0


+ Vì (use(q3,A4) = 1 use(q3,A4) = 1)=true (use(q4,A4) = 1 use(q4,A4) = 1)=true nên k=3, k=4

3 3

aff(A4, A4) =

accm(q3) accm(q4)

m1 m1

= acc1(q3) + acc2(q3) + acc3(q3) + acc1(q4) + acc2(q4) + acc3(q4)

= 25 + 25 +25 + 3 + 0 + 0 = 78

Ta có ma trận ái lực AA:

Ma trận ái lực thuộc sẽ được sử dụng trong phần còn lại của chương này 1

Ma trận ái lực thuộc sẽ được sử dụng trong phần còn lại của chương này để dựa vào đó phân mảnh dữ liệu. Quá trình này trước tiên gom các thuộc tính có ái lực lớn chung với nhau và dựa vào đó để phân chia quan hệ.

3.4.3. Giải thuật gom tụ

1) Ý tưởng giải thuật

Công việc cơ bản trong thiết kế giải thuật phân mảnh dọc là tìm kiếm một số cách gom nhóm thuộc tính của quan hệ dựa trên các giá trị thuộc tính trong AA.

Dùng giải thuật năng lượng liên hệ (BEA-Bond Energy Algorithm) để gom nhóm các thuộc tính của quan hệ.

Giải thuật BEA có những ưu điểm sau đây:

- Gom các thuộc tính có giá trị ái lực lớn chung với nhau.

- Gom nhóm các thuộc tính có giá trị ái lực nhỏ chung với nhau.

- Các nhóm cuối cùng không bị ảnh hưởng bởi thứ tự của các mục được dựa vào trong giải thuật.

- Thời gian tính toán của các giải thuật là O(n2) với n là số thuộc tính.

- Có thể nhận biết các mối liên hệ phụ giữa các nhóm thuộc tính gom phụ.

Ý tưởng:

- Hoán vị các hàng và các cột của ma trận ái lực thuộc tính AA thành ma trận ái lực gom tụ (CA- Clustered Affinity matrix) sao cho số đo ái lực chung (AM – global Affinity Measure) sau đây là lớn nhất:



n

AM

i1


n

j1

aff (Ai , A j )[aff (Ai , A j1 ) aff (Ai , A j1 ) aff (Ai1, A j ) aff (Ai1, A j )]

với aff (Ao , A j ) aff (Ai , Ao ) aff (An1, A j ) aff (Ai , A jn1 ) 0

- Hàm cực đại hoá chỉ xét các phần tử gần nhất nên chỉ gom các giá trị lớn với các giá trị lớn, các giá trị nhỏ nhất với giá trị nhỏ nhất. Do đó, ma trận ái lực thuộc tính (AA) là đối xứng nên:

n

AM

i 1

n

j 1

aff ( Ai , Aj )[aff ( Ai , Aj 1) aff ( Ai , Aj 1)]


n

i1


n

j1

[aff (Ai , A j )aff (Ai , A j1 ) aff (Ai , A j )aff (Ai , A j1 )]


n

j1

n

i1


aff (Ai , A


j )aff (Ai , A


j1


n

)

i1


[aff (Ai , A


j )aff (Ai , A

j1 )

Cầu nối (Bond) giữa hai thuộc tính Ax và Ay

n

bond(Ax , Ay )

z1

aff (Az , Ax )aff (Az , Ay )


n

AM

j1

[bond(A j , A j1 ) bond(A j , A j1 )]

Xét n thuộc tính sau đây:

A1A2...Ai1 AiAjAi1...An

AM ' AM ''

Số đo ái lực chung cho các thuộc tính:

AMold = AM‟+AM”+bond(Ai-1,Ai)+bond(Ai, Aj)+bond(Aj, Ai)+bond(Aj, Aj+1)

n

l1

n

[bond(Al , Al1 ) bond(Ai , Al1 )]

li1

[bond(Al , Al1 ) bond(Ai , Al1 )] 2bond(Ai , A j )


có:

Xét việc đặt thuộc tính mới Ak giữa thuộc tính Ai, Aj trong ma trận ái lực gom tụ, ta


AMnew = AM‟ + AM” + bond(Ai, Ak) + bond(Ak, Ai) + bond(Ak, Aj) + bond(Aj,

Ak) = AM‟ + AM” + 2bond(Ai, Ak)+ 2bond(Ak, Aj)

Đóng góp thực cho số đo ái lực chung khi đặt thuộc tính Ak giữa Ai và Aj là: Cont(Ai, Ak, Ai) = AMnew – AMold =2 bond(Ai, Ak) + 2 bond(Ak, Aj) - 2 bond(Ai,Aj) Ví dụ 3.25: Xét ma trận AA được cho trong hình 3.5

- Đóng góp thực cho số đo ái lực chung khi đặt thuộc tính A4 vào giữa A1 và A2 cont(A1,A4,A2) = 2bond(A1,A4) + 2bond(A4,A2) - 2bond(A1,A2)

- Tính mỗi số hạng ta được:


bond(A1,A4) =


4

z1

aff (Az , A1 )aff (Az , A4 ) = aff(A1,A1)aff(A1,A4)+

aff(A2,A1)aff(A2,A4) +aff(A3,A1)aff(A3,A4)+aff(A4,A1)aff(A4,A4)

=483 + 075 + 450 + 378 = 378

4

bond(A4,A2) =

z1

aff (Az , A4 )aff (Az , A2 ) = aff(A1,A4)aff(A1,A2)+

aff(A2,A4)aff(A2,A2)+aff(A3,A4)aff(A3,A2)+aff(A4,A4)aff(A4,A2)

=30 + 7580 + 05 + 7872 = 11616

4

bond(A1,A2) =

z1

aff (Az , A1 )aff (Az , A2 ) = aff(A1,A1)aff(A1,A2)+

aff(A2,A1)aff(A2,A2)+aff(A3,A1)aff(A3,A2)+aff(A4,A1)aff(A4,A2)

=480 + 080 + 455 + 375 = 450

- Do đó cont(A1,A4,A2) = 2375 + 211616 - 2450 = 23988

Các bước chính của thuật toán

Bước 1: Khởi gán

Đặt và cố định cột 1 cột của AA vào trong CA. Bước 2: Thực hiện lặp

- Chọn mỗi cột trong n – i cột còn lại (i là số cột đã được đặt trong CA).

- Thử đặt chúng trong i + 1 vị trí còn lại trong ma trận CA.

- Chọn sắp đặt nào làm cho số đo ái lực chung có giá trị lớn nhất. Bước 3: Sắp thứ tự hàng

Mỗi lần xác định thứ tự cột, sắp đặt lại các hàng sao cho các vị trí tương đối của chúng khớp với các vị trí tương đối của các cột.

2) Giải thuật

Giải thuật 4.3 BEA

Đầu vào: AA: ma trận ái lực thuộc tính, n là số thuộc tính Đầu ra: CA: ma trận ái lực gom tụ

Begin

{Bắt đầu: nên nhớ rằng AA là một ma trận n*n} CA(•, 1)= AA(•, 1);

CA(•, 2)= AA(•, 2);

index = 3;

while index n do {chọn vị trí “tốt nhất” cho thuộc tính AAindex}

begin

for i=1 to index – 1 do

Tính cont(Ai-1, Aindex, Ai);


endfor

Tính cont(Aindex-1, Aindex, Aindex+1);{điều kiện biên} loc = nơi đặt, được cho bởi giá trị cont lớn nhất; for j= index downto loc do {di chuyển hai ma trận}

CA(•, j)= CA(•, j - 1);


endwhile

endfor

CA(•, loc)= AA(•, index); index = index + 1;

Sắp thứ tự các hàng theo thứ tự tương đối của các cột

End. {BEA}

Nhận xét:

- Cách tính toán cont tại các điểm cực trái (A1)

+ Giả sử thuộc tính Ak được đặt vào bên trái của thuộc tính cực trái A1

+ Vì không có phần tử ở bên trái Ak nên ta thêm thuộc tính A0 vào bên trái Ak để tính được số đo ái lực chung.

Cont(A0,Ak,A1 )=2Bond(A0,Ak)+2Bond(Ak,A1)-2Bond(A0,A1)=2Bond(Ak, A1)

vì Bond(A0,Ak)=Bond(A0,A1)=0

- Cách tính toán cont tại các điểm cực phải (An)

+ Giả sử thuộc tính Ak được đặt vào bên phải của thuộc tính cực phải An

+ Vì không có phần tử ở bên phải Ak nên ta thêm thuộc tính An+1 vào bên phải Ak để tính được số đo ái lực chung.

Cont(An,Ak,An+1)=2Bond(An,Ak)+2Bond(Ak,An+1)-2Bond(An,An+1)

=2Bond(An,Ak)

vì Bond(Ak,An+1)=Bond(An,An+1)=0

Ví dụ 3.26: Xét việc gom nhóm các thuộc tính của quan hệ PH và sử dụng ma trận ái lực AA.

Bước 1: Khởi gán

Đưa cột 1 và cột 2 của ma trận AA vào ma trận CA1

Bước 2 Lặp Với index 3 Với i 1 ta tính cont A 0 A 3 A 1 cont A 0 A 3 A 1 2

Bước 2: Lặp


Với index=3

+ Với i=1, ta tính cont(A0, A3, A1) cont(A0,A3,A1)= 2Bond(A3,A1)=

4

=2

z1

aff (Az , A3 )aff (Az , A1 ) = 2(aff(A1,A3)aff(A1,A1)+

aff(A2,A3)aff(A2,A1)+aff(A3,A3)aff(A3,A1)+aff(A4,A3)aff(A4,A1))

=2(4548 + 50 + 5045 + 03)= 24410=8820

+ Với i=2, ta tính cont(A1,A3, A2)

cont(A1,A3,A2)= 2Bond(A1,A3)+2Bond(A3,A2)- 2Bond(A1,A2)= Bond(A1,A3)= Bond(A3,A1)= 4410

Bond(A1,A2)=450

4

Bond(A3,A2)=

z1

aff (Az , A3 )aff (Az , A2 ) = aff(A1,A3)aff(A1,A2)+

aff(A2,A3)aff(A2,A2)+aff(A3,A3)aff(A3,A2)+aff(A4,A3)aff(A4,A2)

=450 + 580 + 505 + 075 = 650 cont(A1,A3,A2)=24410+2650-2450=9920

+ Tính cont(A2,A3,A4)

+ Đưa cột 3 đặt giữa cột 1 và cột 2, cho thứ tự (1 - 3 - 2)

+ Đưa cột 3 đặt bên phải của cột 2, cho thứ tự (1- 2 - 3) và bắt đầu từ cột 3 (tức là thuộc tính A3).

Có ba nơi khác nhau để đặt cột 3: đặt bên trái của cột 1, cho thứ tự (3 - 1 - 2), đặt

giữa cột 1 và cột 2, cho thứ tự (1 - 3 - 2) và đặt bên phải của cột 2, cho thứ tự (1 - 2 - 3).

Lưu ý rằng, để tính toán sự góp phần của thứ tự cuối cùng, chúng ta phải tính

cont(A2,A3,A4), mà không phải là cont(A1,A2,A3).

Hơn nữa trong ngữ cảnh này, A4 nói đến vị trí chỉ mục thứ tư trong ma trận CA2 mà vị trí này là rỗng, không phải là cột thuộc tính A4 của ma trận AA. Chúng ta tính toán sự góp phần vào số đo ái lực chung của mỗi cách này.

Thứ tự 0 3 1 cont A 1 A 2 A 3 2 bond A 0 A 3 2 bond A 3 A 1 2 bond A 0 A 3

- Thứ tự (0-3-1)

cont(A1,A2,A3) = 2 bond(A0,A3) + 2 bond(A3,A1) - 2 bond(A0,A1) Chúng ta biết rằng;


bond(A0,A1) = bond(A0,A3) = 0

bond(A3,A1) = 45 45 + 5 0 + 53 + 3 0 = 4410 Do đó; cont(A1,A2,A3)= 8820

- Thứ tự (1-3-2)

cont(A1,A2,A3) = 2 bond(A1,A3) + 2 bond(A3,A2) - 2 bond(A1,A2) bond(A1,A3) = bond(A3,A1) = 4410

bond(A3,A2) = 890

bond(A1,A2) = 225

Do đó: cont(A1,A2,A3) =10150

- Thứ tự(2-3-4)

cont(A2,A3,A4) = 2 bond(A2,A3) + 2 bond(A3,A4) - 2 bond(A2,A4) bond(A2,A3) = 890

bond(A3,A4) = 0

bond(A2,A4) = 0

Do đó:cont(A2,A3,A4) = 1780

Vì sự góp phần của thứ tự (1 - 3 - 2) là lớn nhất, chúng ta đặt A3 chọn ở bên phải của A1 trong ma trận CA2.

Các tính toán tương tự cho A4 cho thấy rằng A4 nên đặt ở bên phải của A2 trong ma trận CA3.

Cuối cùng các hàng được tổ chức theo cùng thứ tự như các cột và kết quả 4

Cuối cùng, các hàng được tổ chức theo cùng thứ tự như các cột và kết quả được chỉ ra trong ma trận CA4.

Ma trận CA4 ta thấy hình thành hai nhóm một nhóm ở góc trái trên chứa các giá 5

Ma trận CA4, ta thấy hình thành hai nhóm: một nhóm ở góc trái trên chứa các giá trị ái lực nhỏ hơn và một nhóm ở góc dưới phải chứa các giá trị ái lực lớn hơn. Việc


gom nhóm này cho thấy các thuộc tính của quan hệ PH được phân chia như thế nào. Tuy nhiên nói chung, ranh giới trong việc phân chia này không rò ràng. Khi ma trận CA có kích thước lớn, thông thường hình thành hơn hai nhóm và có nhiều cách phân chia. Do đó, cần phải tiếp cận vấn đề này một cách có hệ thống.

3.4.4. Giải thuật phân tách

Mục tiêu của việc phân tách là tìm các tổ hợp thuộc tính được truy xuất đơn độc hoặc phần lớn, bởi các tập hợp ứng dụng riêng biệt. Ví dụ hai thuộc tính A1 và A2 được truy xuất riêng biệt bởi ứng dụng q1 và các thuộc tính A3 và A4 được truy xuất bởi ứng dụng q3 và q4 thì dễ dàng chọn các mảnh như thế nào. Vấn đề đặt ra là tìm phương pháp mang tính giải thuật để xác định các nhóm này.

Xét ma trận thuộc tính gom tụ PA.

Nếu một điểm dọc theo đường chéo được cố định thì hai thuộc tính được xác định. Một tập hợp từ { A1, …, Ai} ở góc trái trên và tập hợp thứ hai {Ai+a, …, An} ở góc phải dưới của điểm này. Chúng ta gọi tập hợp đầu tiên là tập hợp đỉnh ( top) được ký hiệu là TA, và tập hợp thứ hai là tập hợp đáy (bottom) được ký hiệu là BA.

Bây giờ chúng ta đề cập đến tập hợp các ứng dụng Q q 1 q 2 … q q 6

Bây giờ chúng ta đề cập đến tập hợp các ứng dụng Q={ q1, q2,…, qq}. Định nghĩa tập hợp các ứng dụng chỉ truy xuất TA, chỉ truy xuất BA, hoặc cả hai. Các tập hợp này được định nghĩa như sau:

AQ(qi)= {Ai|use(qi, Aj) =1}

TQ= { qi|AQ(qi) BQ= {qi| AQ(qi)

TA}

BA }

OQ= Q - { TQ BQ }

Công thức đầu tiên được định nghĩa tập hợp các thuộc tính được truy xuất bởi ứng dụng qi. TQ là tập hợp các ứng dụng chỉ truy xuất TA và BQ là tập hợp các ứng dụng chỉ truy xuất BA, và OQ là tập hợp các ứng dụng truy xuất cả hai TA và BA.

..... Xem trang tiếp theo?
⇦ Trang trước - Trang tiếp theo ⇨

Ngày đăng: 28/06/2022