Sử dụng thông tin phụ thuộc vị trí (placement dependency) để thực hiện nối [7]

Một phần của tài liệu (LUẬN văn THẠC sĩ) cơ sở dữ liệu phân tán và tối ưu hoá vấn tin luận văn ths công nghệ thông tin 1 01 10 (Trang 104 - 107)

Chương 3 MỘT SỐ ĐỀ XUẤT KHÁC VỀ XỬ LÝ PHÉP NỐI TRONG CÁC HỆ CSDL

3.2 Một số phương án tiếp cận xử lý nối phân tán khác

3.2.1 Sử dụng thông tin phụ thuộc vị trí (placement dependency) để thực hiện nối [7]

Xét nối tự nhiên giữa hai quan hệ R1 và R2 trên thuộc tính chung A, với giả thiết rằng chúng được phân mảnh như trong hình 3.12. Chúng ta xét phương án nối như sau: (F11><F21)∪(F12 ><F22). Với phương án này, nếu như ta có thể thu được kết quả như R1><R2, thì thao tác nối các mảnh có thể thực hiện song song mà không cần phải truyền dữ liệu. Thêm nữa ta có thể tận dụng các chỉ mục sẵn có trên từng trạm để thực hiện nối. Tuy nhiên trên thực tế thì phương án này có thể dẫn đến kết quả không chính xác.

S1 S2

R1 F11 F12

R2 F21 F22

Hình 3. 12 Hai quan hệ được phân mảnh

Ví dụ nếu bộ s trong F11 và bộ t trong F22 cùng chứa giá trị “a” của thuộc tính A, thì bộ s sẽ được nối với bộ t trong phép nối giữa R1R2. Tuy nhiên với phương án nối trên thì chúng lại không tham gia trong phép nối của các mảnh, do các bộ này nằm trên các trạm khác nhau và thao tác nối các mảnh được thực hiện mà không có việc truyền dữ liệu. Tuy kết quả của phương án này không phải lúc nào cũng chính xác, nhưng trong nhiều trường hợp cụ thể thì ta vẫn có thể sử dụng nó cùng với các ràng buộc.

Thí dụ 3.1:

R1 là là quan hệ NHANVIEN; R2 là quan hệ chứa các thông tin của những người phụ thuộc vào nhân viên này PHUTHUOC(MSNV, MSPT,TENPT,… ). Giả sử các bộ của PHUTHUOC luôn được gắn với bộ của NHANVIEN, tức là nếu một nhân viên làm việc tại một chi nhánh, và nếu bộ của họ nằm tại F11 thì bộ của người phụ thuộc sẽ nằm tại F21, điều đó có nghĩa là: R1><R2=(F11><F21)∪(F12 ><F22).

Định nghĩa 3.1 Hai mảnh của quan hệ Ri và Rj có phụ thuộc vị trí trên thuộc tính A

nếu Fis ><A Fjt với st. Nói cách khác Ri><Rj=∪(Fis><Fjs), với mỗi trạm

s chứa các mảnh của hai quan hệ [7].

Để thuận tiện ta biểu diễn điều kiện nối là Ri.A=Rj.A.

Nhn xét 1: Nếu RiRjphụ thuộc vị trí trên thuộc tính A., thì nó sẽ có phụ thuộc vị trí trên mọi tập các thuộc tính B (có chứa A). Có được kết quả trên là do nếu FisFjt với st không có giá trị chung nào trên thuộc tính A thì chúng không thể có giá trị chung nào trên thuộc tính (hợp) B chứa A.

Tiếp theo ta nhận thấy rằng nếu RiRjphụ thuộc vị trí trên thuộc tính A, và thuộc tính (hoặc tập của các thuộc tính) B xác định hàm bởi A và A không chứa giá trị null thì Ri Rj sẽ có phụ thuộc vị trí trên B. Giả sử nếu ta không có phụ thuộc vị trí trên B, có nghĩa là: có 2 trạm khác nhau s và t với mảnh của Ri nằm trên trạm s là Fis và mảnh của Rj nằm trên trạm t là Fjt, và giá trị chung “b” trên thuộc tính B. Do phụ thuộc hàm và do không chứa giá trị null, nên bộ củaFis và bộ của Fjt có giá trị “b” trên thuộc tính B, thì phải có cùng giá trị trên thuộc tính A. Như vậy điều này mâu thuẫn với việc RiRjphụ thuộc vị trí trên thuộc tính A. Như vậy RiRj phải có phụ thuộc vị trí trên thuộc tính B. Nói cách khác thuộc tính B được suy ra trực tiếp bởi A sẽ là thuộc tính mà RiRj có phụ thuộc vị trí trên nó. Dựa trên cách tiếp cận này chúng ta có thể suy luận tiếp cho thuộc tính C (suy ra trực tiếp từ B và gián tiếp từ A). Với tập các phụ thuộc vị trí và tập các phụ thuộc hàm đầy đủ thì ta có thể suy diễn được tất cả các các phụ thuộc vị trí.

Nhn xét 2: Nếu RiRjphụ thuộc vị trí trên thuộc tính A và Rj, Rkphụ thuộc vị trí trên B, thì:

) (

)

(Ri><A Rj><B Rk =∪ Fis ><A Fjs ><B Fks với s là các trạm chứa các mảnh của

Ri, Rj, Rk.

Nói cách khác, các thao tác nối các mảnh có có thể được thực hiện cục bộ mà không cần truyền dữ liệu. kết quả thu được theo cách sau:

=

= (( ) )

)

(Ri><A Rj><B Rk s,t Fis ><A Fjs ><B Fkt

)) (

( )) (

(∪s Fis ><A Fjs ><B Fks ∪ ∪s,ts Fis ><A Fjs ><B Fkt

Ta thấy rằng thao tác nối cuối cùng trên thuộc tính B luôn cho giá trị rỗng (do tính chất của phụ thuộc vị trí). Do vậy Ri><A Rj><B Rk có thể được xử lý mà không cần truyền dữ liệu. Giả sử truy vấn Q chứa câu truy vấn con Q’ và nối Rj><B Rk. Với Rj là quan hệ kết quả từ Q’ và Rk không nằm trong Q’. Giả sử thao tác nối của Q’ được xử lý mà không cần truyền dữ liệu và có phụ thuộc vị trí của RjRk trên thuộc tính B (hoặc tập con của B), thì thao tác nối của truy vấn có thể được tiến hành mà không cần truyền dữ liệu. (Ví dụ Q’ là Ri><A Rj và Q là

Rk Rj

Ri><A ><B ).

Căn cứ trên các nhận xét trên chúng ta xây dựng một thuật toán để xác định được thao tác nối có thể thực hiện mà không cần truyền dữ liệu.

Placement-Dependency(Q, P, S)

/* R={R1,R2...Rn} là tập các quan hệ dẫn xuất từ truy vấn Q. P là thông tin về phụ thuộc vị trí. S là tập lớn nhất các thao tác nối có thể thực hiện được mà không cần truyền dữ liệu. Khởi đầu S=φ, khi kết thúc nếu S=R thì Q có thể thực hiện không cần truyền dữ liệu */

Khởi tạo S=φ; } ...

, {R1 R2 Rn

R= ;

If cặp quan hệ RiRjR có thể tìm thấy sao cho chúng có phụ thuộc vị trí trên thuộc tính A nào đó và Ri ><C Rj, với C chứa A then

Đặt RiRj vào tập S;

If không tìm thấy cặp quan hệ nào như vậy then Thuật toán kết thúc với S=φ;

While (còn quan hệ Rk trong R nhưng không nằm trong S thỏa mãn tính chất ** ) Chèn Rk vào tập S;

If S =Rthen Q có thể được xử lý mà không cần truyền dữ liệu.

Tính chất ** : để có thể đưa được Rk vào S thì cần có quan hệ Rj trong S sao cho giữa RjRk có phụ thuộc vị trí trên thuộc tính B nào đó và Rj><B Rkcó trong Q hoặc có thể được suy ra từ Q.

Thí dụ 3.2:

Cho truy vấn R1><A R2><B R3><C R4. Giả sử ta có phụ thuộc vị trí như sau:

R1R2 trên thuộc tính A

R2R3 trên thuộc tính B R3R4 trên thuộc tính C.

Khởi đầu S là rỗng, sau khi câu lệnh if đầu tiên được thực hiện thì R1R2 sẽ được đưa vào S. Sau đó R3 cũng được đưa vào S do có tồn tại phụ thuộc vị trí giữa R2R3 trên thuộc tính B. Tiếp tục như vậy cuối cùng ta đưa được R4 vào trong S. Và vì

4 3

2

1 R R R

R

S= ><A ><B ><C nên truy vấn có thể được xử lý mà không cần truyền

dữ liệu.

Một phần của tài liệu (LUẬN văn THẠC sĩ) cơ sở dữ liệu phân tán và tối ưu hoá vấn tin luận văn ths công nghệ thông tin 1 01 10 (Trang 104 - 107)

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

(127 trang)