Bài giảng môn học Cơ sở dữ liệu - Chương 8: Tối ưu truy vấn
Giới thiệu
Tối ưu truy vấn
- Là biến đổi câu hỏi này sang câu hỏi khác (nhưng có
cùng kết quả) nhằm giảm thiểu thời gian tính toán
Quan tâm
- Cách cài đặt câu hỏi
• Giải thuật – độ phức tạp
• Không gian lưu trữ – ít /nhiều
• Thời gian xử lý – nhanh/chậm
Giới thiệu (tt)
Giả sử
- Xử lý 1000 records mất 1 giây
- Xử lý 4.000.000 records mất 4.000 giây
Khó chấp nhận khi phải chờ đợi kết quả truy vấn
Xử lý thông tin
- Ưu tiên tối ưu hóa thời gian hơn tối ưu hóa lưu trữ
• Bỏ qua dạng chuẩn để đạt tốc độ xử lý nhanh hơn
• Dung lượng HDD ngày càng nhiều, nhưng có khả năng thiếu
không gian tính toán
Phép tích Cartesian hay phép kế
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng môn học Cơ sở dữ liệu - Chương 8: Tối ưu truy vấn", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng môn học Cơ sở dữ liệu - Chương 8: Tối ưu truy vấn
Chương 8 Tối ưu truy vấn Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 2 Nội dung chi tiết Giới thiệu Nguyên tắc tối ưu Các qui tắc chuyển đổi Biểu thức tương đương Ví dụ Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 3 Giới thiệu Tối ưu truy vấn - Là biến đổi câu hỏi này sang câu hỏi khác (nhưng có cùng kết quả) nhằm giảm thiểu thời gian tính toán Quan tâm - Cách cài đặt câu hỏi • Giải thuật – độ phức tạp • Không gian lưu trữ – ít /nhiều • Thời gian xử lý – nhanh/chậm Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 4 Giới thiệu (tt) Giả sử - Xử lý 1000 records mất 1 giây - Xử lý 4.000.000 records mất 4.000 giây Khó chấp nhận khi phải chờ đợi kết quả truy vấn Xử lý thông tin - Ưu tiên tối ưu hóa thời gian hơn tối ưu hóa lưu trữ • Bỏ qua dạng chuẩn để đạt tốc độ xử lý nhanh hơn • Dung lượng HDD ngày càng nhiều, nhưng có khả năng thiếu không gian tính toán Phép tích Cartesian hay phép kết Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 5 Nguyên tắc tối ưu Ví dụ - R(A, B) có u bộ - S(C, D) có v bộ - Cho biết giá trị của A sao cho B=C và D=50 A( (B=C) (D=50) (R S)) A( B=C (R D=50(S))) A(R B=C (D=50(S)) Biến đổi tương đương Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 6 Nguyên tắc tối ưu (tt) Chiến lược (J. D. Ullman) - Thực hiện phép chọn/chiếu càng sớm càng tốt • Giảm bớt kích thước của kết quả trung gian • Giảm chi phí truy cập bộ nhớ phụ và chi phí lưu trữ của bộ nhớ chính Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 7 Qui tắc chuyển đổi (1) Giao hoán - E1 E2 = E2 E1 - E1 E2 = E2 E1 (2) Kết hợp - (E1 E2) E3 = E1 (E2 E3) - (E1 E2) E3 = E1 (E2 E3) Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 8 Qui tắc chuyển đổi (tt) (3) Dãy các phép chiếu - (4) Dãy các phép chọn - (5) Chọn và chiếu - X = tập thuộc tính con của R - Z = tập thuộc tính con của R xuất hiện trong điều kiện p A1, A2, , An( A1, A2, , Am(R)) = A1, A2, , An (R) , với n m p1 ( p2 (R)) = p2 ( p1 (R)) = p1 p2 (R) X [p (R)] = {p [ X (R)]} X XZ Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 9 Qui tắc chuyển đổi (tt) (6) Chọn và tích Cartesian - (7) Chọn và hội - (8) Chọn và trừ - C(R) S = C(R S) C(R S) = C(R) C(S) C(R S) = C(R) C(S) Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 10 Qui tắc chuyển đổi (tt) (9) Chiếu và tích Cartesian - (10) Chiếu và hội - A1, A2, , An (R S) = A1, A2, , Ak (R) Ak+1, , An (S) A1, A2, , An (R S) = A1, A2, , An (R) A1, A2, , An (S) Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 11 Biểu thức tương đương (1) Kết tự nhiên Tích cartesian, chọn và chiếu (2) Kết the-ta Tích cartesian, chọn (3) Phép giao Phần bù của hội 2 phần bù R(A,B) S(B,C) = A,B,C(R.B=S.B(R S)) R C S = C(R S) R S = RS ((R S) (S R)) Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 12 Biểu thức tương đương (tt) (4) Phần bù (5) Phép chia Q(A1,A2,...,An) = ( A1(Q) A2(Q) An(Q) Q(A1,A2,...,An)) R(A,B) S(A) = B(R) B((( B(R) A(S)) R )) Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 13 Tối ưu truy vấn Input/Output - Cây truy vấn ĐSQH/Cây truy vấn tối ưu Bước 1 - Áp dụng 5 biểu thức tương đương Bước 2 - Dùng qui tắc 4 tách phép chọn thành các phép chọn con Bước 3 - Với mỗi phép chọn, áp dụng các qui tắc 5, 6, 7, và 8 để đưa phép chọn xuống càng sâu càng tốt Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 14 Tối ưu truy vấn (tt) Bước 4 - Với mỗi phép chiếu, áp dụng các qui tắc 3, 9 và 10 để đưa phép chiếu xuống càng sâu càng tốt Bước 5 - Tập trung các phép chọn (qui tắc 4) - Loại bỏ các phép chiếu vô ích (qui tắc 3) Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 15 Ví dụ Customer(cusID, cusNm, cusStreet, cusCity) Account(accID, cusID, balance) cusNm Customer.cusID=Account.cusID balance=100 Customer Account x Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 16 Ví dụ (tt) cusNm balance=100 Customer Account x Customer.cusID=Account.cusID Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 17 Ví dụ (tt) cusNm balance=100 Customer Account Customer.cusID=Account.cusID Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 18 Ví dụ (tt) cusNm balance=100Customer Account Customer.cusID=Account.cusID Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 19 Ví dụ (tt) cusNm balance=100Customer Account Customer.cusID=Account.cusID cusNm, cusID cusID Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 20 Bài tập SÁCH (Tên-sách, Tác-giả, Nhà-XB, Mã-sách) NHÀ-XUẤT-BẢN (Nhà-XB, Địa-chỉ, Thành-phố) ĐỘC-GIẢ (Tên-ĐG, ĐChỉ-ĐG, TPhố-ĐG, Số-thẻ) MƯỢN-SÁCH (Số-thẻ, Mã-sách, Ngày-mượn) Cho biết các sách của nhà xuất bản ABC được mượn trên 2 lần bởi độc giả X Cơ sở dữ liệu - Khoa CNTT - ĐH KHTN TPHCM 21
File đính kèm:
- bai_giang_mon_hoc_co_so_du_lieu_chuong_8_toi_uu_truy_van.pdf