3.1. Giới thiệu về xử lý truy vấn 3.2. Xử lý truy vấn trong môi trường tập trung 3.3. Xử lý truy vấn trong môi trường phân tán 3.4. Tối ưu hoá truy vấn trong CSDL phân tán 3.2.1. Sơ lược về ngôn ngữ truy vấn cấu trúc SQL SELECT R1 .A1 , R2 .A2 ,. . ., Ri .Ai FROM R1 , R2 ,. . . , Rk WHERE Ψ Trong đó, R1 , R2 ,. . . , Rk là danh sách các quan hệ và R1 .A1 , R2 .A2 ,. . ., Ri .Ai là danh các thuộc tính được in ra; R.A là thuộc tính A của quan hệ R. Ψ là một biểu thức logic có thể bao gồm phép toán logic AND, OR, NOT và các toán tử so sánh =, ≤, . . . Ý nghĩa của câu lệnh SELECT:
7/12/2022 Giới thiệu mơn học; Nội dung môn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng Bài Xử lý truy vấn CSDL phân tán 3.1 Giới thiệu xử lý truy vấn 3.2 Xử lý truy vấn môi trường tập trung 3.3 Xử lý truy vấn môi trường phân tán 3.4 Tối ưu hoá truy vấn CSDL phân tán 1 Giới thiệu mơn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.1 Giới thiệu xử lý truy vấn Mục đích Chức Giảm thời gian, vùng nhớ trung gian Giảm chi phí, dung tài nguyên Đơn giản hoá truy vấn Chọn phương án dùng tài nguyên biến đổi Nghiên cứu sinh: Phạm Trung Đức Phương pháp Biến đổi đại số Ước lược chi phí 7/12/2022 Giới thiệu mơn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.2 Tối ưu hóa câu truy vấn CSDL tập trung • • Là tảng giúp tối ưu hóa câu truy vấn CSDL phân tán, bởi: Xử lý truy vấn Tập trung: Chọn truy vấn đại số quan hệ tốt số tất truy vấn đại số tương đương Các chiến lược xử lý truy vấn biểu diễn mở rộng đại số quan hệ Xử lý truy vấn Phân tán Kế thừa chiến lược xử lý truy vấn môi trường tập trung Còn phải quan tâm thêm Các phép toán truyền liệu trạm Chọn trạm tốt để xử lý liệu Cách truyền liệu Nghiên cứu sinh: Phạm Trung Đức Giới thiệu môn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.2 Tối ưu hóa câu truy vấn CSDL tập trung (tt) 3.2.1 Sơ lược ngôn ngữ truy vấn cấu trúc SQL SELECT R1.A1, R2.A2, ., Ri.Ai FROM R1, R2, , Rk WHERE Ψ Trong đó, R1, R2, , Rk danh sách quan hệ R1.A1, R2.A2, ., Ri.Ai danh thuộc tính in ra; R.A thuộc tính A quan hệ R Ψ biểu thức logic bao gồm phép tốn logic AND, OR, NOT toán tử so sánh =, ≤, Ý nghĩa câu lệnh SELECT: 𝜋R1.A1, ,Ri.Ai (𝜎Ψ R1× ×.Rk)) Câu lệnh SELECT INTO Nghiên cứu sinh: Phạm Trung Đức 7/12/2022 Giới thiệu mơn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.2 Tối ưu hóa câu truy vấn CSDL tập trung (tt) 3.2.2 Chiến lược tối ưu CSDL tập trung Tại phải nghiên cứu xử lý truy vấn tập trung? Để hiểu kỹ thuật tối ưu phân tán ba lí do: • Thứ nhất, câu truy vấn phân tán phải dịch thành câu truy vấn cục bộ, xử lí theo phương pháp tập trung • Thứ hai, kỹ thuật tối ưu hoá phân tán thường mở rộng kỹ thuật tập trung • Thứ ba, tối ưu hoá tập trung thường đơn giản Nghiên cứu sinh: Phạm Trung Đức Giới thiệu mơn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.2 Tối ưu hóa câu truy vấn CSDL tập trung (tt) Thuật toán INGRES Ý tưởng thuật toán: Thuật toán tổ hợp hai giai đoạn phân rã tối ưu hố • Đầu tiên phân rã câu truy vấn dạng phép toán quan hệ thành phần nhỏ • Câu truy vấn phân rã thành chuỗi truy vấn có quan hệ chung • Sau câu truy vấn đơn quan hệ xử lí “thể xử lý truy vấn biến” (one variable query processor-OVQP) Nghiên cứu sinh: Phạm Trung Đức 7/12/2022 Giới thiệu mơn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.2 Tối ưu hóa câu truy vấn CSDL tập trung (tt) Thuật tốn INGRES (cont.) • Trước tiên OVQP thực phép tốn đơn ngơi cố gắng giảm thiểu kích thước kết trung gian phép tách (detachment) Phép (substitution) • Kí hiệu qi-1qi để câu truy vấn q phân rã thành hai câu truy vấn qi-1và qi, qi-1 thực trước kết qi sử dụng • Phép tách: OVQP sử dụng để tách câu truy vấn q thành truy vấn q’q” dựa quan hệ chung kết q’ Nghiên cứu sinh: Phạm Trung Đức Giới thiệu mơn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.2 Tối ưu hóa câu truy vấn CSDL tập trung (tt) Nếu câu truy vấn q biểu diễn SQL có dạng: q: SELECT R2.A2, R3.A3, ., Rn.An FROM R1, R2, , Rn WHERE P1(R1.A’1) AND P2(R1.A1, R2.A2, , Rn.An) Trong đó: A1 A’1 thuộc tính quan hệ R1, P1 vị từ có chứa thuộc tính quan hệ R1, R2, , Rn Câu truy vấn phân rã thành hai câu truy vấn con, q’ theo sau q” qua phép tách dựa quan hệ chung R1 sau: q’: SELECT R1A1 INTO R’1 FROM R1 WHERE P1(R1.A1) Trong R’1 quan hệ tạm thời chứa thông tin cần thiết để thực tiếp tục câu truy vấn: q”:SELECT R2A2, ., RnAn FROM R’1, R2, , Rn WHERE P2(R1.A1, R2.A2, ., Rn.An) Nghiên cứu sinh: Phạm Trung Đức 7/12/2022 Giới thiệu môn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.2 Tối ưu hóa câu truy vấn CSDL tập trung (tt) Xét câu truy vấn q1=“Cho biết tên nhân viên làm việc dự án có tên CSDL” Diễn tả q1 SQL: q1: SELECT E.TENNV FROM E, G, J WHERE E.MANV = G.MANV AND G.MADA = J.MADA AND TENDA = “CSDL” q1 tách thành q11q’, TGIAN1 quan hệ trung gian q11: SELECT J.MADA INTO TGIAN1 FROM J WHERE TENDA = “CSDL” q’: SELECT FROM WHERE E.TENNV E, G, TGIAN1 E.MANV = G.MANV AND G.MADA =TGIAN1.MADA Nghiên cứu sinh: Phạm Trung Đức Giới thiệu môn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.2 Tối ưu hóa câu truy vấn CSDL tập trung (tt) Các bước tách cho q’ tạo ra: q12: SELECT G.MANV INTO TGIAN2 FROM G, TGIAN1 WHERE G.MADA =TGIAN1.MADA q13: SELECT E.TENNV FROM E, TGIAN2 WHERE E.MANV = TGIAN2.MANV Truy vấn q1 rút gọn thành chuỗi truy vấn q11q12q13 Truy vấn q11 loại đơn quan hệ cho thực OVQP Tuy nhiên truy vấn q12 q13 loại đơn quan hệ rút gọn phép tách Các câu truy vấn đa quan hệ tách tiếp (chẳng hạn q12 q13) gọi bất khả giản (irreducible) Nghiên cứu sinh: Phạm Trung Đức 10 7/12/2022 Giới thiệu môn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.2 Tối ưu hóa câu truy vấn CSDL tập trung (tt) Các truy vấn bất khả giản biến đổi thành câu truy vấn đơn quan hệ nhờ phép (tuple substitution) Phép bộ: Cho câu truy vấn n-quan hệ q, biến thay giá trị chúng, tạo tập truy vấn (n-1) biến Phép thực sau: Chọn quan hệ truy vấn q để thay thế, gọi R1 quan hệ Với t1i R1, thuộc tính tham chiếu q thay giá trị thật t1i, tạo câu truy vấn q’ có (n-1) quan hệ Như số câu truy vấn q’ sinh phép card(R1) Tổng quát, phép mơ tả sau: q(R1, R2, , Rn) thay {q’(t1i, R2, R3, , Rn), t1i R1} Vì thu được, câu truy vấn xử lý đệ quy phép chưa bất khả giản Nghiên cứu sinh: Phạm Trung Đức 11 Giới thiệu mơn học; Nội dung môn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.2 Tối ưu hóa câu truy vấn CSDL tập trung (tt) Ví dụ minh họa: Xét tiếp câu truy vấn q13 q13: SELECT E.TENNV FROM E, TGIAN2 WHERE E.MANV = TGIAN2.MANV Quan hệ định nghĩa biến TGIAN2 chạy thuộc tính MANV Giả sử chứa hai bộ: Phép cho TGIAN2 tạo hai câu truy vấn đơn quan hệ: q131: SELECT E.TENNV FROM E WHERE E.MANV = “E1” q132: SELECT E.TENNV FROM E WHERE E.MANV = “E2” Sau chúng OVQP quản lý sử dụng Nghiên cứu sinh: Phạm Trung Đức 12 7/12/2022 Giới thiệu mơn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.2 Tối ưu hóa câu truy vấn CSDL tập trung (tt) Nhận xét: Thuật toán tối ưu hoá INGRES (được gọi INGRES - QOA) xử lý đệ qui khơng cịn câu truy vấn đa quan hệ Thuật tốn áp dụng cho phép chọn phép chiếu sử dụng kỹ thuật tách Kết câu truy vấn đơn quan hệ lưu cấu trúc liệu có khả tối ưu hố câu truy vấn sau (như nối) OVQP sử dụng Các câu truy vấn bất khả giản lại sau phép tách sử lý phép Câu truy vấn bất khả giản, kí hiệu MRQ’ Quan hệ nhỏ với lực lượng biết từ kết câu truy vấn trước chọn để thay Thuật toán INGRES- QOA, System R, R-QOA Nghiên cứu sinh: Phạm Trung Đức 13 Giới thiệu môn học; Nội dung mơn học; vấn CSDL phân tán: 3.3 Tối ưu hóa câu truy vấn CSDL phân tán Bài Xử3 Tàilý truy liệu tham khảo sử dụng Truy vấn phép tính quan hệ phân tán Phân rã truy vấn Lược đồ tổng thể Truy vấn đại số quan hệ phân tán Trạm điều khiển Định vị liệu Lược đồ phân mảnh Truy vấn mảnh Tối ưu hố tồn cục Các thống kê mảnh Truy vấn mảnh tối ưu với phép tốn truyền thơng Các trạm địa phương Tối ưu hoá cục Lược đồ địa phương Các truy vấn cục tối ưu 14 7/12/2022 Giới thiệu mơn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.3 Tối ưu hóa câu truy vấn CSDL phân tán (tt) Phân rã truy vấn Giai đoạn chia làm bốn bước: chuẩn hố, phân tích, loại bỏ dư thừa viết lại 3.3.1 Chuẩn hố Mục đích: chuyển đổi truy vấn thành dạng chuẩn để thuận lợi cho xử lý Với SQL, có hai dạng chuẩn cho vị từ mệnh đề WHERE là: Dạng chuẩn hội hội () phép toán tuyển (): (p11 p12 p1n) (pm1 pm2 pmn) Dạng chuẩn tuyển tuyển () phép toán hội (): (p11 p12 p1n) (pm1 pm2 pmn), pij biểu thức nguyên tố Nghiên cứu sinh: Phạm Trung Đức 15 Giới thiệu mơn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.3 Tối ưu hóa câu truy vấn CSDL phân tán (tt) Bảng tương đương logic thường dùng Đặt T= đúng, F = sai p∧F ⇔ F p∨T ⇔ T p∨F ⇔ p p∧T ⇔ p p∧p ⇔p p∨p ⇔ p ¬(¬p) ⇔p p∧¬p ⇔ F p∨¬p ⇔ T 10 p∧q ⇔ q∧p Commutative laws-Luật giao hoán Domination laws-Luật nuốt Identity laws-Luật đồng Idempotent laws-Luật lũy đẵng Double negation law-Luật phủ định kép Cancellation laws-Luật xóa bỏ Nghiên cứu sinh: Phạm Trung Đức 16 7/12/2022 Giới thiệu mơn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.3 Tối ưu hóa câu truy vấn CSDL phân tán (tt) Bảng tương đương logic thường dùng (tt) 11 p∨q ⇔ q∨p 12 (p∧q)∧r ⇔ p∧(q∧r) Associative laws-Luật kết hợp 13 (p∨q)∨r ⇔ p∨(q∨r) 14 p∧(q∨r) ⇔ (p∧q)∨(p∧r) 15 p∨(q∧r) ⇔ (p∨q)∧(p∨r) 16 ¬(p∨q) ⇔ ¬p∧¬q 17 ¬(p∧q) ⇔ ¬p∨¬q 19 (p q) ⇔ (¬p∨q) p∨(p∧q)=p 20 p∧(p∨q)=p 18 Distributive laws-Luật phân phối De Morgan’s laws-Luật De Morgan Implication law-Luật kéo theo Nghiên cứu sinh: Phạm Trung Đức 17 Giới thiệu môn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.3 Tối ưu hóa câu truy vấn CSDL phân tán (tt) Ví dụ minh họa: xét CSDL công ty phần mềm cho Từ quan hệ: E= E (MANV, TENNV, CHUCVU) G= HOSO (MANV, MADA, NHIEMVU, THOIGIAN) Xét truy vấn:“Tìm tên nhân viên làm dự án có mã số J1 với thời gian 12 24 tháng” Truy vấn biểu diễn SQL: SELECT E TENNV FROM E, G WHERE E.MANV= G.MANV AND G.MADA=”J1” AND THOIGIAN=12 OR THOIGIAN=24 Điều kiện dạng chuẩn hội là: E.MANV=G.MANV G.MADA=”J1” (THOIGIAN=12 THOIGIAN=24) Điều kiện dạng chuẩn tuyển là: (E.MANV=G.MANV G.MADA=”J1” THOIGIAN=12) (E.MANV=G.MANV G.MADA=”J1” THOIGIAN=24) Nghiên cứu sinh: Phạm Trung Đức 18 7/12/2022 Giới thiệu mơn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.3 Tối ưu hóa câu truy vấn CSDL phân tán (tt) 3.3.2 Phân tích Mục đích: Phát thành phần khơng (sai kiểu sai ngữ nghĩa) loại bỏ chúng sớm Truy vấn sai kiểu: thuộc tính tên quan hệ khơng định nghĩa lược đồ tổng thể, phép tốn áp dụng cho thuộc tính sai kiểu Ví dụ: truy vấn sai kiểu SELECT E# FROM E WHERE E.TENNV > 200 hai lý do: Thuộc tính E# khơng khai báo lược đồ Phép tốn “>200” khơng thích hợp với kiểu chuỗi thuộc tính E.TENNV Nghiên cứu sinh: Phạm Trung Đức 19 Giới thiệu môn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.3 Tối ưu hóa câu truy vấn CSDL phân tán (tt) Truy vấn sai ngữ nghĩa: thành phần khơng tham gia vào việc tạo kết Để xác định truy vấn có sai ngữ nghĩa hay không, ta dựa việc biểu diễn truy vấn đồ thị gọi đồ thị truy vấn Đồ thị xác định truy vấn liên quan đến phép chọn, chiếu nối Nếu đồ thị truy vấn mà khơng liên thơng truy vấn sai ngữ nghĩa Đồ thị truy vấn: • Có nút dùng để biểu diễn cho quan hệ kết • Các nút khác biểu diễn cho toán hạng câu truy vấn (các quan hệ) • Cạnh nối hai nút mà nút kết biểu diễn phép nối • Cạnh có nút đích nút kết biểu diễn phép chiếu • Một nút khơng phải nút kết gán nhãn phép chọn phép tự nối Đồ thị kết nối: • Là đồ thị đồ thị truy vấn (join graph), có phép nối Nghiên cứu sinh: Phạm Trung Đức 20 10 7/12/2022 Giới thiệu mơn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.3 Tối ưu hóa câu truy vấn CSDL phân tán (tt) MANV=”E5” MANV=”E5” E1=MANV ”E3”(E) E2=”E3”< MANV ”E6”(E) E3=MANV > ”E6”(E) E1 E3 E2 (a) Truy vấn ban đầu E2 (b) Truy vấn rút gọn Rút gọn cách sử dụng tính chất giao hốn phép chọn với phép hợp, thấy vị từ chọn đối lập với vị từ E1 E3 nên sinh quan hệ rỗng Nghiên cứu sinh: Phạm Trung Đức 37 Giới thiệu mơn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.3 Tối ưu hóa câu truy vấn CSDL phân tán (tt) b Rút gọn với phép nối Các phép nối quan hệ phân mảnh ngang đơn giản chúng phân mảnh theo thuộc tính nối Việc rút gọn thực dựa tính phân phối phép nối phép hợp loại bỏ phép nối vơ ích Với tính chất, (R1R2) ⋈ R3 = (R1 ⋈ R3) (R2 ⋈ R3) , Ri phân mảnh Chúng ta xác định phép nối vơ ích mảnh điều kiện nối mâu thuẫn Sau đó, dùng luật để loại bỏ phép nối vơ ích Nghiên cứu sinh: Phạm Trung Đức 38 19 7/12/2022 Giới thiệu mơn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.3 Tối ưu hóa câu truy vấn CSDL phân tán (tt) Luật 2: Ri Rj = xRi, yRj : (pi(x)pj(y)) Trong Ri, Rj xác định theo vị từ pi, pj thuộc tính Nhận xét: Việc xác định phép nối vơ ích thực cách xem xét vị từ mảnh Truy vấn rút gọn tốt đơn giản truy vấn ban đầu Một thuận lợi truy vấn rút gọn phép nối thực song song Nghiên cứu sinh: Phạm Trung Đức 39 Giới thiệu mơn học; Nội dung môn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.3 Tối ưu hóa câu truy vấn CSDL phân tán (tt) Ví dụ: Giả sử quan hệ E phân mảnh thành mảnh E1=MANV ”E3”(E) E2=”E3”< MANV ”E6”(E) E3=MANV > ”E6”(E) Quan hệ G phân làm hai mảnh: G1=MANV”E3”(G) G2=MANV>”E3”(G) Nhận xét: • E1 G1 định nghĩa vị từ • Vị từ định nghĩa G2 hợp định nghĩa vị từ E2 E3 Xét truy vấn SELECT * FROM E, G WHERE E.MANV=G.MANV Nghiên cứu sinh: Phạm Trung Đức 40 20 7/12/2022 Giới thiệu môn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.3 Tối ưu hóa câu truy vấn CSDL phân tán (tt) E1=MANV ”E3”(E) E2=”E3”< MANV ”E6”(E) E3=MANV > ”E6”(E) G1=MANV”E3”(G) G2=MANV>”E3”(G) E = (E1 G1)(E1 G2)(E2 G1)(E2 = (E1 G1) (E2 G = (E1E2E3) G2)(E3 G2) G1)(E3 (E3 (G1G2) G2) G2) MANV E1 E2 E3 G1 (a) Truy vấn ban đầu MANV G2 E1 G1 MANV E2 G2 MANV E3 G2 (b) Truy vấn rút gọn Sự rút gọn phân mảnh ngang với phép nối Nghiên cứu sinh: Phạm Trung Đức 41 Giới thiệu môn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.3 Tối ưu hóa câu truy vấn CSDL phân tán (tt) 3.3.5.2 Rút gọn phân mảnh dọc Chức việc phân mảnh dọc tách quan hệ dựa vào thuộc tính phép chiếu Vì phép toán xây dựng lại phân mảnh dọc nối, nên chương trình định vị quan hệ phân mảnh dọc nối mảnh vùng thuộc tính chung Ví dụ: Quan hệ E phân mảnh dọc thành E1, E2, với thuộc tính khố MANV lặp lại sau: E1 = MANV,TENNV(E) E2 = MANV,CHUCVU(E) Chương trình định vị là: E = E1 MANV E2 Các truy vấn phân mảnh dọc rút gọn cách xác định quan hệ trung gian vơ ích loại bỏ chứa chúng Các phép chiếu phân mảnh dọc khơng có thuộc tính chung với thuộc tính chiếu (ngoại trừ khóa quan hệ) vơ ích, quan hệ khác rỗng Nghiên cứu sinh: Phạm Trung Đức 42 21 7/12/2022 Giới thiệu mơn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.3 Tối ưu hóa câu truy vấn CSDL phân tán (tt) Luật 3: D,K(Ri) vơ ích DA’= Trong đó, quan hệ R xác định A={A1, ,An}; R = A’(R), A’A , K khoá quan hệ, KA, D tập thuộc tính chiếu, D A Ví dụ: Với quan hệ E phân mảnh dọc sau: E1 = MANV,TENNV(E)và E2 = MANV,CHUCVU(E) TENNV TENNV Xét truy vấn SQL: MANV SELECT FROM TENNV E E1 E1 E2 (a) Truy vấn ban đầu (b) Truy vấn rút gọn Nghiên cứu sinh: Phạm Trung Đức 43 Giới thiệu mơn học; Nội dung môn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.3 Tối ưu hóa câu truy vấn CSDL phân tán (tt) 3.3.2.3 Rút gọn theo phân mảnh gián tiếp Sự phân mảnh ngang gián tiếp cách tách hai quan hệ để việc xử lý nối phép chọn phép nối Nếu quan hệ R phụ thuộc vào phân mảnh ngang gián tiếp nhờ quan hệ S, mảnh R S, mà có giá trị thuộc tính nối định vị trạm Ngồi ra, S phân mảnh tùy thuộc vào vị từ chọn Khi R đặt tuỳ theo S, phân mảnh gián tiếp nên sử dụng mối quan hệ nhiều từ SR (i.e với S phù hợp với n R, Nhưng với R phù hợp với S) Truy vấn phân mảnh gián tiếp rút gọn được, vị từ phân mảnh mâu thuẫn phép nối đưa quan hệ rỗng Chương trình định vị quan hệ phân mảnh ngang gián tiếp hợp mảnh Nghiên cứu sinh: Phạm Trung Đức 44 22 7/12/2022 Giới thiệu môn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.3 Tối ưu hóa câu truy vấn CSDL phân tán (tt) Ví dụ: Cho mối quan hệ nhiều từ E đến G, quan hệ G (MANV, MADA, NHIEMVU, THOIGIAN) phân mảnh gián luật sau: G1 = G MANV E1 G2 = G MANV E2 Trong E phân mảnh ngang sau: E1= CHUCVU=”Lập trình”(E) E2= CHUCVU”Lập trình”(E) Chương trình định vị cho quan hệ phân mảnh gián tiếp hợp mảnh G=G1G2 Để rút gọn truy vấn phân mảnh gián tiếp này, phép nối đưa quan hệ rỗng vị từ phân mảnh mâu thuẫn Ví dụ vị từ G1 E2 mâu thuẫn nhau, nên G1 E2 = Nghiên cứu sinh: Phạm Trung Đức 45 Giới thiệu môn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.3 Tối ưu hóa câu truy vấn CSDL phân tán (tt) Ví dụ: Xét truy vấn G1 = G MANV E1 SELECT * E1= CHUCVU=”Lập trình”(E) FROM E, G WHERE G.MANV=E.MANV AND CHUCVU=”KS khí” và MANV G1 MANV CHUCVU=”KS khí” G2 (a) Truy vấn ban đầu G2 = G MANV E2 E2= CHUCVU”Lập trình”(E) E1 G1 E2 CHUCVU=”KS khí” G2 E2 (b) Truy vấn sau đẩy phép chọn xuống Nghiên cứu sinh: Phạm Trung Đức 46 23 7/12/2022 Giới thiệu mơn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.3 Tối ưu hóa câu truy vấn CSDL phân tán (tt) Chú ý: (G1 G2 ) CHUCVU=”ks khí”(E2) = (G1 CHUCVU=”ks khí”(E2)) (G2 CHUCVU=”ks khí”(E2)) MANV MANV CHUCVU=”KS khí” G1 CHUCVU=”KS khí” MANV CHUCVU=”KS khí” • Nhận xét: G2 mảnh E1, E2G ,G G2 tương E•2 Truy vấn ban đầu trênEcác E2 ứng hình 4.10a • Bằng cách đẩy phép chọn xuống mảnh E E , truy vấn rút gọn hình (d) Truy vấn rút gọn (c) Truy vấn sau đẩy phép hợp lên 4.10b • Phân phối phép nối với phép hợp, thu hình 4.10c • Cây bên trái đưa quan hệ rỗng, nên rút gọn có hình 4.10d Nghiên cứu sinh: Phạm Trung Đức 47 Giới thiệu mơn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.3 Tối ưu hóa câu truy vấn CSDL phân tán (tt) 3.3.2.4 Rút gọn theo phân mảnh hỗn hợp Sự phân mảnh hỗn hợp kết hợp phân dọc phân mảnh ngang Mục đích phân mảnh hỗn hợp hỗ trợ truy vấn liên quan đến phép chiếu, phép chọn phép nối Chương trình định vị cho quan hệ phân mảnh hỗn hợp phép hợp phép nối mảnh Ví dụ: Xét quan hệ E phân mảnh hỗn hợp sau: E1=MANV ”E4”(MANV,TENNV(E)), E2=MANV > ”E4”( MANV,TENNV(E)) E3= MANV,CHUCVU(E) Chương trình định vị là: E = (E1 E2) MANV E3 Nghiên cứu sinh: Phạm Trung Đức 48 24 7/12/2022 Giới thiệu mơn học; Nội dung môn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.3 Tối ưu hóa câu truy vấn CSDL phân tán (tt) Các truy vấn mảnh hỗn hợp rút gọn cách kết hợp luật sử dụng phân mảnh ngang nguyên thủy, phân mảnh dọc, phân mảnh ngang gián tiếp, tương ứng sau: Loại bỏ quan hệ rỗng sinh mâu thuẫn phép chọn phân mảnh ngang Loại bỏ quan hệ vơ ích sinh phép chiếu phân mảnh dọc Phân phối phép nối với phép hợp để tách loại bỏ phép nối vơ ích Nghiên cứu sinh: Phạm Trung Đức 49 Giới thiệu môn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.3 Tối ưu hóa câu truy vấn CSDL phân tán (tt) Ví dụ: E1=MANV ”E4”(MANV,TENNV(E)), E3= MANV,CHUCVU(E) E2=MANV > ”E4”( MANV,TENNV(E)) TENNV TENNV MANV=”E5” SELECT FROM WHERE TENNV E MANV=”E5” MANV=”E5” E2 E1 E2 (a) Truy vấn ban đầu E3 (b) Truy vấn rút gọn Nghiên cứu sinh: Phạm Trung Đức 50 25 7/12/2022 Giới thiệu môn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.3 Tối ưu hóa câu truy vấn CSDL phân tán (tt) Nhận xét: Trong hệ phân tán, truy vấn thu từ giai đoạn phân rã định vị liệu thực cách đơn giản việc thêm vào thao tác truyền thơng Việc hốn vị thứ tự phép toán câu truy vấn cung cấp nhiều chiến lược tương đương khác Bài toán xác định truy vấn tối ưu NP-khó Thơng thường tối ưu tìm tìm chiến lược gần tối ưu tránh chiến lược “tồi” Đầu tối ưu lịch trình tối ưu bao gồm truy vấn đại số xác định mảnh phép tốn truyền thơng hỗ trợ việc thực truy vấn trạm Để chọn lựa chiến lược tối ưu nói chung, tối ưu cịn phải xác định chi phí thực câu truy vấn Chi phí thực tổ hợp có trọng số chi phí truyền thơng, chi phí I/O chi phí CPU Nghiên cứu sinh: Phạm Trung Đức 51 Giới thiệu mơn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.4 Tính tốn chi phí tối ưu hóa truy vấn phân tán 3.4.1 Mơ hình chi phí tối ưu hóa truy vấn Chi phí chiến lược thực phân tán biểu diễn theo tổng chi phí theo thời gian trả lời Tổng chi phí tổng tất thành phần chi phí bao gồm chi phí truyền thơng, chi phí I/O chi phí CPU Trong đó, chi phí truyền thơng quan trọng Thời gian trả lời truy vấn thời gian tính từ bắt đầu xử lý đến hoàn thành truy vấn Nghiên cứu sinh: Phạm Trung Đức 52 26 7/12/2022 Giới thiệu môn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.4 Tính tốn chi phí tối ưu hóa truy vấn phân tán (tt) Cơng thức chung cho xác định tổng chi phí: Tỉng chi phÝ: tổng tất chi phí CCPU, CI/O, CMSG Total_cost= CCPU * #instr + CI/O * #I/OS + CMSG * #msgs + CTR * #bytes Trong đó: Total_cost: tổng chi phí CCPU: chi phí lệnh CPU CI/O: chi phí xuất/nhập đĩa CMSG: chi phí việc khởi đầu nhận thông báo CTR: chi phí truyền đơn vị liệu từ trạm đến trạm khác, ta xem CTR số #instr: tổng tất lệnh CPU trạm #I/OS: số lần xuất/nhập đĩa #msgs: số thông báo #bytes: tổng kích thước thơng báo Nghiên cứu sinh: Phạm Trung Đức 53 Giới thiệu môn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.4 Tính tốn chi phí tối ưu hóa truy vấn phân tán (tt) • • • Chú ý: Trong công thức: Total_cost= CCPU* #instr + CI/O*#I/OS + CMSG *#msgs + CTR *#bytes Hai thành phần chi phí đầu (CCPU,CI/O) chi phí địa phương Hai thành phần chi phí sau (CMSG, CTR) chi phí truyền thơng Chi phí truyền thơng để chuyển #byte liệu từ trạm đến trạm khác giả thiết hàm tuyến tính theo số #bytes truyền đi, xác định công thức CC(#byte)= CMSG + CTR * bytes Công thức chung cho xác định thời gian trả lời Response_time = CCPU * seq_#instr + CI/O * seq_#I/OS + CMSG * seq_#msgs + CTR* seq_#bytes Nghiên cứu sinh: Phạm Trung Đức 54 27 7/12/2022 Giới thiệu mơn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.4 Tính tốn chi phí tối ưu hóa truy vấn phân tán (tt) Trong đó: seq_#x (x số lệnh CPU, I/O, số thông báo, số byte) số lớn nhÊt cđa x thùc hiƯn truy vÊn mét c¸ch tn tù Trong đó: Response_time: thời gian trả lời truy vấn CCPU: chi phí lệnh CPU CI/O: chi phí xuất/nhập đĩa CMSG: chi phí việc khởi đầu nhận thơng báo CTR: chi phí truyền đơn vị liệu từ trạm đến trạm khác #instr: tổng tất lệnh CPU trạm #I/OS: số lần xuất/nhập đĩa #msgs: số thông báo Nghiên cứu sinh: Phạm Trung Đức #bytes: tổng kích thước tất thông báo 55 Giới thiệu mơn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.4 Tính tốn chi phí tối ưu hóa truy vấn phân tán (tt) Ví dụ: Minh hoạ khác tổng chi phí thời gian trả lời, máy tính trả lời truy vấn trạm với liệu từ trạm 2, có chi phí truyền Trạm thơng xét x Trạm Trạm y Hình 4.12: Ví dụ biến đổi truy vấn Giả sử, CMSG CTR biểu thị theo đơn vị thời gian Tổng chi phí truyền x đơn vị từ trạm đến trạm y đơn vị từ trạm đến trạm là: Total_cost = CMSG + CTR*x + CMSG+ CTR*y = 2CMSG+ CTR* (x+y) Vì việc truyền liệu thực song song nên thời gian trả lời truy vấn là: Response_time = max{CMSG + CTR* x, CMSG + CTR* y} Nghiên cứu sinh: Phạm Trung Đức 56 28 7/12/2022 Giới thiệu môn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.4 Tính tốn chi phí tối ưu hóa truy vấn phân tán (tt) 3.4.2 Các thống kê liệu Yếu tố ảnh hưởng đến hiệu suất chiến lược thực thi kích thước quan hệ trung gian sinh trình thực Khi phép toán đặt trạm khác, quan hệ trung gian phải truyền mạng Do để tối thiểu hố khối lượng liệu truyền đi, điều quan tâm đánh giá kích thước kết trung gian phép tốn đại số quan hệ Đánh giá dựa thông tin thống kê quan hệ sở cơng thức ước tính lực lượng kết phép toán quan hệ Nghiên cứu sinh: Phạm Trung Đức 57 Giới thiệu môn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.4 Tính tốn chi phí tối ưu hóa truy vấn phân tán (tt) Mục đích thống kê liệu: Xác định kích thước quan hệ trung gian sinh trình thực câu truy vấn • Xác định chi phí truyền thơng cho đại lượng trung gian Một số ký hiệu • Cho quan hệ R xác định tập thuộc tính A={A1, , An} thành R1, R2, , Rr R phân mảnh length(Ai): độ dài (byte) thuộc tính Ai ,AiA, card(Ai(Rj): lực lượng phép chiếu mảnh Rj lên thuộc tính Ai (số giá trị phân biệt thuộc tính Ai) max(Ai): giá trị cực đại thuộc tính Ai Dom(Ai) min(Ai): giá trị cực tiểu thuộc tính Ai Dom(Ai) card(dom(Ai)): lực lượng thuộc tính Ai card(Ri)): số mảnh Ri Nghiên cứu sinh: Phạm Trung Đức 58 29 7/12/2022 Giới thiệu mơn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.4 Tính tốn chi phí tối ưu hóa truy vấn phân tán (tt) Ngoài ra, liệu thống kê bao gồm hệ số chọn phép nối (SFJ) số cặp đại số quan hệ, hệ số SFJ quan hệ R S số thực 1, xác định bởi: card(R S) SFJ = card(R)*card(S) Hệ số SFJ nhỏ phép nối có tính chọn tốt, ngược lại có tính chọn tồi Các thống kê có lợi để đánh giá kích thước quan hệ trung gian Kích thước quan hệ trung gian R xác định size(R) = card(R)*length(R) Trong đó, + length(R) độ dài (số byte) R, tính theo độ dài thuộc tính nó, + card(R) số R tính theo cơng thức phần Nghiên cứu sinh: Phạm Trung Đức 59 Giới thiệu mơn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.4 Tính tốn chi phí tối ưu hóa truy vấn phân tán (tt) 3.4.3 Lực lượng kết trung gian Các cơng thức để ước tính lực lượng kết phép toán sở đại số quan hệ (chọn, chiếu, tích Decartes, nối, nửa nối, hợp hiệu) Các toán hạng quan hệ ký hiệu R S Hệ số chọn phép toán SFOP, (OP biểu thị phép toán) tỷ lệ toán hạng quan hệ tham gia vào kết phép toán với số quan hệ Ví dụ: • • SFJ : hệ số chọn phép nối Nghiên cứu sinh: chọn Phạm Trung Đức SFS : hệ số chọn phép 60 30 7/12/2022 Giới thiệu môn học; Nội dung mơn học; Bài Xử lý truy vấn CSDL phân tán: Tài liệu tham khảo sử dụng 3.4 Tính tốn chi phí tối ưu hóa truy vấn phân tán (tt) Phép chọn: card( (R)) ? card( (R)) = SFS(F) * card(R) Trong SFS(F) phụ thuộc vào cơng thức chọn tính sau, với p(Ai), p(Aj) vị từ tương ứng với thuộc tính Ai, Aj SFS (A>value) = max(A) - value max(A)-min(A) SFS (A=value) = Card(A(R)) Value - min(A) SFS (A