1. Trang chủ
  2. » Trung học cơ sở - phổ thông

Xu ly truy van phan tan

76 10 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 76
Dung lượng 1,48 MB

Nội dung

4.4 Tối ưu hoá truy vấn trong CSDL phân tán 4.4.3 Lực lượng của các kết quả trung gian Các công thức để ước tính lực lượng kết quả các phép toán cơ sở của đại số quan hệ chọn, chiếu, tí[r]

(1)CHƯƠNG 4: XỬ LÝ TRUY VẤN TRONG CSDL PHÂN TÁN NGUYỄN MẬU HÂN, PhD HUE COLLEGE OF SCIENCES (2) CHƯƠNG 4: XỬ LÝ TRUY VẤN TRONG CSDL PHÂN TÁN NỘI DUNG 4.1 Giới thiệu xử lý truy vấn 4.2 Xử lý truy vấn môi trường tập trung 4.3 Xử lý truy vấn môi trường phân tán 4.4 Tối ưu hoá truy vấn CSDL phân tán MỤC ĐÍCH •Giới thiệu tranh tổng quát tối ưu hóa truy vấn môi trường tập trung và phân tán •Trình bày các quy trình xử lý truy vấn hệ thống phân tán (3) 4.1 GIỚI THIỆU VỀ XỬ LÝ TRUY VẤN Mục đích xử lý truy vấn: • Giảm thiểu thời gian xử lý • Giảm vùng nhớ trung gian • Giảm chi phí truyền thông các trạm • Sử dụng ít tài nguyên Chức xử lý truy vấn: • Biến đổi truy vấn phức tạp thành truy vấn tương đương đơn giản • Phép biến đổi này phải đạt tính đúng đắn và hiệu • 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 là lựa chọn phương án nào dùng tài nguyên ít (4) 4.1 GIỚI THIỆU VỀ XỬ LÝ TRUY VẤN Các phương pháp xử lý truy vấn • Phương pháp biến đổi đại số: Đơn giản hóa câu truy vấn nhờ các phép biến đổi đại số tương đương nhằm giảm thiểu thời gian thực các phép toán Phương pháp này không quan tâm đến kích thước và cấu trúc liệu • Phương pháp ước lượng chi phí: Xác định kích thước liệu, thời gian thực phép toán câu truy vấn Phương pháp này quan tâm đến kích thước liệu và phải tính toán chi phí thời gian thực phép toán (5) 4.2 XỬ LÝ TRUY VẤN TRONG MÔI TRƯỜNG TẬP TRUNG 4.2.1 So sánh xử lý truy vấn tập trung và phân tán • Tập trung:  Chọn truy vấn đại số quan hệ tốt số tất các truy vấn đại số tương đương  Các chiến lược xử lý truy vấn có thể biểu diễn mở rộng đại số quan hệ • 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 các trạm  Chọn các trạm tốt để xử lý liệu  Cách truyền liệu (6) TèI ¦U ho¸ truy vÊn Trong m«i trêng tËp trung Câu truy vấn SQL Sơ đồ chung KiÓm tra ng÷ ph¸p Truy vấn đúng ngữ pháp Tối u hoá đại số quan hệ Truy vấn đại số quan hệ đã tối u KiÓm tra sù hîp lÖ Chän chiÕn lîc tèi u Truy vÊn SQL hîp lÖ KÕ ho¹ch thùc hiÖn DÞch truy vÊn Truy vấn đại số quan hệ T¹o sinh m· M· cña truy vÊn (7) Tèi ưu ho¸ truy vÊn Trong m«i trêng phân tán Câu truy vấn phân tán Phân rã truy vấn Lược đồ tổng thể Truy vấn đại số trên các 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 hoá toàn cục Các thống kê trên các mảnh Truy vấn mảnh tối ưu với các phép toá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 Sơ đồ phân lớp chung cho xử lý truy vấn phân tán (8) 4.2 XỬ LÝ TRUY VẤN TRONG MÔI TRƯỜNG TẬP TRUNG 4.4.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 các kỹ thuật tối ưu phân tán vì ba lí do: • Thứ nhất, câu truy vấn phân tán phải dịch thành các câu truy vấn cục bộ, và xử lí theo phương pháp tập trung • Thứ hai, các kỹ thuật tối ưu hoá phân tán thường là các mở rộng kỹ thuật tập trung • Thứ ba, tối ưu hoá tập trung thường đơn giản (9) 4.2 XỬ LÝ TRUY VẤN TRONG MÔI TRƯỜNG TẬP TRUNG 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ã và tối ưu hoá • Đầu tiên phân rã câu truy vấn dạng phép toán quan hệ thành các phần nhỏ • Câu truy vấn phân rã thành chuỗi các 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” biến (one variable query processor-OVQP) (10) 4.2 XỬ LÝ TRUY VẤN TRONG MÔI TRƯỜNG TẬP TRUNG Thuật toán INGRES (cont.) •Trước tiên OVQP thực các phép toán đơn ngôi và cố gắng giảm thiểu kích thước các kết trung gian các phép tách (detachment) và Phép (substitution) •Kí hiệu qi-1qi để 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 và kết qi sử dụng •Phép tách: OVQP sử dụng để tách câu truy vấn q thành các truy vấn q’q” dựa trên quan hệ chung là kết q’ 10 (11) 4.2 XỬ LÝ TRUY VẤN TRONG MÔI TRƯỜNG TẬP TRUNG 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 và A’1 là các thuộc tính quan hệ R1, P1 là vị từ có chứa các thuộc tính các quan hệ R1, R2, , Rn Câu truy vấn trên có thể phân rã thành hai câu truy vấn con, q’ theo sau là q” qua phép tách dựa trên quan hệ chung R1 sau: q’: SELECT R1A1 INTO R’1 FROM R1 WHERE P1(R1.A1) Trong đó R’1 là quan hệ tạm thời chứa các 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) 11 (12) Ví dụ minh họa: xét CSDL công ty phần mềm NHANVIEN (E) HOSO (G) MANV TENNV A1 A2 A3 A4 A5 A6 A7 A8 Nam Trung Đông Bắc Tây Hùng Dũng Chiến CHUCVU Phân tích HT Lập trình viên Phân tích HT Phân tích HT Lập trình viên Kỹ sư điện Phân tích HT Thiết kế DL DUAN (J) MADA D1 D2 D3 D4 MANV MADA A1 A2 A2 A3 A3 A4 A5 A6 A7 A8 D1 D1 D2 D3 D4 D2 D2 D4 D3 D3 NHIEMVU Quản lý Phân tích Phân tích Kỹ thuật Lập trình Quản lý Quản lý Kỹ thuật Quản lý Lập trình THOIGIAN 12 34 12 10 20 36 48 15 TLUONG (S) TENDA CSDL CÀI ĐẶT BẢO TRÌ PHÁT TRIỂN NGANSACH 20000 12000 28000 25000 CHUCVU Kỹ sư điện Phân tích HT Lập trình viên Thiết kế DL LUONG 1000 2500 3000 4000 12 (13) 4.2 XỬ LÝ TRUY VẤN TRONG MÔI TRƯỜNG TẬP TRUNG Xét câu truy vấn q1=“Cho biết tên các 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 q11q’, đó TGIAN1 là 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 13 (14) 4.2 XỬ LÝ TRUY VẤN TRONG MÔI TRƯỜNG TẬP TRUNG Các bước tách cho q’ có thể tạo ra: q12: SELECT G.MANV INTO TGIAN2 q13: FROM WHERE G, TGIAN1 G.MADA =TGIAN1.MADA 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 q11q12q13 Truy vấn q11 là loại đơn quan hệ và có thể cho thực OVQP Tuy nhiên các truy vấn q12 và q13 không phải loại đơn quan hệ và không thể rút gọn phép tách Các câu truy vấn đa quan hệ không thể tách tiếp (chẳng hạn q12 và q13) gọi là bất khả giản (irreducible) 14 (15) 4.2 XỬ LÝ TRUY VẤN TRONG MÔI TRƯỜNG TẬP TRUNG 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, các biến thay các giá trị chúng, tạo tập các truy vấn (n-1) biến Phép thực sau:  Chọn quan hệ truy vấn q để thay thế, gọi R là quan hệ đó  Với t1i R1, các thuộc tính tham chiếu q thay các 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 là card(R1) Tổng quát, phép có thể 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 nó chưa bất khả giản (16) 4.2 XỬ LÝ TRUY VẤN TRONG MÔI TRƯỜNG TẬP TRUNG 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 trên thuộc tính MANV Giả sử nó chứa hai bộ: <E1> và <E2> 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 có thể OVQP quản lý và sử dụng 16 (17) 4.2 XỬ LÝ TRUY VẤN TRONG MÔI TRƯỜNG TẬP TRUNG Nhận xét: •Thuật toán tối ưu hoá INGRES (được gọi là INGRES - QOA) xử lý đệ qui không còn câu truy vấn đa quan hệ nào •Thuật toán có thể áp dụng cho các phép chọn và các phép chiếu có thể 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 hoá câu truy vấn sau đó (như các nối) và OVQP sử dụng •Các câu truy vấn bất khả giản cò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 là MRQ’ Quan hệ nhỏ với lực lượng nó đã biết từ kết câu truy vấn trước đó chọn để thay 17 (18) 4.2 XỬ LÝ TRUY VẤN TRONG MÔI TRƯỜNG TẬP TRUNG Thuật toán INGRES- QOA Input: MRQ: câu truy vấn đa quan hệ (có n quan hệ) Output: Câu truy vấn tối ưu Begin Output  If n=1 then Output  run(MRQ) {thực câu truy vấn quan hệ} Else {Tách MRQ thành m tr.vấn quan hệ và tr.vấn đa quan hệ} ORQ1, , ORQm, MRQ’ MRQ For i1 to m Output’  run(ORQi) {thực ORQi } Output  output  output’ {trộn tất các kết lại} Endfor R  CHOOSE_ VARIABLE(MRQ’) {R chọn cho phép bộ} For t  R MRQ”  thay giá trị cho t MRQ’ Output’  INGRES-QOA(MRQ”) {gọi đệ qui} Output  output  output’ {trộn tất các kết lại} Endfor Endif 18 End {INGRES-QOA} (19) 4.3 Xử lý truy vấn môi trường phân tán Câu truy vấn phân tán Phân rã truy vấn Lược đồ tổng thể Truy vấn đại số trên các 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 hoá toàn cục Các thống kê trên các mảnh Truy vấn mảnh tối ưu với các phép toá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 Sơ đồ phân lớp chung cho xử lý truy vấn phân tán 19 (20) 4.3 Xử lý truy vấn môi trường phân tán 4.3.1 Phân rã truy vấn Giai đoạn này chia làm bốn bước: chuẩn hoá, phân tích, loại bỏ dư thừa và viết lại 4.3.1.1 Chuẩn hoá Mục đích: chuyển đổi truy vấn thành dạng chuẩn để thuận lợi cho các xử lý Với SQL, có hai dạng chuẩn cho các vị từ mệnh đề WHERE là: Dạng chuẩn hội là hội () phép toán tuyển (): (p11 p12  p1n)   (pm1 pm2  pmn) Dạng chuẩn tuyển là tuyển () phép toán hội (): (p11  p12   p1n)   (pm1  pm2  pmn), đó pij là các biểu thức nguyên tố 20 (21) ĐẠI SỐ MỆNH ĐỀ Bảng các tương đương logic thường dùng Đặt T= đúng, F = sai p∧F ⇔ F Domination laws-Luật nuốt p∨T ⇔ T p∨F ⇔ p Identity laws-Luật đồng p∧T ⇔ p p∧p ⇔p Idempotent laws-Luật lũy đẵng p∨p ⇔ p ¬(¬p) ⇔p Double negation law-Luật phủ định kép p∧¬p ⇔ F Cancellation laws-Luật xóa bỏ p∨¬p ⇔ T 10 p∧q ⇔ q∧p Commutative laws-Luật giao hoán 21 (22) ĐẠI SỐ MỆNH ĐỀ Bảng các 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) Distributive laws-Luật phân phối 15 p∨(q∧r) ⇔ (p∨q)∧(p∨r) 16 ¬(p∨q) ⇔ ¬p∧¬q De Morgan’s laws-Luật De Morgan 17 ¬(p∧q) ⇔ ¬p∨¬q 18 (p q) ⇔ (¬p∨q) Implication law-Luật kéo theo 19 p ∨ ( p ∧ q ) = p 20 p ∧ ( p ∨ q ) = p 22 (23) 4.3 Xử lý truy vấn môi trường phân tán Ví dụ minh họa: xét CSDL công ty phần mềm đã cho Từ các quan hệ: E= E (MANV, TENNV, CHUCVU) và G= HOSO (MANV, MADA, NHIEMVU, THOIGIAN) Xét truy vấn:“Tìm tên các nhân viên làm dự án có mã số J1 với thời gian 12 24 tháng” Truy vấn trê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) 23 (24) 4.3 Xử lý truy vấn môi trường phân tán 4.3.1.2 Phân tích Mục đích: Phát thành phần không đúng (sai kiểu sai ngữ nghĩa) và loại bỏ chúng sớm có thể Truy vấn sai kiểu: thuộc tính tên quan hệ nó không định nghĩa lược đồ tổng thể, phép toán áp dụng cho các thuộc tính sai kiểu Ví dụ: truy vấn đây là sai kiểu SELECT E# FROM E WHERE E.TENNV > 200 vì hai lý do: •Thuộc tính E# không khai báo lược đồ •Phép toán “>200” không thích hợp với kiểu chuỗi thuộc tính E.TENNV 24 (25) 4.3 Xử lý truy vấn môi trường phân tán Truy vấn sai ngữ nghĩa: các thành phần 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 trên việc biểu diễn truy vấn đồ thị gọi là đồ thị truy vấn Đồ thị này xác định các truy vấn liên quan đến phép chọn, chiếu và nối Nếu đồ thị truy vấn mà không liên thông thì truy vấn là sai ngữ nghĩa 25 (26) 4.3 Xử lý truy vấn môi trường phân tán Đồ 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 các toán hạng câu truy vấn (các quan hệ) • Cạnh nối hai nút mà không phải là nút kết thì biểu diễn phép nối • Cạnh có nút đích là nút kết thì biểu diễn phép chiếu chiếu • Một nút không phải là nút kết có thể gán nhãn phép chọn phép tự nối (seft-join: nối quan hệ với chính nó) Đồ thị kết nối: • Là đồ thị đồ thị truy vấn (join graph), đó 26 có phép nối (27) 4.3 Xử lý truy vấn môi trường phân tán Ví dụ: Từ các quan hệ E=E (MANV, TENNV, CHUCVU) và G = HOSO (MANV, MADA, NHIEMVU, THOIGIAN) và J=DUAN (MADA, TENDA, NGANSACH) Hãy xác định “Tên và nhiệm vụ các lập trình viên làm dự án CSDL có thời gian lớn năm.” Truy vấn SQL tương ứng là: SELECT FROM WHERE E.TENNV, G.NHIEMVU E, G, J E.MANV=G.MANV AND G.MADA.= J.MADA AND TENDA=”CSDL” AND THOIGIAN 36 AND NHIEMVU=”LTRINH” 27 (28) 4.3 Xử lý truy vấn môi trường phân tán Đồ thị truy vấn và đồ thị kết nối tương ứng THOIGIAN  36 G E.MANV=G.MANV G.NHIEMVU E CHUCVU= “Lập trình” G.MADA=J.MADA J TENDA=”CSDL” E.TENNV Kết (a) Đồ thị truy vấn G G.MANV=G.MANV E G.MANV=J.MANV J (b) Đồ thị kết nối tương ứng 28 (29) 4.3 Xử lý truy vấn môi trường phân tán Xét câu truy vấn SQL tương ứng: thiếu AND G.MADA=J.MADA SELECT E.TENNV, NHIEMVU FROM E, G, J WHERE E.MANV=G.MANV AND TENDA=”CSDL” AND THOIGIAN  36 AND CHUCVU=”Lập trình” Truy vấn này là sai ngữ nghĩa vì đồ thị truy vấn nó không liên thông THOIGIAN  36 E.MANV=G.MANV CHUCVU= “Lập trình” E G G.NHIEMVU J TENDA=”CSDL” E.TENNV Kết Đồ thị truy vấn 29 (30) 4.3 Xử lý truy vấn môi trường phân tán 4.3.1.3 Loại bỏ dư thừa • Điều kiện các truy vấn có thể có chứa các vị từ dư thừa • Một đánh giá sơ sài điều kiện dư thừa có thể dẫn đến lặp lại số công việc • Sự dư thừa vị từ và dư thừa công việc có thể loại bỏ cách làm đơn giản hoá các điều kiện thông qua các luật luỹ đẳng sau: p  p p p  true  true p  p p p   p  false p  true  p p   p  true p  false  p p1  (p1  p2)  p1 p  false  false 10.p1  (p1  p2)  p1 Ví dụ: Đơn giản hoá câu truy vấn sau: 30 (31) 4.3 Xử lý truy vấn môi trường phân tán SELECT E.CHUCVU FROM E WHERE (NOT(E.CHUCVU=”Lập trình”) AND (E.CHUCVU=”Lập trình” OR E.CHUCVU=”Kỹ sư điện”) AND NOT(E.CHUCVU=”Kỹ sư điện”) OR E.TENNV=”Dũng” Đặt p1:<CHUCVU=”Lập trình”>, p2:<CHUCVU=”Kỹ sư điện”>, p3: <E.TENNV=”Dũng”> Các vị từ sau mệnh đề WHERE mô tả lại: p: ( p1  (p1  p2)   p2)  p3  (( p1  p1   p2)  ( p1  p2   p2))  p3 (áp dụng luật 7)  ((false   p2)  ( p1  false) ) p3 (áp dụng luật 5)  (false  false )  p3 (áp dụng luật 4)  P3 Vậy câu truy vấn biến đổi thành: SELECT E.CHUCVU FROM E WHERE E.TENNV=”Dũng” 31 (32) 4.3 Xử lý truy vấn môi trường phân tán 4.3.1.4 Viết lại Bước này chia làm hai bước sau: • Biến đổi trực tiếp truy vấn phép tính sang đại số quan hệ • Cấu trúc lại truy vấn đại số quan hệ để cải thiện hiệu thực hiện.ại số quan hệ là cây mà nút lá biểu diễn quan hệ CSDL, các nút không lá là các quan hệ trung gian sinh các phép toán đại số quan hệ 32 (33) 4.3 Xử lý truy vấn môi trường phân tán Cách chuyển truy vấn phép tính quan hệ thành cây đại số quan hệ: • Các nút lá khác tạo cho biến khác (tương ứng quan hệ) Trong SQL các nút lá chính là các quan hệ mệnh đề FROM • Nút gốc tạo phép chiếu lên các thuộc tính kết Trong SQL nút gốc xác định qua mệnh đề SELECT • Điều kiện (mệnh đề WHERE SQL) biến đổi thành dãy các phép toán đại số thích hợp (phép chọn, nối, phép hợp, v.v ) từ lá đến gốc, có thể thực theo thứ tự xuất các vị từ và các phép toán 33 (34) 4.3 Xử lý truy vấn môi trường phân tán Ví dụ: Truy vấn “Tìm tên các nhân viên không phải là “Dũng”, làm việc cho dự án CSDL với thời gian hai năm” Biểu diễn truy vấn này SQL là: SELECT E.TENNV FROM J, G, E WHERE G.MANV=E.MANV AND G.MADA= J.MADA AND E.TENNV <> “Dũng” AND J.TENDA= “CSDL” AND (THOIGIAN=12 OR THOIGIAN=24) 34 (35) 4.3 Xử lý truy vấn môi trường phân tán SELECT E.TENNV FROM J, G, E WHERE G.MANV=E.MANV AND G.MADA= J.MADA AND E.TENNV <> “Dũng” AND J.TENDA= “CSDL” AND (THOIGIAN=12 OR THOIGIAN=24) 35 (36) 4.3 Xử lý truy vấn môi trường phân tán 06 luật biến đổi phép toán đại số quan hệ: Mục đích: dùng để biến đổi cây đại số quan hệ thành các cây tương đương (trong đó có thể có cây tối ưu) Giả sử R, S, T là các quan hệ, R định nghĩa trên toàn thuộc tính A={A1, , An}, S định nghĩa trên toàn thuộc tính B={B1, , Bn} 1.Tính giao hoán các phép toán hai ngôi: Phép tích Decartes và phép nối hai quan hệ có tính giao hoán i R  S  S  R ii R S  S R Tính kết hợp các phép toán hai ngôi: Phép tích Decartes và phép nối hai quan hệ có tính kết hợp i (RS)  T  R  (ST) ii (R S) T  R (S T) 36 (37) 4.3 Xử lý truy vấn môi trường phân tán Tính luỹ đẳng phép toán ngôi • Dãy các phép chiếu khác trên cùng quan hệ tổ hợp thành phép chiếu và ngược lại: A’(A’’(R))   A’(R) A’, A’’ R và A’  A’’ • Dãy các phép chọn khác  pi ( Ai ) trên cùng quan hệ, với pi là vị từ gán vào thuộc tính Ai , có thể tổ hợp thành phép chọn  p1 ( A1 ) ( p2 ( A2 ) ( R))  p1 ( A1 ) p2 ( A2 ) ( R) 37 (38) 4.3 Xử lý truy vấn môi trường phân tán Phép chọn giao hoán với phép chiếu  A1 , , An ( p ( Ap ) ( R))  A1 , , An ( p ( Ap ) ( A1 , , An , Ap ( R))) Nếu Ap là thành viên {A1, , An}, biểu thức trên trở thành  A1 , , An ( p ( Ap ) ( R))  p ( Ap ) ( A1 , , An , Ap ( R)) Phép chọn giao hoán với phép toán hai ngôi • Phép chọn với phép nhân:  p ( Ap ) ( R S )   p ( Ap ) ( R ) S • Phép chọn với phép nối:  p ( Ai ) ( R ( Ai , Bk ) S )   p ( Ai ) ( R) ( Ai , Bk ) S • Phép chọn với phép hợp: Nếu R và T cùng thuộc tính  p ( Ai ) ( R T )   p ( Ai ) ( R)  p ( Ai ) (T ) 38 (39) 4.3 Xử lý truy vấn môi trường phân tán Phép chiếu giao hoán với phép toán hai ngôi • Phép chiếu và tích Decartes: Nếu C=A’B’ với A’ A, B’ B, và A, B là tập các thuộc tính trên quan hệ R, S ta có:  C ( R S )  A' ( R)  B ' ( S ) • Phép chiếu và phép nối: C (R p(Ai , B j ) S )  A' ( R) p(Ai , B j )  B' (S ) • Phép chiếu và phép hợp:  C ( R  S )  A' ( R)   B ' ( S ) Chú ý: Việc sử dụng sáu luật trên có khả sinh nhiều cây đại số quan hệ tương đương Vấn đề là xác định cho cây tối ưu 39 (40) 4.3 Xử lý truy vấn môi trường phân tán Chú ý: Trong giai đoạn tối ưu, so sánh các cây có thể thực dựa trên chi phí dự đoán chúng Tuy nhiên, số lượng các cây quá lớn thì cách tiếp cận này không hiệu Chúng ta có thể dùng luật trên để cấu trúc lại cây, nhằm loại bỏ cây đại số quan hệ “tồi” Các luật trên có thể sử dụng theo bốn cách sau: • Phân rã các phép toán ngôi, đơn giản hóa biểu thức truy vấn • Nhóm các phép toán ngôi trên cùng quan hệ để giảm số lần thực • Giao hoán các phép toán ngôi với các phép toán hai ngôi để ưu tiên cho số phép toán (chẳng hạn phép chọn) • Sắp thứ tự các phép toán hai ngôi thực truy vấn 40 (41) 4.3 Xử lý truy vấn môi trường phân tán Ví dụ: Cấu trúc lại cây truy vấn ví dụ trên, cho cây kết tốt cây ban đầu nhiên còn xa cây tối ưu 41 (42) 4.3 Xử lý truy vấn môi trường phân tán 4.3.2 Định vị liệu phân tán-Tối ưu hóa cục • Lớp định vị biến đổi truy vấn đại số quan hệ tổng thể thành truy vấn đại số biểu thị trên các mảnh vật lý • Sử dụng thông tin lưu trữ trên các lược đồ phân mảnh để định vị • Chương trình đại số quan hệ xây dựng lại quan hệ tổng thể từ các phân mảnh nó gọi là chương trình định vị • Truy vấn có từ chương trình định vị gọi là truy vấn ban đầu • Chú ý: ý Trong phần đây, với kiểu phân mảnh chúng ta biểu diễn kỹ thuật rút gọn để sinh truy vấn tối ưu và đơn giản hoá 42 (43) 4.3 Xử lý truy vấn môi trường phân tán 4.3.2.1 Rút gọn theo phân mảnh ngang nguyên thuỷ Xét quan hệ E(MANV,TENNV,CHUCVU) Tách quan hệ này thành ba mảnh ngang E1, E2 và E3 sau: E1=MANV  ”E3”(E) E2=”E3”< MANV  ”E6”(E) E3=MANV > ”E6”(E)  Chương trình định vị cho quan hệ E: E = E1  E2  E3  Dạng ban đầu truy vấn nào xác định trên E là có cách thay nó E1  E2  E3  Việc rút gọn các truy vấn trên các quan hệ đã phân mảnh ngang bao gồm việc xác định câu truy vấn, sau đã cấu trúc lại cây Điều này sinh số quan hệ rỗng, và loại bỏ chúng  Phân mảnh ngang có thể đựơc khai thác để làm đơn giản phép chọn và phép nối 43 (44) 4.3 Xử lý truy vấn môi trường phân tán a Rút gọn với phép chọn: cho quan hệ R phân mảnh ngang thành R1, R2, , Rn với R j  p j (R ) Luật 1:  p j ( R j )  xR : (pi(x)  pj(x)) Trong đó, pi, pj là vị từ chọn, x là liệu, p(x) là vị từ p chiếm giữ x Ví dụ: Hãy rút gọn truy vấn SELECT * FROM E WHERE MANV=”E5” Với E tách thành ba mảnh ngang E1, E2 và E3 : E1=MANV  ”E3”(E) E2=”E3”< MANV  ”E6”(E) E3=MANV > ”E6”(E) 44 (45) 4.3 Xử lý truy vấn môi trường phân tán E1=MANV  ”E3”(E) E2=”E3”< MANV  ”E6”(E) E3=MANV > ”E6”(E) MANV=”E5” MANV=”E5”  E1 E2 E3 (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 hoán phép chọn với phép hợp, chúng ta thấy vị từ chọn đối lập với vị từ E1 và E3 nên sinh các quan hệ rỗng 45 (46) 4.3 Xử lý truy vấn môi trường phân tán b.Rút gọn với phép nối • Các phép nối trên quan hệ đã phân mảnh ngang có thể đơ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 trên tính phân phối phép nối và phép hợp và loại bỏ các phép nối vô ích • Với tính chất, (R1R2) R3 = (R1 R3)  (R2 R3) , Ri là các phân mảnh Chúng ta có thể xác định các phép nối vô ích các mảnh các điều kiện nối mâu thuẫn Sau đó, dùng luật đây để loại bỏ các phép nối vô ích 46 (47) 4.3 Xử lý truy vấn môi trường phân tán Luật 2: Ri Rj = xRi, yRj :  (pi(x)pj(y)) Trong đó Ri, Rj xác định theo các vị từ pi, pj trên cùng thuộc tính Nhận xét: • Việc xác định các phép nối vô ích thực cách xem xét các vị từ mảnh • Truy vấn rút gọn không phải luôn tốt đơn giản truy vấn ban đầu • Một thuận lợi truy vấn rút gọn là phép nối có thể thực song song 47 (48) 4.3 Xử lý truy vấn môi trường phân tán Ví dụ: dụ Giả sử quan hệ E phân mảnh thành các 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) và G2=MANV>”E3”(G) Nhận xét: xét • E1 và G1 định nghĩa cùng vị từ • Vị từ định nghĩa G2 là hợp các định nghĩa vị từ E2 và E3 Xét truy vấn SELECT * FROM E, G WHERE E.MANV=G.MANV 48 (49) 4.3 Xử lý truy vấn môi trường phân tán E1=MANV  ”E3”(E) G1=MANV”E3”(G) E E2=”E3”< MANV  ”E6”(E) E3=MANV > ”E6”(E) G2=MANV>”E3”(G) G = (E1E2E3) (G1G2) = (E1 G1)(E1 G2)(E2 G1)(E2 G2)(E3 G1)(E3 G2) = (E1 G1)  (E2 G2) (E3 G2)  MANV   E1 E2 E3 G1 MANV G2 E1 G1 MANV E2 G2 MANV E3 (b) Truy vấn rút gọn (a) Truy vấn ban đầu Hình 4.8: Sự rút gọn phân mảnh ngang với phép nối G2 49 (50) 4.3 Xử lý truy vấn môi trường phân tán 4.3.2.2 Rút gọn phân mảnh dọc • Chức việc phân mảnh dọc là tách quan hệ dựa vào thuộc tính các phép chiếu • Vì phép toán xây dựng lại phân mảnh dọc là nối, nên chương trình định vị quan hệ đã phân mảnh dọc là nối các 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 khoá MANV lặp lại sau: E1 =  MANV,TENNV(E) và E2 = MANV,CHUCVU(E) Chương trình định vị là: E = E1 MANV E2 • Các truy vấn trên phân mảnh dọc có thể rút gọn cách xác định các quan hệ trung gian vô ích và loại bỏ các cây chứa chúng • Các phép chiếu trên phân mảnh dọc không có thuộc tính chung với các thuộc tính chiếu (ngoại trừ khóa 50 quan hệ) là vô ích, mặc dù các quan hệ là khác rỗng (51) 4.3 Xử lý truy vấn môi trường phân tán Luật 3: D,K(Ri) là vô ích DA’= Trong đó, quan hệ R xác định trên A={A1, ,An}; R = A’(R), A’A , K là khoá quan hệ, KA, D là tập các 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 E2 (a) Truy vấn ban đầu E1 (b) Truy vấn rút gọn Hình 4.9: Rút gọn việc phân mảnh dọc Nhận xét: phép chiếu trên E2 là vô ích vì TENNV không có E2, nên phép chiếu cần gán vào E1 51 (52) 4.3 Xử lý truy vấn môi trường phân tán 4.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 là cách tách hai quan hệ để việc xử lý nối các phép chọn và 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, thì các mảnh R và S, mà có cùng giá trị thuộc tính nối định vị cùng trạm Ngoài ra, S có thể phân mảnh tùy thuộc vào vị từ chọn • Khi các R đặt tuỳ theo S, thì phân mảnh gián tiếp nên sử dụng mối quan hệ nhiều từ SR (i.e với S có thể phù hợp với n R, Nhưng với R phù hợp với S) • Truy vấn trên các phân mảnh gián tiếp có thể rút gọn được, các vị từ phân mảnh mâu thuẫn thì phép nối đưa quan hệ rỗng • Chương trình định vị quan hệ đã phân mảnh ngang 52 gián tiếp là hợp các mảnh (53) 4.3 Xử lý truy vấn môi trường phân tán Ví dụ: Cho mối quan hệ nhiều từ E đến G, quan hệ G (MANV, MADA, NHIEMVU, THOIGIAN) có thể phân mảnh gián luật sau: G1 = G và G2 = G MANV E1 MANV E2 Trong đó E phân mảnh ngang sau: E1= CHUCVU=”Lập trình”(E) và E2= CHUCVU”Lập trình”(E) Chương trình định vị cho quan hệ đã phân mảnh gián tiếp là hợp các mảnh G=G1G2 Để rút gọn các truy vấn trên phân mảnh gián tiếp này, phép nối đưa quan hệ rỗng các vị từ phân mảnh mâu thuẫn Ví dụ vị từ G1 và E2 mâu thuẫn nhau, nên G1 E2 = 53 (54) G1 = G G2 = G MANV E1 và MANV E2 Xử lý truy vấn trường phân E1= 4.3 và E2= môi CHUCVU=”Lập trình”(E) CHUCVU”Lập trình”(E) tán Ví dụ: Xét truy vấn SELECT * FROM E, G WHERE G.MANV=E.MANV AND CHUCVU=”KS khí” MANV  CHUCVU=”KS khí”  G1 MANV  G2 (a) Truy vấn ban đầu E1 G1 E2  CHUCVU=”KS khí”  G2 E2 (b) Truy vấn sau đẩy phép chọn xuống 54 (55) Chú ý: (G1 G2 ) CHUCVU=”ks khí”(E2) = (G1 CHUCVU=”ks khí”(E2)) (G2 CHUCVU=”ks khí”(E2))  MANV MANV  CHUCVU=”KS khí” G1 E2 MANV  CHUCVU=”KS khí”  CHUCVU=”KS khí” G2 E2 (c) Truy vấn sau đẩy phép hợp lên G2 E2 (d) Truy vấn đã rút gọn Hình 4.10: Rút gọn phân mảnh gián tiếp Nhận xét: xét • Truy vấn ban đầu trên các mảnh E1, E2, G1 và G2 tương ứng hình 4.10a • Bằng cách đẩy phép chọn xuống các mảnh E1 và E2, truy vấn rút gọn hình 4.10b • Phân phối các phép nối với phép hợp, chúng ta thu cây hình 4.10c 55 • Cây bên trái đưa quan hệ rỗng, nên cây rút gọn có (56) 4.3 Xử lý truy vấn môi trường phân tán 4.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 là kết hợp phân dọc và phân mảnh ngang • Mục đích phân mảnh hỗn hợp là hỗ trợ các truy vấn liên quan đến phép chiếu, phép chọn và phép nối • Chương trình định vị cho quan hệ đã phân mảnh hỗn hợp là phép hợp và phép nối các 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 56 (57) 4.3 Xử lý truy vấn môi trường phân tán Các truy vấn trên các mảnh hỗn hợp có thể rút gọn cách kết hợp các 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: 1.Loại bỏ các quan hệ rỗng sinh mâu thuẫn các phép chọn trên các phân mảnh ngang 2.Loại bỏ các quan hệ vô ích sinh các phép chiếu trên các phân mảnh dọc 3.Phân phối các phép nối với các phép hợp để tách và loại bỏ các phép nối vô ích 57 (58) Ví dụ: dụ E1=MANV  ”E4”(MANV,TENNV(E)), E2=MANV > ”E4”( MANV,TENNV(E)) E3= MANV,CHUCVU(E) SELECT FROM WHERE TENNV E MANV=”E5”  TENNV  TENNV MANV=”E5” MANV=”E5”  E2 E1 E2 E3 (a) Truy vấn ban đầu (b) Truy vấn đã rút gọn Hình 4.11: Rút gọn phân mảnh hỗn hợp 58 (59) 4.4 Tối ưu hóa truy vấn CSDL phân tán Nhận xét: Trong hệ phân tán, truy vấn thu từ giai đoạn phân rã và định vị liệu có thể thực cách đơn giản việc thêm vào các thao tác truyền thông Việc hoán vị thứ tự các phép toán câu truy vấn có thể cung cấp nhiều chiến lược tương đương khác Bài toán xác định cây truy vấn tối ưu là NP-khó Thông thường tối ưu tìm tìm chiến lược gần tối ưu và tránh các chiến lược “tồi” Đầu tối ưu là lịch trình tối ưu bao gồm truy vấn đại số xác định trên các mảnh và các phép toán truyền thông hỗ trợ việc thực truy vấn trên các 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 là tổ hợp có trọng số chi phí truyền 59 thông, chi phí I/O và chi phí CPU (60) 4.4 Tối ưu hóa truy vấn CSDL phân tán 4.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 có thể biểu diễn theo tổng chi phí theo thời gian trả lời • Tổng chi phí là tổng tất các thành phần chi phí bao gồm chi phí truyền thông, chi phí I/O và chi phí CPU Trong đó, chi phí truyền thông là quan trọng • Thời gian trả lời truy vấn là thời gian tính từ bắt đầu xử lý đến hoàn thành truy vấn 60 (61) 4.4 Tối ưu hoá truy vấn CSDL phân tán Công thức chung cho xác định tổng chi phí: Tæng chi phÝ: tæng cña tÊt c¶ c¸c 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 và nhận thông báo CTR: chi phí truyền đơn vị liệu từ trạm này đến trạm khác, ta xem CTR là số #instr: tổng tất các lệnh CPU các trạm #I/OS: số lần xuất/nhập đĩa 61 #msgs: số thông báo (62) 4.4 Tối ưu hoá truy vấn CSDL phân tán 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) là chi phí địa phương •Hai thành phần chi phí sau (CMSG, CTR) là chi phí truyền thông •Chi phí truyền thông để chuyển #byte liệu từ trạm này đến trạm khác giả thiết là hàm tuyến tính theo số #bytes truyền đi, xác định công thức CC(#byte)= CMSG + CTR * bytes 62 (63) 4.4 Tối ưu hoá truy vấn CSDL phân tán 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 Trong đó: seq_#x (x cã thÓ lµ sè lÖnh cña CPU, I/O, sè th«ng b¸o, sè byte) lµ sè lín nhÊt cña x thùc hiÖn truy vÊn mét c¸ch tuÇn 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 và nhận thông báo CTR: chi phí truyền đơn vị liệu từ trạm này đến trạm khác #instr: tổng tất các lệnh CPU các trạm #I/OS: số lần xuất/nhập đĩa #msgs: số thông báo 63 #bytes: tổng kích thước tất các thông báo (64) 4.4 Tối ưu hoá truy vấn CSDL phân tán VÝ dô: Minh ho¹ sù kh¸c gi÷a tæng chi phÝ vµ 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 và 2, đây có chi phí truyền thông đợc xét Tr¹m x Tr¹m Tr¹m y Hình 4.12: Ví dụ biến đổi truy vấn Giả sử, CMSG và CTR đợc biểu thị theo đơn vị thời gian Tổng chi phí truyền x đơn vị từ trạm đến trạm và 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 có thể đợc thực song song nên thời gian trả lêi cña truy vÊn lµ: Response_time = max{CMSG + CTR* x, CMSG + CTR* y} 64 (65) 4.4 Tối ưu hoá truy vấn CSDL phân tán 4.4.2 Các thống kê liệu •Yếu tố chính ảnh hưởng đến hiệu suất chiến lược thực thi là kích thước các quan hệ trung gian sinh quá trình thực •Khi phép toán đặt trạm khác, quan hệ trung gian phải truyền trên mạng •Do đó để tối thiểu hoá khối lượng liệu truyền đi, điều quan tâm đầu tiên là đánh giá kích thước kết trung gian các phép toán đại số quan hệ •Đánh giá này dựa trên các thông tin thống kê các quan hệ sở và các công thức ước tính lực lượng kết các phép toán quan hệ 65 (66) 4.4 Tối ưu hoá truy vấn CSDL phân tán Mục đích thống kê liệu: •Xác định kích thước các quan hệ trung gian sinh quá trình thực câu truy vấn •Xác định chi phí truyền thông cho các đại lượng trung gian Một số ký hiệu Cho quan hệ R xác định trên tập thuộc tính A={A1, , An} R phân mảnh thành R1, R2, , Rr •length(Ai): độ dài (byte) thuộc tính Ai ,AiA, •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 trên 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 66 (67) 4.4 Tối ưu hoá truy vấn CSDL phân tán 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 và S là số thực và 1, xác định bởi: card(R S) SFJ = card(R)*card(S) •Hệ số SFJ nhỏ thì 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ê này 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) là độ dài (số byte) R, tính theo độ dài các thuộc tính nó, + card(R) là số các R tính theo công thức 67 phần (68) 4.4 Tối ưu hoá truy vấn CSDL phân tán 4.4.3 Lực lượng các kết trung gian Các công thức để ước tính lực lượng kết các phép toán sở đại số quan hệ (chọn, chiếu, tích Decartes, nối, nửa nối, hợp và hiệu) Các toán hạng quan hệ ký hiệu R và S Hệ số chọn phép toán SFOP, (OP biểu thị phép toán) là tỷ lệ các toán hạng quan hệ tham gia vào kết phép toán với số các quan hệ Ví dụ: • SFJ : hệ số chọn phép nối • SFS : hệ số chọn phép chọn 68 (69) 4.4 Tối ưu hoá truy vấn CSDL phân tán 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 và có thể tính sau, với p(Ai), p(Aj) là các vị từ tương ứng với các thuộc max(A) - value tính Ai, Aj SFS (A>value) = SFS (A=value) = max(A)-min(A) Card(A(R)) SFS (A<value) = Value - min(A) max(A)-min(A) SFS(p(Ai)  p(Aj)) = SFS(p(Ai)) * SFS(p(Aj)) SFS(p(Ai) p(Aj)) = SFS(p(Ai))+SFS(p(Aj))-SFS(p(Ai))* SFS(p(Aj)) SFS(A {value}) = SFS(A=value) * card({value}) 69 (70) 4.4 Tối ưu hoá truy vấn CSDL phân tán Phép chiếu: card(A(R)) ? Phép chiếu có thể có không loại bỏ các Ở đây xét phép chiếu loại bỏ các Lực lượng quan hệ kết phép chiếu tùy ý là khó đánh giá chính xác, vì tương quan thuộc tính chiếu thường không biết Tuy nhiên, có hai trường hợp tầm thường đặc biệt có lợi:  Nếu phép chiếu R trên thuộc tính đơn A thì card(A(R)) = card(R)  Nếu các thuộc tính chiếu là khoá R, thì card(A(R)) = card(R) và card(RS) = card(R) * card(S) 70 (71) 4.4 Tối ưu hoá truy vấn CSDL phân tán Phép nối: card(R S) ? Không có cách tổng quát để xác định lực lượng phép nối không có các thông tin thêm Cận trên lực lượng phép nối chính là lực lượng tích Decartes Tuy nhiên, có số trường hợp xuất thường xuyên và việc đánh giá là đơn giản: - Nếu R AB S với AR, BS, đó A là khoá R, B là khoá ngoài S, thì lực lượng kết xấp xỉ là: card(R AB S) = card(R) Với các phép nối khác, lực lượng kết là:  card(R S) = SFJ * card(R) * card(S) 71 (72) 4.4 Tối ưu hoá truy vấn CSDL phân tán Phép nửa nối Hệ số chọn phép nửa nối (SFSJ) xấp xỉ là: SFSJ (R S) = Card(A(S)) Card(dom[A]) Công thức này phụ thuộc vào thuộc tính A S, nên thường gọi là hệ số chọn thuộc tính A S, ký hiệu SFSJ(S.A) và là hệ số chọn S.A trên thuộc tính nối khác Vì thế, lực lượng phép nối tính sau: card(R AS) = SFSJ(S.A) * card(R) 72 (73) 4.4 Tối ưu hóa CSDL phân tán Phép hợp •Rất khó đánh giá số lượng RS, vì các giống R và S bị loại bỏ phép hợp •Ở đây chúng ta đưa công thức tính: -cận trên card(RS) card(R)+card(S), -cận card(RS) max{card(R),card(S)} (giả sử R và S không chứa các lặp) Phép trừ Cũng phép hợp đây đưa cận trên và cận dưới, cận trên card(R-S) là card(R), cận là Về việc ít sử dụng tài nguyên? 73 (74) 4.4 Tối ưu hóa CSDL phân tán Ví dụ Xét hai quan hệ sở liệu công ty máy tính: E=NHANVIEN (MANV, TENNV, CHUCVU) và G=HOSO (MANV, MADA, NHIEMVU, THOIGIAN) Với câu truy vấn “Cho biết tên các nhân viên quản lý dự án” Ta có câu truy vấn SQL tương ứng là: SELECT TENNV FROM E, G WHERE E.MANV=G.MANV AND NHIEMVU=”Quản lý” Hai truy vấn đại số tương đương với truy vấn trên là: TENNV(NHIEMVU=”Quản lý”  E.MANV=G.MANV (E  G)) và TENNV(E MANV (NHIEMVU=”Quản lý” G)) (1) (2) Rõ ràng truy vấn (2) tránh khỏi phải tích số E và G, nên dùng ít phép tính tài nguyên truy vấn (1) 74 (75) Câu hỏi cuối chương Mục đích tối ưu hoá truy vấn CSDL phân tán Chức tối ưu hoá truy vấn phân tán Các phương pháp xử lý truy vấn Ý tưởng thuật toán Ingres Ví dụ Sơ đồ phân lớp chung cho xử lý truy vấn phân tán Cách chuyển truy vấn phép tính quan hệ thành cây đại số quan hệ Sử dụng các luật biến đổi phép toán đại số quan hệ để biến đổi cây đại số quan hệ thành các cây tương đương Định vị liệu phân tán-Tối ưu hoá cục Xác định tổng chi phi và thời gian trả lời câu truy vấn 75 (76) CHƯƠNG 4: XỬ LÝ TRUY VẤN TRONG CSDL PHÂN TÁN HẾT CHƯƠNG 76 (77)

Ngày đăng: 08/06/2021, 09:07

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w