Rút gọn phân đoạn ngang nguyên thuỷ

Một phần của tài liệu luận văn thạc sĩ tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán (1) (Trang 47 - 101)

5. Các kết quả dự kiến đạt đƣợc

3.2.1 Rút gọn phân đoạn ngang nguyên thuỷ

Phân đoạn ngang tách một quan hệ dựa trên các tân từ chọn

Ví dụ 3.7: Quan hệ KYSU(SHKS, TENKS, NGHE) được tách thành 3 phân đoạn ngang KYSU1, KYSU2, KYSU3 như sau:

KYSU1= SHKS ≤ “E3”(KYSU) KYSU2= ”E3”<SHKS ≤ “E6”(KYSU) KYSU3= SHKS > “E6”(KYSU)

Chương trình định vị cho một quan hệ đã được phân đoạn ngang là hợp của các đoạn: KYSU = KYSU1 KYSU2 KYSU3

Như vậy, dạng ban đầu của bất kỳ câu truy vấn nào xác định trên KYSU là có được bằng cách thay thế nó bởi (KYSU1 KYSU2 KYSU3 ).

Việc rút gọn các câu truy vấn trên các quan hệ đã được phân đoạn ngang bao gồm việc xác định, sau khi đã cấu trúc lại các cây con, các cây con đó sẽ sinh ra các quan hệ rỗng và loại bỏ chúng. Phân đoạn ngang có thể được khai thác để làm đơn giản cả hai phép chọn và kết nối.

Rút gọn với phép chọn: R được phân đoạn ngang thành R1, R2, …,Rw‟: Rj=pj(R)

Luật 1:

pj(Rj) =nếu x € R:(pi(x) pj(x))

Trong đó pi, pj: tân từ chọn, x: bộ dữ liệu, p(x): tân từ p đúng với x Ví dụ 3.8:

SELECT * FROM KYSU WHERE SHKS=”E5”

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Câu truy vấn ban đầu tương ứng với hình 3.6a, bằng cách giao hoán phép chọn với phép hợp để tìm ra các quan hệ rỗng, ta được câu truy vấn rút gọn hình 3.6b

(a)Câu truy vấn ban đầu (b) Câu truy vấn rút gọn

Hình 3.6: Rút gọn cho phân đoạn ngang với phép chọn

Rút gọn với phép kết nối:

Các phép kết nối trên các quan hệ đã được phân đoạn ngang có thể đơn giản khi chúng được phân đoạn theo thuộc tính kết nối. Sự đơn giản bao gồm việc phân phối các phép kết nối trên các phép hợp và loại bỏ các phép kết nối vô ích. Sự phân phối của phép kết nối trên phép hợp có thể bắt đầu như sau:

(R1 R2) ⊲⊳ R3 = (R1 ⊲⊳ R3) (R2 ⊲⊳ R3) trong đó Ri là các phân đoạn

Với biến đổi này, có thể xác định được các phép kết nối vô ích của các đoạn khi các điều kiện kết nối mâu thuẫn nhau. áp dụng luật 2 để loại bỏ các phép kết nối vô ích.

Luật 2:

(Ri ⊲⊳ Rj) =nếuxRi ,yRj :(pi(x) pj(y))

Trong đó Ri, Rj được xác định theo các tân từ pi, pj trên cùng thuộc tính Như vậy, việc xác định các phép kết nối vô ích có thể được thực hiện bằng cách chỉ xét các tân từ kết nối. áp dụng luật này cho phép thực hiện phép kết nối hai quan hệ như thực hiện song song các phép kết nối bộ phận của các phân đoạn. Không phải câu truy vấn rút gọn luôn tốt hơn (đơn giản hơn) câu truy vấn ban đầu. Câu truy vấn ban đầu là tốt hơn khi số các phép kết nối bộ phận trong câu

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

truy vấn rút gọn lớn. Trường hợp này xuất hiện khi có ít các tân từ phân đoạn mâu thuẫn nhau. Trường hợp xấu nhất xuất hiện khi mỗi đoạn của một quan hệ phải được kết nối với mỗi đoạn của quan hệ khác. Đây chính là tích Decartes của hai tập các đoạn, mỗi tập tương ứng với một quan hệ. Câu truy vấn rút gọn là tốt hơn khi số các phép kết nối bộ phận là nhỏ. Lợi ích của câu truy vấn rút gọn là các phép kết nối có thể được thực hiện song song, vì vậy tăng thời gian đáp ứng.

Ví dụ 3.9: Quan hệ KYSU được phân đoạn như trên, quan hệ HOSODA được phân đoạn như sau:

HOSODA1 = SHKS ≤ "E3"(HOSODA) HOSODA2 = SHKS > "E3"(HOSODA) Xét câu truy vấn:

SELECT *

FROM KYSU, HOSODA

WHERE KYSU.SHKS=HOSODA.SHKS

Câu truy vấn ban đầu tương ứng với hình 3.7a. Phân phối phép kết nối trên các phép hợp và áp dụng qui tắc 2, ta được câu truy vấn rút gọn hình 3.7b, và ba phép kết nối bộ phận có thể được thực hiện song song.

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn (b) Câu truy vấn rút gọn

Hình 3.7: Rút gọn phân đoạn ngang với phép kết nối 3.2.2 Rút gọn phân đoạn dọc

Phân đoạn dọc tách một quan hệ dựa trên các thuộc tính chiếu. Vì phép toán xây dựng lại đối với phân đoạn dọc là kết nối, nên chương trình định vị một quan hệ đã được phân đoạn dọc là kết nối của các đoạn trên thuộc tính chung. Ví dụ 3.10: KYSU được phân đoạn dọc thành KYSU1, KYSU2 như sau:

KYSU1 = SHKS,TENKS(KYSU) KYSU2 = SHKS,NGHE(KYSU)

Chương trình định vị là: KYSU = KYSU1 ⊲⊳SHKS KYSU2

Tương tự phân đoạn ngang, các câu truy vấn trên các phân đoạn dọc có thể được rút gọn bằng cách xác định các quan hệ trung gian vô ích và loại bỏ các cây con chứa chúng. Các phép chiếu trên một phân đoạn dọc không có các thuộc tính chung với các thuộc tính chiếu (ngoại trừ khoá K của quan hệ) là vô ích, mặc dù các quan hệ là khác rỗng.

Luật 3:

D.K(Ri) lµ v« Ých nếu D A’ =

Trong đó: Quan hệ R xác định trên A = {A1, …, An}; Ri =A’(R); A’ A K là khoá của quan hệ; K A; D là tập các thuộc tính chiếu; DA Ví dụ 3.11:

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

FROM KYSU

Câu truy vấn ban đầu tương ứng với hình 3.8a. Bằng cách giao hoán phép chiếu với phép kết nối, suy ra câu truy vấn rút gọn hình 3.8b.

(a) Câu truy vấn ban đầu (b) Câu truy vấn rút gọn

Hình 3.8: Rút gọn đối với việc phân đoạn dọc 3.2.3 Rút gọn phân đoạn gián tiếp

Câu truy vấn trên các phân đoán gián tiếp cũng có thể rút gọn, nếu các tân từ phân đoạn mâu thuẫn nhau thì phép kết nối sẽ đưa ra quan hệ rỗng. Chương trình định vị một quan hệ đã phân đoạn ngang gián tiếp là hợp của các đoạn.

Ví dụ 3.12: Xét quan hệ HOSODA(SHKS, SHDA, TRNH, THOIGIAN) có thể được phân đoạn gián tiếp như sau:

HOSODA1 = HOSODA ⋉SHKS KYSU1 HOSODA2 = HOSODA ⋉SHKS KYSU2

Trong đó quan hệ KYSU được phân đoạn ngang như sau: KYSU1 = NGHE =“Lập trình viên”(KYSU)

KYSU2 = NGHE ạ“Lậptrình viên”(KYSU)

Chương trình định vị cho một quan hệ đã được phân đoạn ngang gián tiếp là hợp của các đoạn: HOSODA = HOSODA1 HOSODA2

Câu truy vấn trên các phân đoạn gián tiếp cũng có thể rút gọn. Phép kết nối sẽ đưa ra quan hệ rỗng nếu các tân từ phân đoạn mâu thuẫn nhau. Ví dụ tân từ của HOSODA1 và KYSU2 mâu thuẫn nhau nên HOSODA1 ⊲⊳ KYSU2 =

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Ví dụ 3.13: Xét câu truy vấn SQL sau: SELECT *

FROM KYSU, HOSODA

WHERE HOSODA.SHKS = KYSU.SHKS AND NGHE = “KS cơ khí”

Câu truy vấn ban đầu trên các đoạn KYSU1, KYSU2, HOSODA1, và HOSODA2 tương ứng hình 3.9a bằng cách đẩy phép chọn xuống các đoạn KYSU1

và KYSU2, được câu truy vấn rút gọn hình 3.9b. Phân phối phép kết nối với phép hợp, được cây hình 3.9c. Cây con bên trái đưa ra một quan hệ rỗng, nên cây rút gọn có được trong hình 3.9d.

(a) Câu truy vấn ban đầu

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn (c) Câu truy vấn sau khi đẩy phép hợp lên

(d) Câu truy vấn rút gọn sau khi loại bỏ cây con bên trái

Hình 3.9: Rút gọn phân đoạn gián tiếp 3.2.4 Rút gọn phân đoạn hỗn hợp

Mục đích của phân đoạn hỗn hợp là hỗ trợ các câu truy vấn liên quan đến phép chiếu, chọn, kết nối một cách hiệu quả. Chương trình định vị cho một quan hệ đã phân đoạn hỗn hợp sử dụng phép hợp và phép kết nối của các đoạn.

Ví dụ 3.14: Quan hệ KYSU được phân đoạn hỗn hợp như sau:

KYSU1 =SHKS ≤”E4” ( SHKS.TENKS(KYSU)) KYSU2 =SHKS >”E4” ( SHKS.TENKS(KYSU)) KYSU3 =SHKS.NGHE(KYSU)

Chương trình định vị là: KYSU = (KYSU1 KYSU2) ⊲⊳SHKS KYSU3

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

hợp quy tắc sử dụng trong phân đoạn ngang nguyên thuỷ, phân đoạn dọc, phân đoạn ngang gián tiếp, tương ứng như sau:

1. Loại bỏ các quan hệ rỗng sinh bởi mâu thuẫn giữa các phép chọn trên các đoạn ngang.

2. Loại bỏ các quan hệ vô ích sinh bởi các phép chiếu trên các phân đoạn dọc

3. Phân phối các phép kết nối với các phép hợp để tách và loại bỏ các phép kết nối vô ích.

Ví dụ 3.15: Áp dụng qui tắc (1), (2) tới phân đoạn ngang dọc của E ở trên: SELECT TENKS

FROM KYSU WHERE SHKS = ”E5”

Câu truy vấn ban đầu tương ứng hình 3.10a được rút gọn thành hình 3.10b

(a) Câu truy vấn ban đầu (b) Câu truy vấn rút gọn

Hình 3.10: Rút gọn phân đoạn hỗn hợp

3.3. Khái quát về xử lý câu truy vấn

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

trên các ngôn ngữ bậc cao rất tốn kém thời gian. Do vậy trước khi thực hiện câu truy vấn cần phải biến đổi để giảm thời gian tính toán, khối lượng truyền thông giữa các trạm. Việc đó gọi là tối ưu hoá câu truy vấn phân tán. Chương này sẽ trình bày khái quát về xử lý câu truy vấn trong hệ quản trị cơ sở dữ liệu phân tán; cụ thể phân tích các vấn đề liên quan trong bốn giai đoạn xử lý câu truy vấn: Phân rã câu truy vấn, định vị dữ liệu, tối ưu hoá tổng thể, tối ưu hoá địa phương.

Vai trò của một bộ xử lý câu truy vấn i phân tán là để ánh xạ một câu truy vấn mức cao (chẳng hạn được biểu diễn bởi phép tính quan hệ) trong cơ sở dữ liệu phân tán (tức là một tập các quan hệ tổng thể) thành một dãy các phép toán cơ sở dữ liệu (của đại số quan hệ) trên các đoạn quan hệ. Một chức năng quan trọng đặc trưng cho ánh xạ này là:

- Câu truy vấn của phép tính trên các quan hệ phân tán phải được phân rã thành một dãy các phép toán quan hệ được gọi là một câu truy vấn đại số.

- Dữ liệu được truy nhập bởi câu truy vấn phải được định vị để các phép toán trên các quan hệ thực hiện biến đổi trên dữ liệu địa phương (các đoạn).

- Câu truy vấn đại số trên các đoạn phải được mở rộng với các phép toán truyền thông và được tối ưu với một hàm chi phí tối thiểu. Hàm chi phí này dựa vào nguồn tài nguyên máy tính như I/Os, CPU, mạng truyền thông.

3.3.1. Vấn đề xử lý truy vấn

Chức năng chính của một bộ xử lý câu truy vấn là biến đổi một câu truy vấn của người sử dụng ở mức cao (chẳng hạn phép tính quan hệ) thành một câu truy vấn tương đương ở mức thấp hơn (một số biến thái của đại số quan hệ có bổ sung phép toán truyền thông). Phép biến đổi phải đúng đắn (cả hai câu truy vấn phải có cùng ngữ nghĩa và cho cùng một kết quả) và hiệu quả. Mỗi cách biến đổi dẫn đến việc sử dụng tài nguyên máy tính khác nhau nên vấn đề đặt ra là lựa chọn phương án dùng tài nguyên ít nhất.

Trong môi trường tập trung, các chiến lược thực thi câu truy vấn có thể biểu diễn tốt trong sự mở rộng của đại số quan hệ. Vai trò chính của bộ xử lý câu truy vấn tập trung là, với một câu truy vấn cho trước, chọn câu truy vấn đại số quan hệ tốt nhất trong số tất cả các câu truy vấn tương đương. Vì vấn đề là rất khó tính toán với một số lượng lớn các quan hệ, nên nói chung là giải pháp gần tối ưu.

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

lược thực thi. Nó phải được bổ sung các phép toán truyền dữ liệu giữa các trạm. Ngoài việc chọn thứ tự các phép toán đại số quan hệ, bộ xử lý câu truy vấn phân tán còn phải chọn các trạm tốt nhất để xử lý dữ liệu.

3.3.2. Các mục tiêu của xử lý câu truy vấn

Mục tiêu của xử lý câu truy vấn trong môi trường phân tán là biến đổi một câu truy vấn bậc cao trên một cơ sở dữ liệu phân tán thành một chiến lược thực thi hiệu quả được biểu diễn trong ngôn ngữ bậc thấp trên các cơ sở dữ liệu địa phương. Một khía cạnh quan trọng của xử lý câu truy vấn là tối ưu hoá câu truy vấn. Vì nhiều chiến lược thực thi là biến đổi đúng đắn cùng một câu truy vấn bậc cao, nên chỉ giữ lại một chiến lược tối ưu theo một nghĩa nào đó (ví dụ sự tiêu thụ tài nguyên).

Độ đo của sự tiêu thụ tài nguyên là tổng chi phí xử lý câu truy vấn (total cost) bằng tổng thời gian xử lý các phép toán của câu truy vấn tại các trạm khác nhau và chi phí truyền thông giữa các trạm. Thời gian trả lời câu truy vấn (response time) là thời gian thực hiện câu truy vấn. Vì các phép toán có thể được thực hiện song song tại các trạm khác nhau, nên thời gian trả lời của một câu truy vấn có thể ít hơn đáng kể tổng chi phí của nó.

Trong một hệ cơ sở dữ liệu phân tán, tổng chi phí được tối thiểu bao gồm CPU, I/O, các chi phí truyền thông. Chi phí CPU được tính khi thực hiện các phép toán trên dữ liệu trong bộ nhớ chính. Chi phí I/O là thời gian cần thiết để trao đổi dữ liệu giữa các trạm tham gia trong sự thực hiện của câu truy vấn (gồm thời gian xử lý thông báo và truyền dữ liệu trên mạng).

Trong hệ quản trị CSDL tập trung quan tâm đến chi phí I/O và CPU, còn trong CSDL phân tán thì chi phí truyền thông được coi trọng nhất. Chi phí truyền thông đắt hơn chi phí xử lý địa phương, nên mục đích của tối ưu hoá truy vấn phân tán nói chung là tối thiểu chi phí truyền thông nhờ các xử lý địa phương.

3.3.3. Các giai đoạn xử lý câu truy vấn

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Hình 3.11: Sơ đồ phân lớp cho việc xử lý truy vấn phân tán

3.4. Tối ƣu hoá các truy vấn phân tán

Ta đã biết, một câu truy vấn trong phép tính quan hệ biểu diễn trên các quan hệ phân tán có thể được ánh xạ thành một câu truy vấn trên các đoạn quan hệ bằng cách phân rã và định vị dữ liệu. ánh xạ này sử dụng lược đồ phân đoạn. Trong xử lý này, việc áp dụng các luật biến đổi cho phép đơn giản hoá câu truy vấn bằng cách tìm các biểu thức con chung và loại bỏ các biểu thức vô ích. Câu truy vấn thu được từ giai đoạn phân rã và định vị dữ liệu có thể được thực thi một cách đơn giản bằng việc thêm vào các thao tác truyền thông. Tuy nhiên, hoán vị thứ tự các phép toán trong câu truy vấn có thể cung cấp nhiều chiến lược tương đương để thực thi chúng. Tìm một thứ tự “tối ưu” của các phép toán cho một câu truy vấn đã cho là chức năng chính của bộ tối ưu hoá câu truy vấn.

Sự lựa chọn thứ tự tối ưu đối với một câu truy vấn là bài toán khó thực hiện nên mục đích thực sự của bộ tối ưu là tìm một chiến lược gần tối ưu. Sau đây ta sẽ gọi chiến lược (hoặc thao tác sắp thứ tự) được đưa ra bởi bộ tối ưu là chiến lược tối ưu (hoặc sắp chiến lược tối ưu). Đầu ra của bộ tối ưu là một lịch trình được tối ưu bao gồm câu truy vấn đại số được xác định trên các trạm.

Sự lựa chọn các chiến lược tối ưu nói chung đòi hỏi dự đoán chi phí thực hiện của các cách sắp thứ tự có thể có trước khi thực hiện câu truy vấn. Chi phí thực hiện là tổ hợp có trọng số của chi phí truyền thông, I/O, CPU. Tuy nhiên để đơn giản ta bỏ qua chi phí xử lý địa phương (I/O, CPU), coi chi phí truyền

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Một phần của tài liệu luận văn thạc sĩ tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán (1) (Trang 47 - 101)

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

(101 trang)