.15 Mô tả cách tạo bản sao cho bộ

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 110 - 114)

Tình huống thứ hai: R1><A R2><B R3, nếu ta sử dụng cùng hàm băm cho thuộc

tính A và thuộc tính B thì có thể sẽ không thu được phụ thuộc vị trí bởi những lý do sau: Các bộ có giá trị lẻ trên thuộc tính A của R1 sẽ ở trạm S1, các bộ có giá trị lẻ trên thuộc tính B của R3 cũng sẽ ở trạm S1. Tuy nhiên, có thể có vài bộ của R2 có giá trị lẻ trên thuộc tính A và giá trị chẵn trên thuộc tính B, như vậy mỗi bộ này sẽ được ánh xạ bởi 2 hàm băm lên hai trạm khác nhau. Có một giải pháp cho phép các bộ này được sao lại trên cả hai trạm.

Thí dụ 3.3:

Trong hình 3.15, bộ của R2 có giá trị lẻ trên thuộc tính A và giá trị chẵn trên thuộc tính B sẽ nằm trong cả hai mảnh F21oF22e và được nhân bản trên cả hai trạm S1

S2. Mảnh Fij của quan hệRi phải được định vị trên trạm Sj trước khi thực hiện thao tác nối liên quan. Nói chung, một quan hệ có thể có nhiều thuộc tính tham gia nối với các quan hệ khác, và nếu một bộ của quan hệ (sau khi phân hoạch bởi các hàm băm) có liên quan đến các thuộc tính nối trên nhiều trạm khác nhau thì chúng phải được nhân bản lên các trạm này.

Một giải pháp khác, là ta sẽ thực hiên lần lượt từng phép nối: nối R1R2 trên thuộc tính A trước (sử dụng hàm băm) tạo ra quan hệ trung gian R4, sau đó thực hiện nối giữa R4R3 trên thuộc tính B (sử dụng hàm băm).

Với các trường hợp trên ta có những nhận xét như sau:

1. Nếu có i trạm, thì hàm băm như h(a)=j+1 với j=a mod i có thể được sử dụng, nghĩa là khi bộ có giá trị“a” chia i được số dưj thì bộđó được chuyển tới trạm Sj+1. Bằng cách đó bộ với giá trị cho trước trên thuộc tính nối được ánh xạ tới một trong sối trạm, với j∈[0,i−1].

2. Ta có thể sử dụng một phương án khác để phân hoạch quan hệ/mảnh dựa trên khoảng giá trị của thuộc tính nào đó. Thí dụ nếu thuộc tính nối A có giá trị trong khoảng [cận dưới, cận trên], thì khoảng giá trị này có thểđược chia thành các i khoảng rời nhau [cận dưới, a1], (a1,b1],…,(ai−1, cận trên], sao cho bộ nằm trong khoảng [cận dưới, ai] được chuyển tới trạm S1, bộ trong khoảng (aj,bj] chuyển tới trạm Sj+1 với 1≥ ji−2, và bộ trong khoảng (ai−1, cận trên] chuyển tới trạm Si. Phương pháp này này được gọi là phân hoạch trên khoảng.

3. Và chúng ta cũng cần quan tâm đến việc kết hợp giữa hai phương pháp trong tình huống thứ hai.

3.2.4 Xử lý truy vấn chuỗi [7]

Nhưđã đề cập ở chương 2, trên thực tế có một lớp truy vấn quan trọng gọi là truy vấn chuỗi (chain query) và thuật toán đa thức xử lý bài toán này. Các truy vấn chuỗi thường có dạng: n n A n n A A A A R R R R R1 >< 1 2 >< 2 3>< 3 ...>< −2 −1 >< −1

Trong đó hai quan hệ không kề nhau (nonadjacent relations) thì không có thuộc tính nối chung, tức là AiAj với ij. Để tránh sử dụng tích Descartes, thì vị trí của mỗi quan hệ được cốđịnh, không thay đổi trong suốt quá trình tối ưu truy vấn chuỗi. Thí dụ trong tình huống phép nối có 3 quan hệ R1><A1 R2><A2 R3, thì các

thứ tự nối có thể như sau: nối R1 với R2 trước sau đó mới thực hiện nối với R3: 3 2 2 1 1 ) (R ><A R ><A R , dấu ngoặc đơn biểu thị thứ tự nối, hoặc ta có thể thực hiện nối 2

R với R3 trước sau đó mới nối với R1: R1><A1 (R2 ><A2 R3). Bài toán đặt ra ở đây là cần xác định rằng với thứ tự nối nào thì truy vấn có chi phí nhỏ nhất.

Nếu như các quan hệ không phân mảnh , thì bằng cách sử dụng qui hoạch động chi phí (là tổng các chi phí truyền) của truy vấn chuỗi sẽđược tối ưu. Nếu các quan hệ được phân mảnh thì thời gian đáp ứng (là tổng thời gian xử lý cục bộ và thời gian truyền) vẫn có thểđược tối thiểu với kết quả gần tối ưu.

Đầu tiên với truy vấn chuỗi cho trước, ta cần xác định chi phí nối nhỏ nhất giữa 2 quan hệ kề nhau RiRi+1, gọi là costi,i+1, 1≤in−1. Phép nối giữa 2 quan hệ có thểđược thực hiện bằng nhiều phương pháp (nối sử dụng thông tin phụ thuộc vị trí, sử dụng qui hoạch băm, sử dụng phương pháp nhân bản- và-thay thế… ). Căn cứ vào phương pháp nối cũng như khía cạnh vật lý của dữ liệu (như lưu trữ, chỉ mục…) chi phí nhỏ nhất của phép nối giữa 2 quan hệ có thể thu dược thông qua việc chọn chiến lươc thực thi có chi phí tổng thể (ước lượng) là tối thiểu. Gọi Ri,i+1

là kết quả phép nối giữa RiRi+1, ta có chi phí nhỏ nhất của thao tác nối 3 quan hệ Ri, Ri+1 và Ri+2 có thể là chi phí cho kết nối giữa Ri,i+1 và Ri+2 hoặc chi phí giữa

i

2 , 1

costi+ i+ , và ta có chi phí nhỏ nhất để thực hiện nối 3 quan hệ là chi phí thực hiện nhỏ nhất cho phép nối 2 quan hệ cộng thêm các chi phí nối bổ sung nào đó. Quá trình này được lặp lại với các tập 4, 5, … quan hệ liền kề, cho đến khi thu được chi phí nhỏ nhất cho chuỗi nối n quan hệ. Quá trình trên được mô tả như sau:

Gọi costi,j, i< j là chi phí nhỏ nhất để thực hiện nối các quan hệ liền kề

j i

i R R

R, +1,..., , và Ri,j là kết quả của dãy nối đó. Nó có thể thu được bởi phép nối giữa RiRi+1,j, hoặc giữa Ri,i+1 với Ri+2,j, hoặc …, hoặc Ri,j−1 với Rj. Khi chi phí để thu được Ri+1,j là costi+1,j, ta sẽ có chi phí để có được Ri,j

j i t 1,

cos + + joinc(Ri,Ri+1,j), với joinc() là chi phí nhỏ nhất để nối hai quan hệ. Ta có: )} , ( cos {cos min costi,j = ik<j ti,k + tk+1,j + joinc Ri,k Rk+1,j (***)

Trong đó 0costk,k = , Rk,k = Rk. Mục tiêu của việc thực hiện tối ưu hóa truy vấn chuỗi là tìm phương án thực thi để có được R1,n với chi phí cost1,n nhỏ nhất. Giá trị của biểu thức (***) là chưa xác định khi truy vấn chưa thực thi, nên nó cần phải được dự đoán trong quá trình tối ưu hóa. Có nhiều yếu tố ảnh hưởng đến chi phí nối, một trong sốđó là kích thước của quan hệ trung gian, và nó cũng cần phải được dự đoán. Một thuật toán từ dưới – lên được xây dựng dựa trên biểu thức (***), trong đó khi j-i = s, thì chi phí nhỏ nhất để nối tất cả(s+1) quan hệđược tính toán.

Tối ưu hóa – chuỗi – truy vấn

Tính toán cost1,n

Forj-i=1ton-1do

{tính costi,j dựa trên biểu thức (***);

Gọi K(i,j) là giá trị của k sao cho vế phải của biểu thức (***) là nhỏ- nhất, nghĩa là

costi,j =costi,K(i,j)+costK(i,j)+1,j + joinc(Ri,K(i,j),RK(i,j)+1,j); }

Đưa ra phương án thực thi. Phương án thực thi tối ưu có thểđược sinh ra bởi việc

tương ứng với thao tác nối cuối cùng là R1,K(1,n)><AK(i,j) RK(i,j)+1,n. Chi phí nhỏ nhất để có được R1,K(1,n) là cost1,K(1,n). Thêm nữa ta cũng có K(1,K(1,n)), mà với nó thao tác nối cuối cùng tương ứng cho ra quan hệ R1,K(1,n) có thể thu được. Tương tự như vậy thao tác nối cuối cùng tương ứng cho ra kết quả là quan hệ RK(1,n)+1,n cũng có thể thu được. Bằng việc lặp lại các thao tác này thứ tự thực hiện giữa n-1 nối được xác định. n t1, cos 1 , 1 cost n− cost2,n 3 , 1

cost cost2,4 costn−2,n

2 , 1

cost cost2,3 cost3,4 costn−1,n

1 , 1

cost cost2,2 cost3,3 cost4,4 costn,n

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 110 - 114)

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

(127 trang)