Bài giảng cơ sở dữ liệu - Bài 4: Tối ưu truy vấn trên hệ cơ sở dữ liệu phân tán - Đỗ Phúc
Begin
SJ ← most_benefit(BS)
BS ← BS – SJ
ES ← ES + SJ
sửa lại số liệu thống kê để phản ánh tác dụng của việc gắn SJ
BS ← BS – các nối nửa không lợi ích
BS ← BS ∪ các nối nửa lợi ích mới
End While;
AS(ES) ← chọn vị trí i sao cho i có chứa dữ liệu lớn nhất
sau khi thực hiện tất cả mọi thao tác cục bộ
ES ← ES ∪ truyền các quan hệ trung gian đến AS(ES)
For mỗi quan hệ Ri tại AS(ES) do
For mỗi nối nửa SJ của R
i với Rj do
If cost(ES) > cost(ES – SJ) then ES ← ES – SJ
End If
End For
End For
End
49 trang |
Chia sẻ: huongthu9 | Lượt xem: 568 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Bài giảng cơ sở dữ liệu - Bài 4: Tối ưu truy vấn trên hệ cơ sở dữ liệu phân tán - Đỗ Phúc, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Bài 4:
TỐI ƯU TRUY VẤN
TRÊN HỆ CƠ SỞ DỮ LIỆU PHÂN TÁN
Khoa Hệ thống thông tin
Trường Đại học Công nghệ thông tin, ĐHQG-HCM
2NỘI DUNG
MỞ ĐẦU
I. TỔNG QUAN VỀ XỬ LÝ TRUY VẤN PHÂN TÁN
1. Bài toán xử lý truy vấn phân tán
2. Mục tiêu của tối ưu truy vấn phân tán
3. Độ phức tạp của các phép toán đại số quan hệ
4. Các vấn đề của tối ưu truy vấn phân tán
5. Các tầng xử lý truy vấn phân tán
II. XỬ LÝ TRUY VẤN PHÂN TÁN
1. Phân rã truy vấn
2. Cục bộ hoá dữ liệu phân tánIII.
III.TỐI ƯU TRUY VẤN PHÂN TÁN
1. Tối ưu hoá truy vấn
2. Các thuật toán tối ưu hoá truy vấn phân tán
KẾT LUẬN
3MỞ ĐẦU
• Vấn đề tối ưu hoá trên hệ CSDL phân tán là rất quan trọng do tính
phân mảnh, nhân bản, tốn kém chi phí cho việc truyền dữ liệu.
• Thuật toán tối ưu truy vấn phân tán cổ điển là vét cạn và leo đồi:
– Thuật toán vét cạn không phù hợp với sự bùng nổ dữ liệu.
– Thuật toán leo đồi chỉ tìm kiếm được tối ưu cục bộ.
• Để khắc phục, các giải thuật tìm kiếm ngẫu nhiên và Heuristic được
đề xuất có thể tìm ra các giải pháp gần tối ưu chấp nhận được.
4I. TỔNG QUAN VỀ XỬ LÝ TRUY VẤN PHÂN TÁN
Xét một CSDL mẫu mô hình hoá cho một công ty máy tính.
Các thuộc tính của CSDL bao gồm:
ENO: mã số nhân viên
ENAME: tên nhân viên
TITLE: chức vụ trong công ty
SALE: mức lương
RESP: nhiệm vụ trong dự án
DUR: thời gian được phân công trong dự án
PNO: mã số dự án
PNAME: tên dự án
BUDGET: ngân sách dự án
BÀI TOÁN XỬ LÝ TRUY VẤN PHÂN TÁN
5CÁC QUAN HỆ ĐÃ CHUẨN HOÁ
EMP ASG
ENO ENAME TITLE ENO PNO RESP DUR
E1
E2
E3
E4
E5
E6
E7
E8
J. Doe
M. Smith
A. Lee
J. Miller
B. Casey
L. Chu
R. David
J. Jones
Elect. Eng.
Syst. Anal.
Mech. Eng.
Programmer
Syst. Anal.
Elect. Eng.
Mech. Eng.
Syst. Anal.
E1
E2
E2
E3
E3
E4
E5
E6
E7
E8
P1
P1
P2
P3
P4
P2
P2
P4
P3
P3
Manager
Analyst
Analyst
Consultant
Engineer
Programmer
Manager
Manager
Engineer
Manager
12
24
6
10
48
18
24
48
36
40
PROJ PAY
PNO PNAME BUDGET TITLE SAL
P1
P2
P3
P4
Instrumentation
Database Develop
CAD/CAM
Maintenance
150000
135000
250000
310000
Elect. Eng.
Syst. Anal.
Mech. Eng.
Programmer
40000
34000
27000
24000
6CHỌN LỰA CHIẾN LƯỢC
SELECT ENAME
FROM EMP, ASG
WHERE EMP.ENO = ASG.ENO
AND DUR > 37
Chiến lược 1
πENAME(σDUR>37 ∧ EMP.ENO=ASG.ENO(EMP x ASG))
Chiến lược 2
πENAME(EMP ENO (σDUR>37 (ASG)))
Chiến lược 2 tránh được việc sử dụng tích Descartes nên “tốt hơn”
7CÁC CHIẾN LƯỢC THỰC THI TRUY VẤN TƯƠNG ĐƯƠNG
Site 1 Site 2 Site 3 Site 4 Site 5
EMP1=σENO≤“E3”(EMP) EMP2=σENO>“E3”(EMP)ASG2=σENO>“E3”(ASG)ASG1=σENO≤“E3”(ASG) Result
Site 4
result1 = EMP1’∪EMP2’
Site 3
Site 1 Site 2
EMP2’=EMP2 ENOASG2’EMP1’=EMP1 ENOASG1’
ASG1’=σDUR>37(ASG1) ASG2’=σDUR>37(ASG2)
Site 5
ASG2’ASG1’
EMP1’ EMP2’
Chiến lược 2a
Site 5
Site 1 Site 2 Site 3 Site 4
ASG1 EMP1 EMP2ASG2
result2=(EMP1∪EMP2) ENOσDUR>37(ASG1∪ASG2)
Chiến lược 2b
8CHI PHÍ CỦA CÁC CHIẾN LƯỢC
Giả sử
• size(EMP) = 400, size(ASG) = 1000
• Chi phí truy xuất 1 bộ TA = 1; Chi phí truyền 1 bộ TT = 10
Chiến lược 2a
1. Tạo ASG’ bằng cách chọn trên ASG: (10 + 10) * TA = 20
2. Truyền ASG’ đến các vị trí (site) của EMP: (10 + 10) * TT = 200
3. Tạo EMP’ bằng cách nối ASG’ và EMP’: (10 + 10) * TA * 2 = 40
4. Truyền EMP’ đến vị trí (site) nhận kết quả: (10 + 10) * TT = 200
Tổng chi phí 460
Chiến lược 2b
1. Truyền EMP đến vị trí (site) 5: 400 * TT = 4,000
2. Truyền ASG đến vị trí (site) 5: 1000 * TT = 10,000
3. Tạo ASG’ bằng cách chọn trên ASG: 1000 * TA = 1,000
4. Nối EMP và ASG’: 400 * 20 * TA = 8,000
Tổng chi phí 23,000
9MỤC TIÊU CỦA TỐI ƯU TRUY VẤN
• Cực tiểu hàm chi phí truy vấn
Chi phí I/O + chi phí CPU + chi phí truyền thông
Có những khác biệt về trọng số trong những môi trường phân tán khác
nhau.
• Mạng diện rộng
- Chi phí truyền thông có ảnh hưởng lớn
Dải thông thấp
Tốc độ thấp
- Hầu hết các giải thuật đều bỏ qua các thành phần chi phí khác
trong quá trình xử lý cục bộ
• Mạng cục bộ
- Chi phí truyền thông không có ảnh hưởng lớn
- Hàm chi phí tổng cộng cần phải được xem xét
10
ĐỘ PHỨC TẠP CỦA CÁC PHÉP TOÁN QUAN HỆ
Giả sử số quan hệ của lực lượng là n
Phép toán Độ phức tạp
Chọn
Chiếu (không loại bỏ trùng lặp)
O(n)
Chiếu (có loại bỏ trùng lặp)
Gộp nhóm
O(n*logn)
Nối
Nối nửa
Chia
Các phép toán tập hợp
O(n*logn)
Tích Descartes O(n2)
11
CÁC KIỂU TỐI ƯU
• Giải thuật tìm kiếm vét cạn
- Dựa trên chi phí
- Tối ưu
- Tổ hợp phức tạp trong một số quan hệ
• Giải thuật Heuristics
- Không tối ưu
- Nhóm lại các biểu thức con chung
- Thực hiện các phép chọn và chiếu trước
- Thay thế các nối bằng một tổ hợp các nối nửa
- Sắp xếp lại thứ tự thực hiện các phép toán để giảm các quan
hệ trung gian
- Tối ưu các phép toán riêng lẻ
12
THỜI ĐIỂM TỐI ƯU
• Tĩnh
- Biên dịch→ tối ưu hoá trước khi thực hiện truy vấn
- Khó khăn trong việc ước lượng kích thước của các kết quả trung gian
→ lỗi truyền
- Có thể truyền lại cho nhiều thực thi khác
- R*
• Động
- Tối ưu hoá trong khi thực hiện truy vấn
- Thông tin chính xác về kích thước của các quan hệ trung gian
- Phải tối ưu lại với các thực thi bội nên tốn nhiều chi phí
- INGRES
• Lai (hỗn hợp)
- Biên dịch sử dụng một giải thuật tĩnh
- Nếu xảy ra lỗi do việc ước lượng kích thước > ngưỡng, phải tối ưu
hoá lại lúc chạy chương trình
13
VỊ TRÍ QUYẾT ĐỊNH
• Tập trung
- Chỉ một vị trí xác định chiến lược tốt nhất
- Đơn giản
- Cần tri thức về CSDL phân tán toàn vẹn
• Phân tán
- Nhiều vị trí tham gia vào quá trình chọn ra chiến lược tốt nhất
- Chỉ cần thông tin về vị trí
• Lai (Hỗn hợp)
- Một ví trí xác định các quyết định chính
- Các vị trí khác đưa ra chọn lựa cục bộ
- System R*
14
CẤU HÌNH MẠNG
• Mạng diện rộng (WAN)
- Đặc điểm
Dải thông thấp
Tốc độ thấp
- Chi phí truyền thông chiếm ưu thế, có thể bỏ qua các nhân tố chi phí khác
- Sắp xếp toàn thể để tối ưu hoá chi phí truyền thông
- Sắp xếp cục bộ kéo theo tối ưu truy vấn tập trung
• Mạng cục bộ (LAN)
- Chi phí truyền thông không đáng kể
- Hàm tổng chi phí phải được xem xét
15
CÁC TẦNG XỬ LÝ TRUY VẤN PHÂN TÁN
Truy vấn dạng phép tính trên các
quan hệ phân tán
Vị trí
điều khiển
Các vị trí
cục bộ
Phân rã truy vấnPhân rã truy vấn
Cục bộ hoá dữ liệuCục bộ hoá dữ liệu
Truy vấn dạng đại số
trên các quan hệ phân tán
Tối ưu hoá toàn cụcTối ưu hoá toàn cục
Truy vấn theo mảnh
Tối ưu hoá cục bộTối ưu hoá cục bộ
Truy vấn theo mảnh đã tối ưu
cùng với các phép toán truyền
Các truy vấn cục bộ đã tối ưu
Lược đồ
toàn cục
Lược đồ
toàn cục
Lược đồ
mảnh
Lược đồ
mảnh
Số liệu trên
các mảnh
Số liệu trên
các mảnh
Lược đồ
cục bộ
Lược đồ
cục bộ
16
II. XỬ LÝ TRUY VẤN PHÂN TÁN
1. PHÂN RÃ TRUY VẤN
• Chuẩn hoá
- Biến đổi câu truy vấn thành dạng chuẩn để xử lý tiếp
• Phân tích
- Tìm và loại bỏ các truy vấn không đúng hoặc không cần thiết
- Có thể chỉ có một tập con của quan hệ toán
• Loại bỏ dư thừa
- Loại các vị từ thừa
• Viết lại câu truy vấn
- Truy vấn phép toán quan hệ truy vấn đại số quan hệ
- Cấu trúc lại câu truy vấn đại số
- Sử dụng các quy tắc biến đổi
17
CHUẨN HOÁ DỮ LIỆU
• Phân tích cú pháp và từ vựng
- Kiểm tra tính hợp lệ (tương tự bộ biên dịch)
- Kiểm tra các thuộc tính và quan hệ
• Đưa vào dạng chuẩn
- Dạng chuẩn hội
(p11 ∨ p12 ∨∨ p1n) ∧∧ (pm1 ∨ pm2 ∨ ∨ pmn)
- Dạng chuẩn tuyển
(p11 ∧ p12 ∧∧ p1n) ∨∨ (pm1 ∧ pm2 ∧∧ pmn)
- OR (∨) được ánh xạ vào phép hội
- AND (∧) được ánh xạ vào phép nối và chọn
18
PHÂN TÍCH
• Loại bỏ những câu truy vấn sai
• Sai kiểu
- Nếu có bất kỳ thuộc tính hoặc tên quan hệ trong câu truy vấn
chưa được khai báo trong lược đồ toàn cục.
- Nếu các phép toán áp dụng cho các thuộc tính có kiểu không
thích hợp
• Sai nghĩa
- Các thành phần của nó không tham gia vào việc tạo ra kết quả
- Các câu truy vấn không chứa các tuyển và phủ định
- Để tìm kiếm câu truy vấn sai, sử dụng:
Đồ thị truy vấn
Đồ thị kết nối
19
PHÂN TÍCH – VÍ DỤ
SELECT ENAME,RESP
FROM EMP, ASG, PROJ
WHERE EMP.ENO = ASG.ENO
AND ASG.PNO = PROJ.PNO
AND PNAME = "CAD/CAM"
AND DUR ≥ 36
AND TITLE = "Programmer"
Đồ thị truy vấn Đồ thị kết nối
DUR≥36
PNAME=“CAD/CAM”
ENAME
EMP.ENO=ASG.ENO ASG.PNO=PROJ.PNO
RESULT
TITLE =
“Programmer” RESP
ASG.PNO=PROJ.PNOEMP.ENO=ASG.ENO
ASG
PROJEMP EMP PROJ
ASG
20
PHÂN TÍCH
Nếu đồ thị truy vấn không liên thông, truy vấn bị sai.
SELECT ENAME,RESP
FROM EMP, ASG, PROJ
WHERE EMP.ENO = ASG.ENO
AND PNAME = "CAD/CAM"
AND DUR ≥ 36
AND TITLE = "Programmer"
PNAME=“CAD/CAM”
ENAME RESULT
RESP
ASG
PROJEMP
DUR≥36
EMP.ENO=ASG.ENO ASG.PNO=PROJ.PNO
TITLE =
“Programmer”
21
LOẠI BỎ DƯ THỪA – VÍ DỤ
SELECT TITLE
FROM EMP
WHERE EMP.ENAME = “J. Doe”
OR (NOT(EMP.TITLE = “Programmer”)
AND (EMP.TITLE = “Programmer”
OR EMP.TITLE = “Elect. Eng.”)
AND NOT(EMP.TITLE = “Elect. Eng.”))
Ø
SELECT TITLE
FROM EMP
WHERE EMP.ENAME = “J. Doe”
22
VIẾT LẠI CÂU TRUY VẤN
• Biến đổi câu truy vấn từ phép tính quan hệ
thành đại số quan hệ
• Tạo cây truy vấn
• Ví dụ
“Tìm tên các nhân viên trừ J. Doe đã làm cho dự
án CAD/CAM trong một hoặc hai năm”
SELECT ENAME
FROM EMP, ASG, PROJ
WHERE EMP.ENO = ASG.ENO
AND ASG.PNO = PROJ.PNO
AND ENAME ≠ “J. Doe”
AND PNAME = “CAD/CAM”
AND (DUR = 12 OR DUR = 24)
ΠENAME
σDUR=12 OR DUR=24
σPNAME=“CAD/CAM”
σENAME≠“J. DOE”
PROJ ASG EMP
Project
Select
Join
PNO
ENO
23
VIẾT LẠI CÂU TRUY VẤN
ΠENAME
σPNAME=“CAD/CAM” ∧ (DUR=12 ∨ DUR=24) ∧ ENAME ≠ “J. DOE”
×
PROJASG EMP
PNO ∧ ENO
EMP
ΠENAME
σENAME ≠ "J. Doe"
ASGPROJ
ΠPNO,ENAME
σPNAME = "CAD/CAM"
ΠPNO
σDUR =12 ∧ DUR=24
ΠPNO,ENO
ΠPNO,ENAME
PNO
ENO
Cây toán tử đã được viết lại Cây toán tử tương đương
24
CỤC BỘ HOÁ DỮ LIỆU PHÂN TÁN
Giả sử
– EMP được tách thành ba mảnh ngang
EMP1, EMP2, EMP3 như sau:
• EMP1= σ ENO≤“E3”(EMP)
• EMP2= σ“E3”<ENO≤“E6”(EMP)
• EMP3= σ ENO≥“E6”(EMP)
– ASG được tách thành hai mảnh ngang
ASG1 and ASG2 như sau:
• ASG1= σ ENO≤“E3”(ASG)
• ASG2= σ ENO>“E3”(ASG)
Thay thế
EMP bằng (EMP1 ∪ EMP2 ∪ EMP3 ) và
ASG bằng (ASG1 ∪ ASG2) trong câu truy vấn
ΠENAME
σDUR=12 OR DUR=24
σPNAME=“CAD/CAM”
σENAME≠“J. DOE”
PROJ ∪ ∪
EMP1 EMP2 EMP3 ASG1 ASG2
PNO
ENO
25
RÚT GỌN CHO PHÂN MẢNH NGANG
Rút gọn với phép chọn
Cho quan hệ R và FR = {R1, R2, , Rw} trong đó Rj= σpj(R)
σpi(Rj)= φ nếu ∀x thuộc R: ¬(pi(x) ∧ pj(x))
Ví dụ:
SELECT *
FROM EMP
WHERE ENO=“E5”
σ ENO=“E5”
∪
EMP1 EMP2 EMP3 EMP2
σ ENO=“E5”
26
RÚT GỌN CHO PHÂN MẢNH NGANG
Rút gọn với nối
Ví dụ: Giả sử EMP được phân mảnh thành
ASG1: σ ENO ≤ "E3"(ASG); ASG2: σ ENO > "E3"(ASG)
Xem câu truy vấn
SELECT *
FROM EMP, ASG
WHERE EMP.ENO=ASG.ENO
∪ ∪
EMP1 EMP2 EMP3 ASG1 ASG2
ENO
Truy vấn gốc
27
RÚT GỌN CHO PHÂN MẢNH NGANG
– Phân phối nối trên hợp
– Áp dụng quy tắc rút gọn
∪
EMP1 ASG1 EMP2 ASG2 EMP3 ASG2
ENO ENO ENO
Truy vấn đã rút gọn
28
RÚT GỌN CHO PHÂN MẢNH DỌC
Tìm các quan hệ trung gian vô dụng (không rổng)
Quan hệ R được định nghĩa trên các thuộc tính A = {A1, ..., An} và được
phân mảnh dọc thành Ri = ΠA' (R) trong đó A' ⊆ A:
ΠD,K(Ri) là vô dụng nếu tập các thuộc tính chiếu D không trong A'
Ví dụ:
EMP1= ΠENO,ENAME (EMP)
EMP2= ΠENO,TITLE (EMP)
SELECT ENAME
FROM EMP
ΠENAME
EMP1EMP1 EMP2
ΠENAME
⇒ENO
29
RÚT GỌN CHO PHÂN MẢNH DẪN XUẤT
Quy tắc
– Phân phối các nối trên hợp
– Áp dụng việc loại bỏ các nối trên phân mảnh ngang
Ví dụ
ASG1 = ASG ENO EMP1
ASG2 = ASG ENO EMP2
EMP1 = σ TITLE=“Programmer” (EMP)
EMP2 = σ TITLE=“Programmer” (EMP)
Truy vấn
SELECT *
FROM EMP, ASG
WHERE ASG.ENO = EMP.ENO
AND EMP.TITLE = “Mech. Eng.”
30
RÚT GỌN CHO PHÂN MẢNH DẪN XUẤT
Truy vấn gốc
Phép chọn trước
∪ ∪
ASG1
σ TITLE=“Mech. Eng.”
ASG2 EMP1 EMP2
∪
ASG1 ASG2 EMP2
σ TITLE=“Mech. Eng.”
ENO
ENO
31
RÚT GỌN CHO PHÂN MẢNH DẪN XUẤT
Nối trên các hợp ∪
ASG1 EMP2
Loại bỏ các quan hệ trung gian rỗng
(loại bỏ cây con trái)
EMP2
σ TITLE=“Mech. Eng.”
ASG2
σ TITLE=“Mech. Eng.”
ASG2 EMP2
σ TITLE=“Mech. Eng.”
ENO
ENO ENO
32
RÚT GỌN CHO PHÂN MẢNH HỖN HỢP
Kết hợp các quy tắc đã có:
• Loại bỏ các quan hệ rỗng được tạo ra bởi các phép
chọn mâu thuẫn trên các mảnh ngang;
• Loại bỏ các quan hệ vô dụng được tạo ra từ các
phép chiếu trên các mảnh dọc;
• Phân phối các nối cho các hợp nhằm cô lập và loại
bỏ các nối vô dụng.
33
RÚT GỌN CHO PHÂN MẢNH HỖN HỢP
Ví dụ
– Giả sử có phân mảnh hỗn hợp sau:
EMP1= σ ENO≤"E4" (ΠENO,ENAME (EMP))
EMP2= σ ENO>"E4" (ΠENO,ENAME (EMP))
EMP3= ΠENO,TITLE (EMP)
– Và câu truy vấn
SELECT ENAME
FROM EMP
WHERE ENO=“E5”
EMP2
σ ENO=“E5”
ΠENAME
Ä
EMP1 EMP2
∪
EMP3
σ ENO=“E5”
ΠENAME
ENO
34
III. TỐI ƯU TRUY VẤN PHÂN TÁN
Input: Truy vấn phân mảnh
Tìm kế hoạch tổng quát tốt nhất (không nhất thiết phải tối ưu)
– Cực tiểu hoá hàm chi phí
– Xử lý các nối phân tán, sử dụng nối nửa.
– Phương pháp nối: Lặp lồng và thứ tự nối (nối trộn và nối băm)
Không gian tìm kiếm
– Tập của các biểu thức đại số tương đương (các cây truy vấn).
Hàm chi phí (trong quan hệ thời gian)
– Chi phí I/O + chi phí CPU + chi phí truyền
Thuật toán tìm kiếm
– Di chuyển bên trong không gian tìm kiếm
– Các thuật giải heuristic (lặp cải tiến, mô phỏng luyện thép, di truyền,)
35
TỐI ƯU HOÁ TRUY VẤN
Tạo ra không
gian tìm kiếm
Search
Strategy
QEP tương đương
Câu truy vấn
Quy tắc biến đổi
Mô hình chi phí
QEP tốt nhất
36
KHÔNG GIAN TÌM KIẾM
PROJ
ASGEMP
Không gian tìm kiếm đặc trưng bởi việc chọn
lựa hoạch định thực thi
Trọng tâm trên cây nối
Với N quan hệ, có O(N!) cây nối tương đương
có thể thu được bằng cách áp dụng các quy
tắc giao hoán và kết hợp
SELECT ENAME,RESP
FROM EMP, ASG, PROJ
WHERE EMP.ENO=ASG.ENO
AND ASG.PNO=PROJ.PNO
PROJ ASG
EMP
PROJ
ASG
EMP
×
ENO
ENO
PNO
PNO
ENO,PNO
37
CHIẾN LƯỢC TÌM KIẾM
Cách di chuyển trong không gian tìm kiếm
Đơn định
– Bắt đầu từ các quan hệ cơ sở và xây dựng các hoạch định bằng cách
thêm vào một quan hệ ở mỗi bước
– Quy hoạch động: theo chiều ngang
– Thuật toán thiển cận: theo chiều sâu
Ngẫu nhiên
– Tìm kiếm lời giải tối ưu xung quanh một số điểm đặc biệt
– Đánh đổi thời gian tối ưu với thời gian thực thi
– Tốt nhất khi số quan hệ lớn hơn 5-6
– Mô phỏng luyện thép (Simulated Annealing)
– Lặp cải tiến (Iterative improvement)
38
CHIẾN LƯỢC TÌM KIẾM
Đơn định
Ngẫu nhiên
R2R1
R3
R3R1
R2
R2R1
R3
R4
R2R1 R2R1
R3
39
MÔ HÌNH CHI PHÍ PHÂN TÁN
• Tổng thời gian (hay Tổng chi phí): Tổng các thành phần chi phí
• Thời gian đáp ứng: Thời gian tính từ khi khởi hoạt cho đến khi hoàn thành
câu truy vấn
• Mạng diện rộng WAN
– Khởi tạo và truyền thông điệp với chi phí cao
– Xử lý cục bộ có chi phí thấp (với mainframes hoặc minicomputers)
– Tỷ lệ truyền và thời gian xuất nhập có chi phí = 20:1
• Mạng cục bộ LAN
– Phải xét cả chi phí cục bộ lẫn chi phí truyền
– Tỷ lệ = 1:1.6
40
CÁC THUẬT TOÁN TỐI ƯU TRUY VẤN PHÂN TÁN
Ba thuật toán cơ bản đại diện cho nhiều lớp thuật toán khác nhau là:
• Ingres phân tán
• System R*
• SDD-1
• Ingres dùng thời điểm tối ưu hoá động còn các hệ kia dùng thời điểm tĩnh.
• Hàm chi phí của SDD-1 và R* là hạ thấp tối đa tổng thời gian, còn Ingres
phân tán là giảm tổ hợp thời gian đáp ứng và tổng thời gian.
• Cấu hình mạng được giả thiết là mạng diện rộng điểm - điểm theo SDD-1.
Các thuật toán Ingres và R* có thể thực thi trên cả mạng LAN và WAN.
• SDD-1 sử dụng nối nửa như một kỹ thuật tối ưu hoá.
• Ingres có thể xử lý các mảnh.
41
THUẬT TOÁN INGRES PHÂN TÁN
Nguyên liệu: MRQ (Multi Relation Query, truy vấn đa quan hệ)
Thành phẩm: kết quả cuối cùng của truy vấn đa quan hệ
Begin
{thực hiện mọi truy vấn một quan hệ}
For mỗi ORQi khả tách trong MRQ do
Run(ORQi)
End For
{thay MRQ bằng một danh sách có n truy vấn đã tối giản (bất khả tách)}
MRQ’_list← REDUCE(MRQ)
42
THUẬT TOÁN INGRES PHÂN TÁN (tt)
While n 0 do
Begin
{chọn một truy vấn bất khả tách có chứa các mảnh nhỏ nhất}
MRQ’← SELECT_QUERY(MRQ’_list)
{xác định các mảnh cần truyền và vị trí xử lý cho MRQ’}
Fragment_site_list ← SELECT_STRATEGY(MRQ’)
For mỗi cặp (F, S) trong Fragment_site_list do
di_chuyển_mảnh_F_đến_vị_trí_S
End For
run(MRQ’)
dec(n)
End While {MRQ’ cuối cùng là thành phẩm}
End.
43
THUẬT TOÁN SYSTEM R*
Nguyên liệu: QT (Query Tree, cây truy vấn)
Thành phẩm: strat (chiến lược có chi phí nhỏ nhất)
Begin
For mỗi quan hệ Ri ∈ QT do
Begin
For mỗi đường truy xuất Apij đến Ri do
xác định cost(Apij);
End For;
best_Api← Apij có chi phí nhỏ nhất
End;
44
THUẬT TOÁN SYSTEM R* (tt)
For mỗi thứ tự (Ri1, Ri2, , Rin) với i = 1, , n! do
Begin
xây dựng chiến lược (((best_Api1 Ri2) Ri3) Rin)
tính chi phí của chiến lược
End For
strat← chiến lược có chi phí nhỏ nhất
For mỗi vị trí k có lưu quan hệ có mặt trong QT do
Begin
LSk← chiến lược cục bộ (chiến lược, k)
{mỗi chiến lược cục bộ được tối ưu hoá tại vị trí k}
send(LSk, vị trí k)
End For;
End.
45
THUẬT TOÁN SDD-1
Nguyên liệu: QG: đồ thị truy vấn có n quan hệ;
số liệu thống kê cho mỗi quan hệ;
Thành phẩm: ES: chiến lược thực thi truy vấn
Begin
ES← thao tác cục bộ (QG)
sửa lại số liệu thống kê để phản ánh tác dụng của xử lý cục bộ
BS← ∅ {tập các nối nửa lợi ích}
For mỗi nối nửa SJ trong QG do
If cost(SJ) < benefit(SJ) then
BS← BS ∪ SJ
End If
End For
While BS ∅ do {chọn các nối nửa lợi ích}
46
THUẬT TOÁN SDD-1 (tt)
Begin
SJ← most_benefit(BS)
BS← BS – SJ
ES← ES + SJ
sửa lại số liệu thống kê để phản ánh tác dụng của việc gắn SJ
BS← BS – các nối nửa không lợi ích
BS← BS ∪ các nối nửa lợi ích mới
End While;
AS(ES)← chọn vị trí i sao cho i có chứa dữ liệu lớn nhất
sau khi thực hiện tất cả mọi thao tác cục bộ
ES← ES ∪ truyền các quan hệ trung gian đến AS(ES)
For mỗi quan hệ Ri tại AS(ES) do
For mỗi nối nửa SJ của Ri với Rj do
If cost(ES) > cost(ES – SJ) then ES← ES – SJ
End If
End For
End For
End.
47
SO SÁNH CÁC THUẬT TOÁN TỐI ƯU HOÁ
Thuật
toán
Thời
điểm
tối ưu
Hàm
mục tiêu
Hệ số
tối ưu hoá
Topo
mạng
Nối
nửa
Số liệu
thống
kê
Phân
mảnh
Dist.
INGRES
Động Thời gian
đáp ứng
hoặc tổng
chi phí
Kích thước TB,
chi phí xử lý
Tổng quát
hoặc
phát tán
Không 1 Ngang
R* Tĩnh Tổng
chi phí
Lượng TB,
kích thước TB,
IO, CPU
Tổng quát
hoặc cục bộ
Không 1, 2 Không
SDD-1 Tĩnh Tổng
chi phí
Kích thước TB Tổng quát Có 1, 3,
4, 5
Không
1. Lực lượng của quan hệ; 2. Số giá trị duy nhất của mỗi thuộc tính; 3. Hệ số tuyển chọn nối;
4. Kích thước của nối trong mỗi thuộc tính nối; 5. Kích thước thuộc tính và kích thước bộ
48
KẾT LUẬN
• Mục tiêu của việc xử lý truy vấn phân tán là hạ thấp tối đa hàm chi phí
• Nguyên liệu quan trọng của bài toán tối ưu truy vấn là số liệu thống kê CSDL
và các công thức dùng để đánh giá kích thước các kết quả trung gian.
• Phép toán quan trọng nhất trong xử lý truy vấn phân tán là phép toán nối.
• Việc sử dụng thuật toán nào là còn tuỳ theo từng điều kiện cụ thể:
– Với mạng diện rộng WAN, nên sử dụng thuật toán SDD-1.
– Với mạng cục bộ LAN, có thể dùng thuật toán D-Ingres hoặc R* do không
sử dụng các nối nửa, trong đó
D-Ingres tối ưu động thích hợp với phân mảnh ngang
R* tối ưu tĩnh thích hợp với các truy vấn được dùng thường xuyên.
49
TÀI LIỆU THAM KHẢO
[1] Fragkiskos Pentaris;
Distributed Query Optimization by Query Trading; 2006.
[2] Ravindra Guravannavar, Ramanujam H.S.;
Optimizing Nested Queries with Parameter Sort Orders; 2006.
[3] Fabio Porto;
Distributed Query Processing; 2005.
[4] Farnoush Banaei-Kashani;
Distributed Databases; 2005.
[5] Yongluan Zou, Beng Chin Ooi;
An Adaptable Distributed Query Processing; 2005.
[6] Đỗ Phúc;
Bài giảng môn học Cơ sở dữ liệu nâng cao; 2004.
[7] Donald Kossmann;
The State of Art in Distributed Query Processing; 2000.
[8] M. Tamer Ozsu, Patrick Valduriez;
Principles of Distributed Database Systems; 1999.
Các file đính kèm theo tài liệu này:
- bai_giang_co_so_du_lieu_bai_4_toi_uu_truy_van_tren_he_co_so.pdf