Tải bản đầy đủ (.ppt) (111 trang)

bài giảng hệ cơ sở dữ liệu phân tán xử lý câu hỏi dữ liệu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (918.19 KB, 111 trang )

CHƯƠNG III: XỬ LÝ TRUY
VẤN VÀ ĐỊNH VỊ DỮ LIỆU
Giảng viên: Hồ Sĩ Bàng

1


CHƯƠNG III: XỬ LÝ VÀ ĐỊNH
VỊ TRUY VẤN
3.1 Những vấn đề về xử lý truy vấn
3.2 Phân rã truy vấn và định vị dữ liệu
3.3 Tối ưu hóa các truy vấn phân tán

2


3.1 Những vấn đề về xử lý truy vấn
3.1.1 Tổng quan
3.1.2 Tối ưu hóa Truy vấn
3.1.3 Các bước xử lý truy vấn phân
tán

3


Tổng quan
Xử lý truy vấn: quá trình 3 bước chuyển từ truy vấn bậc
cao(tính toán quan hệ/SQL) sang truy vấn bậc thấp tương
đương và hiệu quả hơn (đại số quan hệ)
1. Phân tích và dịch
– Kiểm tra cú pháp và quan hệ.


– Dich truy vấn thành biểu thức
đại số quan hệ tương đương
2. Tối ưu hóa
– Phát sinh một kế hoạch đánh
giá tối ưu (với giá tối thiểu) cho
kế hoạch truy vấn.
3. Đánh giá
– Mô tơ vận hành truy vấn lấy kế
hoạch truy vấn (tối ưu), thực hiện
và trả lời truy vấn.

4


Xử lý truy vấn
• Thành công của hệ quản trị csdl quan hệ là
– Các phat biểu trong ngôn ngữ truy vấn cho phép thực hiện dễ dàng các
truy vấn phức tạp không cần biết đến chi tiết của tổ chức vật lý dữ liệu
– công nghệ xử lý truy vấn tiên tiến chuyển các truy vấn ứng dụng/ người
dùng thành chiến lược vận hành truy vấn bậc thấp một cách hiệu quả
• Chuyển đổi truy vấn cần đúng đắn và hiệu quả: Hiệu quả là khó khăn
chủ yếu và cũng là 1 trong những nhiệm vụ quan trọng nhất của hệ
quản trị csdl
• Xử lý truy vấn phân tán: chuyển đổi để thực hiện trên các phân mảnh
• Xử lý truy vấn phân tán phức tạp hơn khi:
– Phân mảnh/Nhân bản các quan hệ
– tính đến các giá truyền thông
– Vận hành song song
5



Ví dụ xử lý truy vấn
• Chuyển đổi một truy vấn SQL thanh một truy vấn đại số quan hệ.
Quan hệ: EMP(ENO, ENAME, TITLE),
ASG(ENO,PNO,RESP,DUR)
Truy vấn : Tìm tên nhân viên đang quản trị một dự án trên 37
tháng?
– Truy vấn mức cao
SELECT ENAME
FROM EMP,ASG
WHERE EMP.ENO = ASG.ENO AND DUR > 37
– Hai chuyển đổi khả dĩ của truy vấn:
Biểu thức 1: ΠENAME(σ DUR>37∧EMP.ENO=ASG.ENO(EMP × ASG))
Biểu thức 2: ΠENAME(EMP IXI ENO (σ

DUR>37

(ASG)))

– Biểu thức 2 tránh được tích Đề cac và vì vậy tốt hơn.
6


Ví dụ xử lý truy vấn
• Giả thiết cho các phân mảnh :
– Dữ liệu được phân mảnh ngang:
Site1: ASG1 = σ ENO≤”E3”(ASG)
Site2: ASG2 = σ

ENO>”E3”


Site3: EMP1 = σ

ENO≤”E3”

Site4: EMP2 = σ

ENO>”E3”

(ASG)
(EMP)
(EMP)

Site5: Kết quả
– Các quan hệ ASG và EMP được phân mảnh theo cùng
cách
– Các quan hệ ASG và EMP được nhóm trên các thuộc
tính theo thứ tự RESP và ENO
7


Ví dụ xử lý truy vấn



-

Xem xét biểu thức :

ΠENAME(EMP IXI ENO (σ


DUR>37

(ASG)))

Ngầm định phép chiếu cuối cùng
Chiến lược 1(vận hành song song từng phần)
Tạo ASG'1 và chuyển đến site 3 / Tạo ASG'2 và chuyển đến site 4
Kết nối ASG'1 với EMP1 (site 3) và chuyển kết quả đến site 5
Kết nối ASG'2 với EMP2 (site 4) và chuyển kết quả đến site 5
Hợp kết quả trên site 5

8


Ví dụ xử lý truy vấn
• Chiến lược 2:
- Chuyển ASG1 và ASG2 sang site 5
- Chuyển EMP1 và EMP2 sang site 5
- Chọn và kết nối trên site 5

9


Ví dụ xử lý truy vấn
* Tính toán gía thành của 2 chiến lược dựa trên các giả thiết:
– Các bộ phân tán cùng dạng trên các phân mảnh; 20 bộ thỏa mãn DUR>37
– size(EMP) = 400, size(ASG) = 1000
– giá truy nhập bộ = 1 đơn vị; giá truyền bộ = 10 đơn vị
– ASG và EMP chỉ mục cục bộ trên DUR và ENO

• Chiến lược 1
– Tạo các ASG’ : (10+10) * giá_truy_nhập_bộ 20
– Truyền các ASG đến các sites EMP: (10+10) * Giá_truyền_bộ 200
– Tạo các EMP’: (10+10) * giá_truy_nhập_bộ * 2
40
– Truyền các EMP đến site kết quả : (10+10) * Giá_truyền_bộ 200
– Giá tổng cộng 460
• Chiến lược 2
– Truyền EMP1, EMP2 đến site 5: 400 * Giá_truyền_bộ
4,000
– Truyền ASG1, ASG2 đến site 5: 1000 * Giá_truyền_bộ
10,000
– Chọn các bộ từ ASG1 ∪ ASG2: 1000 * giá_truy_nhập_bộ
1,000
– Kết nối EMP và ASG’: 400 * 20 * giá_truy_nhập_bộ
8,000
– Giá tổng cộng
23,000

10


3.1 Những vấn đề về xử lý truy vấn
3.1.1 Tổng quan
3.1.2 Tối ưu hóa Truy vấn
3.1.3 Các bước xử lý truy vấn phân
tán

11



Tối ưu hóa truy vấn
• Tối ưu hóa truy vấn là phần quan trọng và sống còn của toàn bộ xử lý

truy vấn.
• Mục tiêu là tối thiểu hóa các hàm giá sau:
giá_thành_I/O + giá_thành_CPU + giá_thành_truyền_thong.
• Hai kịch bản khác nhau:
– WAN
* Giá truyền thông chiếm ưu thế
· Băng thông thấp
· tốc độ thấp
· tổng phí giao thức cao
* Hầu hết các giải thuật bỏ qua mọi thành phần giá khác.
– LAN
* Giá truyền thông không chiếm ưu thế
* Gía thành tổng cộng được xem xét.
12


Tối ưu hóa truy vấn
• Thứ tự của các phép tính đại số quan hệ là sống còn cho xử lý truy
vấn hiệu quả.
• Luật chủ đạo: Chuyển các phép tính tiêu tốn về cuối của xử lý
truy vấn
• Giá của các phép tính đại số quan hệ:
Phép tính
Độ phức tạp

Chọn, chiếu

(Không loại bỏ trùng)

O(n)

Chiếu
(Loại bỏ trùng)

O(n logn)

Nhóm / Kết nối / bán kết nối /
Chia/ Các phép tính tập hợp

O( n log n)

Tích Đề cac

O( n2)
13


Các nhận định tối ưu hóa truy vấn
Một vài nhận định đã được xem xét trong tối ưu hóa
truy vấn
• Các kiểu bộ tối ưu hóa truy vấn
– quan tâm các kỹ thuật tìm kiếm (tìm kiếm vét cạn,
heuristics)
– quan tâm thời gian khi truy vấn được tối ưu hóa (tĩnh,
động )
• Thống kê
• Các site quyết định

• Topo mạng
• Sử dụng bán kết nối
14


Các nhận định tối ưu hóa truy vấn
• Các kiểu bộ tối ưu quan tâm đên các kỹ thuật tìm kiếm
– Tìm kiếm vét cạn
• Dựa trên giá
• Tối ưu
• Độ phức tạp tổ hợp trên số các quan hệ
– Heuristics
• Không tối ưu
• Lặp việc nhóm các biểu thức con
• Thực hiện chọn, chiếu đầu tiên
• Thay kết nối bằng chuỗi các bán kết nối
• Săp xếp lại thứ tự phép tinh để giảm nhỏ lượng trung gian
15


Các nhận định tối ưu hóa truy vấn
• Các kiểu bộ tối ưu quan tâm đên thời gian tối ưu hóa
– Tĩnh
• Truy vấn được ưu tiên tối ưu để vận hành
• Rất khó dự đoán kích thước các kết quả trung gian
• Giảm dần qua nhiều vận hành
– Động
• Tối ưu hóa có được khi chạy
• Cung cấp thông tin chính xác về các kích thước quan hệ trung gian
• Phải tối ưu lại cho nhiều vận hành

– Hỗn hợp/Lai
• Trước hết truy vấn được dịch dùng giải thuật tĩnh
• Nếu lỗi trong kích thước dự đoán lớn hơn ngưỡng, truy vấn được tối
ưu lại khi chạy

16


Các nhận định tối ưu hóa truy vấn
• Thống kê
– Quan hệ/ Phân mảnh
• lực lượng
• Kích thước các bộ
• Phần của các bộ tham gia trong kết nối với các quan hệ/phân mảnh
khác
– Thuộc tính
• Lực lượng của miền
• Số các giá trị khác nhau thực tế
• Phân bố các giá trị thuộc tính (ví dụ, histogram)
– Các giả thiết chung
• Độc lập giữa các giá trị thuộc tính khác nhau
• Phân bố cùng kiểu các giá trị thuộc tính trong miền giá trị của chúng
17


Các nhận định tối ưu hóa truy vấn
• Các site quyết định
– Tập trung
• Site đơn quyết định lịch biểu "tốt nhất"
• Đơn giản

• Cần hiểu biết về toàn bộ csdl phân tán
– Phân tán
• Hợp tác giữa các site đê xác định lịch
• Chỉ cần thông tin cục bộ
• Hợp tác với một giá thành tổng phí
– Lai
• Một site xác định lich tổng thể
• Mỗi site tối ưu các truy vấn con cục bộ

18


Các nhận định tối ưu hóa truy vấn
• topology mạng
– WAN Điểm-điểm
• Các đặc trưng
· Băng thông thấp / · Tốc độ thấp / · Tổng phí giao thức cao
• Giá truyền thông chiếm ưu thế; các yếu tố khac bị bỏ qua
• Lập lịch tổng thể để tối thiểu hóa giá truyền thông
• Địa phương lập lịch tùy theo tối ưu hóa truy vấn trung tâm
– Local area networks (LAN)
• Giá truyền thông không chiếm ưu thế
• Hàm giá tổng cộng nên được xem xét
• Quảng bá có thể được khảo sát (phép kết nối)
• Các giải thuật đặc biệt tồn tại trong mạng hình sao
19


Các nhận định tối ưu hóa truy vấn
• sử dụng bán kết nối

– Giảm nhỏ kích thước của các toán hạng kết nối
bằng cách tính bán kết nối đầu tiên.
– Đặc biệt thích hợp khi giá chủ yếu là giá truyền
thông.
– Cải thiện việc xử lý kết nối phân tán bằng cách
giảm nhỏ kích thước dữ liệu trao đổi giữa các site.
– Tuy nhiên số thông điệp và thời gian xử lý cục bộ
lại tăng.

20


3.1 Những vấn đề về xử lý truy vấn
3.1.1 Tổng quan
3.1.2 Tối ưu hóa Truy vấn
3.1.3 Các bước xử lý truy vấn phân
tán

21


Các bước xử lý truy vấn phân tán

22


KẾT LUẬN
• Xử lý truy vấn chuyển truy vấn bậc cao (tính toán quan hệ)
thành truy vấn mức thấp hơn tương đương( đại số quan hệ).
Khó khăn chinh là đạt được hiệu quả khi chuyển đổi.

• Tối ưu hóa truy vấn nhằm tối thiểu hóa hàm giá:
I/O cost + CPU cost + communication cost
• Các bộ tối ưu truy vấn thay đổi bởi kiểu tìm kiếm( vét cạn,
heuristics), và bởi kiểu giải thuật( động, tĩnh, lai) . Các thống
kê khác nhau được thu thập để hỗ trợ xử lý tối ưu hóa truy
vấn.
• Các bộ tối ưu thay đổi bởi các site quyết định( tập trung, phân
tán , lai)
• Xử lý truy vấn được thực hiện như sau: phân rã truy vấn-->
định vị dữ liệu--> tối ưu hóa tổng thể --> tối ưu hóa cục bộ.
23


CHƯƠNG III: XỬ LÝ TRUY VẤN
VÀ ĐỊNH VỊ DỮ LIỆU
3.1 Những vấn đề về xử lý truy vấn
3.2 Phân rã truy vấn và định vị dữ liệu
3.3 Tối ưu hóa các truy vấn phân tán

24


3.2 Phân rã truy vấn và định vị dữ liệu
3.2.1 Phân rã truy vấn
3.2.2 Định vị dữ liệu

25



×