Rút gọn câu vấn tin SQL phân tán

Một phần của tài liệu Một số giải pháp rút gọn câu vấn tin phân tán để xử lí song song (Trang 46 - 69)

CHƯƠNG 2: PHÂN RÃ VẤN TIN VÀ CỤC BỘ HÓA DỮ LIỆU

2.2. Cục bộ hóa dữ liệu phân tán và các phương pháp rút gọn câu vấn tin phân tán

2.2.2. Rút gọn câu vấn tin SQL phân tán

Chương trình cục bộ hoá là một chương trình đại số quan hệ mà các toán hạng là các quan hệ được dùng để tái thiết lại quan hệ ban đầu.

Để thuận lợi cho việc nghiên cứu việc rút gọn câu vấn tin SQL phân tán, chúng ta xét các cấu trúc câu lệnh song song sau:

Cấu trúc Parbegin và Parend, Cobegin và Coend (chương 6 [3])

Trong chương trình, những tiến trình không sử dụng dữ liệu chung hay độc lập với nhau thì thực hiện được đồng thời. Giả thiết các lệnh S1, S2,..., Sn được thực hiện song song trên n tiến trình (hay n bộ xử lí) riêng biệt. Khi đó chúng ta có thể viết thành khối song song như sau (chương 6 [3]):

Parbegin Hoặc Cobegin

S1; S1;

S2; S2;

... ...

Sn; Sn;

Parend Coend

Cấu trúc forall và inPar(chương 6 [3])

Nhiều khi một số tiến trình (câu lệnh) tương tự nhau cần phải bắt đầu thực hiện và cùng lặp lại một số lần. Điều này có thể thực hiện được bằng cấu trúc forall (chương 6 [3]):

forall (i = 0; i < n; i++) S1;

S2;

...

Sn;

}

Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/

Hoặc sử dụng cấu trúc for (i = 0; i < n; i++)

S1;

S2;

...

Sn;

} In Parallel

2.2.2.1. Rút gọn cho phân mảnh ngang nguyên thuỷ.

* Rút gọn với phép chọn (câu vấn tin dạng SELECT *)

Để phân mảnh ngang nguyên thủy quan hệ R theo vị từ chọn pi (i 1,n) ta dùng công thức Ri = pi(R) i 1,n. Như vậy, Ri, là một tập các bộ của R thỏa mãn vị từ pi,i 1,n. Để tái thiết quan hệ ban đầu ta dùng công thức R= i 1,n Ri.

Qui tắc 1:

Nếu x R: (pi(x) pj(x)) thì Pj(Ri) = (2.7)

Trong đó pj(x) là vị từ của câu truy vấn SQL và pi(x) là vị từ phân mảnh còn x biểu thị một bộ (bản ghi), khi viết p(x) có nghĩa là “vị từ p đúng với x”.

Ghi chú: Trong trường hợp này, chúng ta bỏ các mảnh Ri nếu nó thỏa (2.7) Ví dụ 2.2.2.1-1

Chẳng hạn quan hệ EMP trong ví dụ 1.2.2-1 được tách thành ba mảnh ngang nguyên thủy như sau:

R1 = EMP1 = ENO “E3” (EMP);

vị từ phân mảnh p1 = (ENO “E3”) R2 = EMP2 = “E3” < ENO “E6” (EMP) ;

vị từ phân mảnh p2 = (“E3” < ENO “E6”) R3 = EMP3 = ENO “E6” (EMP) ;

vị từ phân mảnh p3 = = (“E6” < ENO)

Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/

Chương trình cục bộ hoá cho phân mảnh ngang trên là hợp các mảnh lại:

R = R1 R2 R3

Hay

EMP = EMP1 EMP2 EMP3

Vì vậy câu vấn tin thực hiện trên EMP sẽ được thực hiện trên EMP1 EMP2 EMP3

Giả sử cho câu vấn tin:

SELECT * FROM EMP

WHERE “E3” < ENO “E5”

Thấy rằng pj = (“E3” < ENO “E5”), và

(pj p1)= True , nên pj(R1) = và do đó không cần thực hiện câu vấn tin trên R1

(pj p2)= False , nên pj(R2) và do đó cần thực hiện câu vấn tin trên R2

Và (pj p3 )= True , nên pj(R3) = và do đó không cần thực hiện câu vấn tin trên R3

Rút gọn vấn tin dạng SELECT*… trên các quan hệ phân mảnh ngang nguyên thủy chủ yếu là xác định, sau khi đã tái cấu trúc, xem mảnh nào có vị từ phân mảnh mâu thuẫn với vị từ truy vấn thì bỏ mảnh đó đi.

Như đã biết công thức phân mảnh ngang nguyên thủy, được thực hiện theo công thức Ri = pi(R) i 1,n. Và tái thiết quan hệ ban đầu ta dùng công thức R= i 1,n Ri.

Do các Ri có kích thước khác nhau nên để xử lý song song với vị từ chọn pj trên các Ri trong trường hợp chưa rút gọn, chúng ta dùng cấu trúc lệnh song song Parbegin … Parend hoặc Cobegin … Coend. Chẳng hạn Parbegin … Parend:

Thuật toán1- Rút gọn phép chọn

Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/

Begin

Parbegin S1 = pj(R1) S2 = pj(R2) ...

Sn = pj(Rn) Parend

S= i 1,n Si. End

Chú ý rằng việc thực hiện pj trên tất cả Ri, i 1,n là vô lý và không hiệu quả vì theo quy tắc 1, chúng ta có thể không cần thực hiện câu truy vấn này trên một số mảnh Ri nào đó.

Muốn rút gọn các mảnh theo phép chọn vị từ trong trường hợp mà tuần tự chúng ta có giả mã như sau:

M For i = 1 To n

If (pi pj) //không thỏa quy tắc 1 M = M Ri

Endif Endfor

Muốn rút gọn các mảnh theo phép chọn vị từ trong trường hợp mà song song chúng ta có giả mã như sau:

Begin

Parbegin {

If (p1 pj) //không thỏa quy tắc 1 M = M R1

Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/

Else M = M

Endif }

{

If (p2 pj) //không thỏa quy tắc 1 M = M R2

Else M = M

Endif }

… {

If (pn pj) //không thỏa quy tắc 1 M = M Rn

Else M = M

Endif }

Parend End

Rõ ràng M R= i 1,n Ri.

Vì vậy sau khi rút gọn, chúng ta dùng thực hiện truy vấn song song sẽ hiệu quả hơn nhiều.

Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/

Ví dụ 2.2.2.1-2

Trong các quan hệ ở ví dụ 1.2.2-1 rút gọn cho phân mảnh ngang khi dùng câu vấn tin mẫu sau:

SELECT * FROM EMP

WHERE ENO = “E5”

Khi áp dụng thuật toán 1 ta có kết quả (minh họa ở hình 2.3).

Câu vấn tin SQL đã rút gọn cho phân mảnh ngang sẽ là:

SELECT * FROM EMPH2 WHERE ENO = “E5”

* Rút gọn với phép nối

Nối trên các quan hệ phân mảnh ngang có thể được đơn giản khi các quan hệ nối được phân mảnh theo thuộc tính nối. Đơn giản hóa gồm có phân phối nối trên các hợp rồi bỏ đi các nối vô dụng. Từ phép phân phối nối và hợp:

(R1 R2) S = (R1 S) (R2 S) , trong đó Ri là các mảnh của R còn S là một quan hệ.

Hình 2.3. Rút gọn cho phân mảnh ngang (với phép chọn)

(c) Vấn tin rút gọn

ENO = “E5”

EMPH2 (a) Vấn tin gốc

ENO = “E5”

EMPH1 EMPH2 EMPH3

(b) Vấn tin đã đổi cho

ENO = “E5”

EMPH1 EMPH2 EMPH3

ENO = “E5” ENO = “E5”

Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/

Giả sử rằng các mảnh Ri, Sj được định nghĩa tương ứng theo các vị từ pi, qj trên quan hệ R và S tương ứng, qui tắc đơn giản hoá có thể được phát biến như sau:

Qui tắc 2:

Nếu x Ri, y Sj: (pi ( x) qj (y)) thì Ri Sj = (2.8) Trong trường hợp này chúng ta nói nối là vô dụng và loại bỏ nối này.

Câu vấn tin rút gọn sẽ tốt hơn khi có ít các nối từng phần [3].

Giả sử R= i 1,n Ri, Ri được định nghĩa bởi pi (x) và S= j 1,m Sj , Sj được định nghĩa bởi qj (y)

Và giả sử R S = i 1,n Ri j 1,m Sj, do hợp và nối có tính phân phối nên:

R S = i 1,n; j 1,m Ri Sj

Từ đây chúng ta có thuật toán

Trường hợp không rút gọn và xử lý song song trên nm bộ xử lý.

Begin

Parbegin

S11 = R1 S1

S12 = R1 S2

S1m = R1 Sm

Snm = Rn Sm Parend

S0 = i 1,n;j 1,m Sij. End

Trường hợp không rút gọn và xử lý song song trên n bộ xử lý.

Begin

Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/

Parbegin

For j = 1 To m S10 = R1 Sj

For j = 1 To m S20 = R2 Sj

For j = 1 To m Sn0 = Rn Sj

Parend

S0 = i 1,n Si0

End

Thuật toán2- Rút gọn phép nối Trường hợp tuần tự

Begin

For i = 1 To n Mi For j = 1 To m

If (pi qj) //không thỏa quy tắc 2 Mi = Mi (Ri Sj)

Endif endfor M = i 1,n Mi

End

Trường hợp song song dùng nm bộ xử lý Begin

Parbegin

S11 = R1 S1

Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/

S12 = R1 S2

S1m = R1 Sm

Snm = Rn Sm Parend

S0 = i 1,n;j 1,m Sij

End

Nhận xét: Có thể có rất nhiều quan hệ Sij rỗng.

Trường hợp song song dùng n bộ xử lý Begin

Parbegin S10 =

For j = 1 To m S10 = S10 R1 Sj

Endfor S20 =

For j = 1 To m

S20 = S20 R2 Sj

Endfor

… Sn0 =

For j = 1 To m

Sn0 = Sn0 Rn Sj

Endfor Parend

S0 = i 1,n S0j

Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/

End

Nhận xét: Có thể có rất nhiều quan hệ S0j rỗng.

Muốn rút gọn các mảnh theo vị từ nối trong trường hợp song song chúng ta có giả mã như sau:

Trường hợp song song dùng n bộ xử lý Begin

Parbegin {

M1 For j = 1 To m

If (p1 qj) //không thỏa quy tắc 2 M1 = M1 (R1 Sj)

Endif Endfor }

...

{

Mn For j = 1 To m

If (pn qj) //không thỏa quy tắc 2 Mn = Mn (R1 Sj)

Endif Endfor }

Parend

M= i 1,n Mi

End

Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/

Rõ ràng M R S

Vì vậy sau khi rút gọn, chúng ta thực hiện truy vấn song song sẽ hiệu quả hơn nhiều.

Ví dụ 2.2.2.1-3

Trong các quan hệ ở ví dụ 1.2.2-1 giả sử EMP được phân mảnh ngang nguyên thủy như sau:

EMPH1 = ENO “E3” (EMP) ; pEMPH1 = (ENO “E3”)

EMPH2 = “E3” < ENO “E6” (EMP) ; pEMPH2 = (“E3” < ENO “E6”) EMPH3 = ENO “E6” (EMP) ; pEMPH3 = (“E6” < ENO)

và quan hệ ASG được phân mảnh ngang nguyên thủy như sau:

ASGH1 = ENO “E3” (ASG) ; pASGH1 = (ENO “E3”) ASGH2 = ENO “E3” (ASG) ; pASGH2 = (ENO “E3”)

Như vậy .

pEMPH1 pASGH1 = (ENO “E3”) (ENO “E3”) = True

pEMPH1 pASGH2 = (“E3” ENO) (“E3” < ENO) = False cho quan hệ rỗng pEMPH2 pASGH1 =(“E3”< ENO “E6”) (ENO “E3”)=False cho quan hệ rỗng pEMPH2 pASGH2 = (“E3” < ENO “E6”) (ENO “E3”) = True

pEMPH3 pASGH1 =(“E6”< ENO) (ENO “E3”) = False cho quan hệ rỗng pEMPH3 pASGH2 = (“E6” < ENO) (ENO “E3”) = True

Bây giờ xét câu vấn tin nối sau:

SELECT *

FROM EMP, ASG

WHERE EMP.ENO = ASG.ENO

Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/

Kết quả rút gọn ở hình 2.4b.

Bây giờ câu vấn tin sau khi rút gọn là : (SELECT*

FROM [EMPH1.ENO=ASGH1.ENO]) UNION

(SELECT*

FROM [EMPH2.ENO=ASGH2.ENO]) UNION (SELECT*

FROM [EMPH3.ENO=ASGH2ENO]);

2.2.2.2. Rút gọn cho phân mảnh dọc

Phân mảnh dọc một quan hệ dựa trên các thuộc tính chiếu. Mỗi mảnh dọc là kết quả chiếu lên một tập con thuộc tính, một tập thuộc tính được dùng để tạo ra mảnh dọc luôn có mặt của tập thuộc tính khóa chính. Toán tử xây

EMPH1 ASGH1 EMPH2 ASGH2 EMPH3 ASGH2 Hình 2.4b Vấn tin đã rút gọn

ENO ENO ENO

EMPH1 EMPH2 EMPH3 ASGH1 ASGH2 Hình 2.4a Vấn tin gốc

ENO

Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/

dựng lại quan hệ gốc từ các mảnh dọc là nối qua tập thuộc tính khóa này.

Chương trình cục bộ hoá (tái thiết lại quan hệ ban đầu) cho một quan hệ phân mảnh dọc là phép nối.

Tương tự như phân mảnh ngang, các vấn tin trên các mảnh dọc có thể được rút gọn bằng cách xác định các quan hệ trung gian vô dụng và loại bỏ các cây con đã sinh ra chúng. Phép chiếu trên một mảnh dọc không có thuộc tính chung với các thuộc tính chiếu (trừ khóa của quan hệ) sinh ra các quan hệ vô dụng, mặc dù không phải là quan hệ rỗng. Cho trước quan hệ R(A) | A = {A1, …, An}và được phân mảnh thành các mảnh dọc

Ri = A’(R) | A’ A. Qui tắc loại bỏ quan hệ vô dụng trong phân mảnh dọc phát biểu như sau:

Qui tắc 3

D,K (Ri) là vô dụng nếu tập các thuộc tính chiếu D hoặc K hoặc D K không thuộc A’ (hình 2.5).

Rút gọn vấn tin trên các quan hệ phân mảnh dọc chủ yếu là xác định, sau khi đã tái cấu trúc, xem mảnh nào có vị từ phân mảnh mâu thuẫn với vị từ truy vấn thì bỏ mảnh đó đi. Công thức phân mảnh dọc, được thực hiện theo công thức Rj = Aj’(R), j=1,N . Và tái thiết quan hệ ban đầu ta dùng công thức R= Rj, j =1,N.

A’

Ri

D K

Hình 2.5. Phép chiếu vô dụng

K

Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/

Do các Rj có kích thước khác nhau nên để xử lý song song với tập thuộc tính Aj’ trên các Rj trong trường hợp chưa rút gọn, chúng ta dùng cấu trúc lệnh song song Parbegin … Parend hoặc Cobegin … Coend. Chẳng hạn Parbegin … Parend:

Thuật toán 3- Rút gọn phép chiếu Begin

Parbegin S1 = D,K(R1) S2 = D,K(R2) …

SN = D,K(RN) Parend

S= Sj j=1,N. End

Chú ý rằng việc thực hiện D,K trên tất cả Rj, j=1,N là vô lý và không hiệu quả vì theo quy tắc 3, chúng ta có thể không cần thực hiện câu truy vấn này trên một số mảnh Rj nào đó.

Muốn rút gọn các mảnh theo phép chiếu vị từ trong trường hợp mà tuần tự chúng ta có giả mã như sau:

M For j= 1 To N

If ( D,K(Rj)) là không vô dụng //không thỏa quy tắc 3 M = M RJ

Endif Endfor

Muốn rút gọn các mảnh theo phép chiếu vị từ trong trường hợp mà song song chúng ta có giả mã như sau:

K

Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/

Begin

Parbegin {

If ( D,K(R1)) là không vô dụng //không thỏa quy tắc 3 M = M {( D,K(R1))}

Endif } {

If ( D,K(R2)) là không vô dụng //không thỏa quy tắc 3 M = M {( D,K(R2))}

Endif }

...

{

If ( D,K(Rn)) là không vô dụng //không thỏa quy tắc 3 M = M {( D,K(Rn))}

Endif }

Parend End

Rõ ràng M S= Sj, j=1,N.

Vì vậy sau khi rút gọn, chúng ta thực hiện truy vấn song song sẽ hiệu quả hơn nhiều.

Ví dụ 2.2.2.2–1: Trong các quan hệ ở ví dụ 1.2.2-1 quan hệ EMP có thể được phân thành hai mảnh dọc, trong đó thuộc tính khóa ENO phải có mặt trong mọi mảnh dọc.

EMPV1 = ENO , ENAME (EMP) K

Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/

EMPV2 = ENO , TITLE (EMP)

Chương trình cục bộ hóa là EMP = EMPV1 EMPV2

Xét câu vấn tin trong SQL:

SELECT ENAME

FROM EMP

Câu vấn tin gốc tương đương trên EMPV1 và EMPV2 được cho trên hình 2.6a, sau khi hoán vị phép chiếu với phép nối (tức là chiếu trước nối) được cây hình 2.6b, chúng ta thấy EMPV2 là vô dụng vì ENAME không thuộc EMPV2. Vì vậy phép chiếu chỉ cần thực hiện trên EMPV1 như được trình bày trong hình 2.6c.

Câu vấn tin trong SQL rút gọn là:

SELECT ENAME

FROM EMPV1

2.2.2.3. Rút gọn cho phân mảnh ngang dẫn xuất

Phép nối là phép toán quan trọng nhất vì nó thường gặp lại có thể được tối ưu hóa bằng cách dùng phân mảnh ngang nguyên thủy khi các quan hệ nối được phân mảnh theo các thuộc tính nối. Trong trường hợp này, nối của hai

ENAME

EMPV1

(c) Vấn tin đã rút gọn Hình 2.6. Rút gọn cho phân mảnh dọc

ENAME

EMPV1 EMPV2

(a) Vấn tin gốc

ENO

EMPV1 EMPV2

(b) Vấn tin gốc

ENAME ENAME

ENO

ENO

Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/

quan hệ được cài đặt như hợp của các nối thành phần. Tuy nhiên phương pháp này ngăn cản không cho một trong các quan hệ phân mảnh theo một phép chọn trên một thuộc tính khác. Phân mảnh ngang dẫn xuất là một cách khác để phân phối hai quan hệ mà nhờ đó có thể cải thiện khả năng xử lý các điểm giao nhau giữa phép chọn và phép nối. Điển hình, nếu quan hệ R phải phân mảnh dẫn xuất theo quan hệ S, thì các mảnh của R và S có giá trị giống nhau ở thuộc tính nối sẽ nằm cùng vị trí. Ngoài ra, S có thể được phân mảnh theo vị trừ chọn.

Bởi vì các bộ của R được đặt tuỳ theo các bộ của S, phân mảnh dẫn xuất chỉ sử dụng cho mối liên hệ 1 – n (phân cấp) có dạng S R, trong đó một bộ của S có thể khớp với nhiều bộ của R, nhưng một bộ của R chỉ khớp với đúng một bộ của S. Chú ý rằng phân mảnh ngang dẫn xuất có thể được sử dụng cho các mối liên hệ nhiều - nhiều, với điều kiện là các bộ của S là các bộ khớp với nhiều bộ của R) được nhân bản. Nhân bản như thế gây nhiều khó khăn cho việc duy trì tính nhất quán. Để đơn giản, chúng ta sử dụng phân mảnh dẫn xuất là mối liên hệ phân cấp.

Ví dụ 2.2.2.3-1

Từ ví dụ 1.2.1-1 giả sử rằng EMP được phân mảnh ngang thành EMPH1

và EMPH2 như sau:

EMPH1 = TITLE = ” programmer ” (EMP) EMPH2 = TITLE ” programmer ” (EMP)

Chương trình cục bộ hoá phân mảnh ngang là hợp của các mảnh của nó. Tức là:

EMP = EMPH1 EMPH2

Quan hệ ASG có thể được phân mảnh gián tiếp (phân mảnh dẫn xuất (DX)) theo các qui tắc sau:

Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/

ASGDXH1 = ASG EMPH1 ASGDXH2 = ASG EMPH2

Chương trình cục bộ hoá cho quan hệ phân mảnh ngang ASG là hợp của các mảnh của nó. Tức:

ASG = ASGDXH1 ASGDXH2

Các câu vấn tin trên các mảnh dẫn xuất cũng có thể được rút gọn. Bởi vì loại phân mảnh này được sử dụng rất nhiều trong việc tối ưu hóa các câu vấn tin nối, một biến đổi có ích là phân phối các nối trên các tập hợp (được dùng trong cục bộ hóa) và áp dụng qui tắc 2 đã được trình bày ở trên. Bởi vì qui tắc phân mảnh chỉ rõ các bộ sẽ “khớp lại” với nhau, một số nối sẽ sinh ra quan hệ rỗng nếu các vị trí phân mảnh có mâu thuẫn. Ví dụ các vị từ của ASGDXH1 và EMPH2: Vì TITLE là khóa nên các giá trị ENO trong ASGDXH1 ứng với TITLE = ” programmer” không thể bằng với các giá trị ENO trong EMPH2 ứng với TITLE ” programmer” nên mâu thuẫn và vì thế:

ASGDXH1 ENO EMPH2 =

Ngược lại với rút gọn bằng nối được nêu trước đây, câu vấn tin rút gọn luôn tốt hơn so với câu vấn tin gốc bởi vì số lượng các nối từng phần thường bằng với số mảnh của R.

Giải pháp rút gọn cho phân mảnh ngang dẫn xuất trong trường hợp xử

lý song song tương tự như rút gọn cho phân mảnh ngang nguyên thủy.

Ví dụ 2.2.2.3-2:

Theo ví dụ 1.2.1-1 rút gọn theo mảnh dẫn xuất được minh hoạ bằng cách dùng câu vấn tin SQL truy xuất tất cả các thuộc tính từ EMP và ASG có cùng giá trị của ENO và chức vụ là TITLE = “Mech.Eng”.

SELECT *

FROM EMP, ASG

WHERE ASG.ENO = EMP.ENO AND TITLE = “Mech.Eng”

ENO ENO

Số hóa bởi trung tâm học liệu http://lrc.tnu.edu.vn/

Câu vấn tin gốc được thực thi trên các mảnh EMPH1, EMPH2, ASGH1, ASGH2 đã dịch nghĩa trước đây được trình bày trong hình 2.7.

Bằng cách giao hoán dùng phép chọn TITLE= Mech.Eng và phép hợp của nhánh bên phải ta được kết quả hình 2.8.

Do trong EMPH1chỉ có các bộ thỏa vị từ TITLE = ” programmer ” không có bộ nào thỏa mãn TITLE = “Mech.Eng” nên vị từ chọn mâu thuẫn với vị từ phân mảnh EMPH1 và vì thế loại bỏ mảnh EMPH1. Kết quả lọc bỏ, ta thu được cây ở hình 2.9.

Hình 2.9. Vấn tin sau khi dùng vị từ mâu thuẫn

TITLE= Mech.Eng”

EMPH2 ASGDXH1 ASGDXH2

ENO

Hình 2.7. Vấn tin gốc

TITLE= “Mech.Eng”

EMPH1 EMPH2 ASGDXH1

TI TLE=

Mech.Eng”

ASGDXH2 ENO

Hình 2.8. Vấn tin gốc đã được giao hoán

TITLE = “Mech.Eng”

EMPH1 EMPH2 ASGDXH1

TITLE=

Mech.Eng”

ASGDXH2

ENO

TITLE = “Mech.Eng”

Một phần của tài liệu Một số giải pháp rút gọn câu vấn tin phân tán để xử lí song song (Trang 46 - 69)

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

(85 trang)