Xử lý câu truy vấn
phân tán
Hồ Bảo Quốc
Khoa Công Nghệ Thông Tin
Đại Học Khoa Học Tự Nhiên
Các bước thực hiện câu truy vấn
Ví dụ : Tại sao cần tối ưu
Cho lược đồ
S(S#,SNAME,STATUS,CITY)
P(P#,PNAME,COLOR,WEIGHT,CITY)
SP(P#,S#,QTY)
Tiến trình tối ưu (tập trung)
Đưa câu truy vấn về dạng biểu diễn
trong
Biến đổi về dạng chuẩn
Chọn cách thực hiện tối ưu
Sinh mã (code) để thực hiện
Chiến lược tối ưu (tập trung)
1. Thực hiện các phép toán một ngôi
trước khi còn có thể
2. Thực hiện các phép toán hai ngôi
Một ví dụ về xử lý truy vấn
Một ví dụ về xử lý truy gấn
Cho lược đồ
EMP(ENO,ENAME,TITLE)
ASG(ENO,PNO,RESP,DUR)
Cho câu truy vấn
Ví dụ (tt.)
Giả sử lược đồ toàn cục trên được phân
mảnh và phân bố trên 4 vị trí như sau :
Và câu truy vấn được phát ra ở trí thứ 5
(site5)
Ví dụ (tt)
Giả sử xét biểu thức
Chiến lược 1 để thực hiện biểu thức
trên là
Ví dụ (tt)
Chiến lược 2 như sau
Chi phí của các giải pháp
Mục tiêu của tối ưu hóa câu hỏi phân
tán
Tối ưu hóa hàm chi phí
Chí phí I/O + chi phí CPU + chi phí truyền
Các chi phí trên có thể được cho trọng số tùy theo môi trường
phân tán
Mạng diện rộng (WAN)
○
Chí phí truyền là quan trọng nhất
Băng thông hẹp
Tốc độ truyền thấp
Nghi thức trao đổi
○
Phần lớn thuật toán bỏ qua các chi phí khác
Mạng cục bộ (LAN)
○
Chi phí truyền không là quan trọng nhất
○
Chi phí phải được tính trên tất cả thành tố
Xử lý truy vấn
Thứ tự thực hiện các phép toán đại số ảnh
hưởng quyết định đến hiệu suất xử lý truy
vấn
Nguyên tắc : Các phép toán chi phí càng cao
thì càng phải được thực hiện trể hơn
Chi phí của các phép toán ĐSQH
Các vấn đề của tối ưu truy vấn
Nhiều vấn đề phải được xem xét trong tối ưu
truy vấn
Loại của bộ tối ưu
○
Quan tâm đến các kỹ thuật tìm kiếm (vét cạn, heuristic)
○
Quan tâm đến thời gian (tĩnh, động)
Thống kê
Các vị trí quyết định
Topo của mạng
Sử dụng phép kết nửa
Tối ưu quan tâm đến các kỹ thuật tìm
kiếm
Tìm kiếm vét cạn
Chi phí cao
Tối ưu
Độ phức tạp tổ hợp trên số quan hệ
Tìm kiếm dựa vào heuristic
Không tối ưu
Gom nhóm các biểu thực con chung
Tiến hành chọn, chiếu trước
Thay phép kết bằng phép kết nửa
Sắp xếp lại thứ tự thực hiện các phép toán để giảm kích thước các
quan hệ trung gian
Tối ưu từng toán tử
Tối ưu quan tâm đến thời gian
Tĩnh
Truy vấn được tối ưu trước khi thực hiện
Hệ quả là khó ước lượng kích thước các quan hệ trung gian
Tối ưu được thừa kế qua các xử lý
Động
Tối ưu được xét trong quá trình thực hiện
Cung cấp 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 cho nhiều xử lý
Tổ hợp/ lai
Trước tiên câu truy vấn được dịch dùng thật toán tĩnh
Nếu kích thước ủa quan hệ trung gian vượt quá một ngưỡng cho trước,
thì tiến hành tối ưu lại
Thống kê
Quan hệ/ phân mảnh
Số lượng bộ
Kích thước bộ
Tỉ lệ bộ tham gia vào phép kết với quan hệ / phân mảnh khác
Thuộc tính
Số lượng giá trị của miền giá trị
Số của các giá trị phân biệt trong thực tế
Phân bố của giá trị thuộc tính
Các giả định chung
Sự độc lập giữa các giá trị thuộc tính
Phân bố đồng nhất của các giá trị
Vị trí quyết định
Tập trung
Một vị trí có quyền xác định kế hoạch tốt nhất
Đơn giản
Cần có tri thức về toàn bộ hệ thống phân tán
Phân tán
Hợp tác nhiều vị trí để xác định kế hoạch tốt nhất
Chỉ cần thông tin cục bộ
Chi phí để “trao đổi” cao
Lai
Một vị trí quyết định kế hoạch toàn cục
Mỗi vị trí tối ưu câu truy vấn cục bộ
Kiến trúc mạng
Mạng diện rộng (WAN)
Đặc điểm
○
Băng thông hẹp
○
Tốc độ thấp
○
Chi phí cho nghi thức cao
Chi phí truyền thông chiếm phần lớn, các chi phí khác có thể bỏ qua
Kế hoạch toàn cục giúp giảm chi phí truyền thông
Các kế hoạch cục bộ cho từng câu truy vấn cục bộ
Mạng cục bộ (LAN)
Chi phí truyền thông không chiếm phần lớn
Hàm chi phí toàn thể phải được ước lượng
Truyền dữ liệu có thể được khai thác thông qua phép kết
Có các thuật toán đặc biệt cho các mạng hình sao
Sử dụng phép kết nửa
Giảm kích thước của các tác tố tham gia
bằng phép kết nửa
Đặc biệt quan trọng để giảm chi phí truyền
Cải tiến việc xử lý phép kết phân tán bằng
cách giảm kích thước dữ liệu chuyển giữa
các vị trí
Tuy nhiên số thông điệp cũng như thời
gian xử lý cục bộ sẽ tăng
Các bước pháp xử lý tối ưu truy vấn
Bước 1: Phân rã câu truy vấn
Input : Lược đồ toàn cục
Chuẩn hóa
Đưa câu truy vấn về dạng chuẩn
Phân tích
Phát hiện các sai sót
Đơn giản hóa
Giản lược các dư thừa
Tái xây dựng
Xây dựng biểu thức đại số quan hệ
Chuẩn hóa
Kiểm tra « từ vựng » và cú pháp
Kiểm tra cú pháp (như trình biên dịch)
Kiểm tra thuộc tính và quan hệ
Kiểm tra các biểu thức điều kiện
Đưa về dạng chuẩn
Chuẩn hội
Chuẩn tuyển
Trong dạng chuẩn tuyển, câu truy vấn có thể được xử lý như các câu truy vấn
con độc lập được kết nối lại bằng phép hội
Ví dụ
Xét câu truy vấn
Điều kiện sau WHERE có thể được chuẩn hóa về
chuẩn hội như sau
Hay chuẩn tuyển
Phân tích
Pháp hiện các lỗi sai của câu truy vấn
Sai về thuộc tính và quan hệ
Sai về ngữ nghĩa
○
Các thành phần tham gia không thể cho ra
được kết quả
○
Các mâu thuẩn về ngữ nghĩa
○
Công cụ : đồ thị kết nối thuộc tính