Bài giảng Cơ sở dữ liệu - Chương 8: Tối ưu truy vấn (Mới)

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

pdf 21 trang yennguyen 1420
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Cơ sở dữ liệu - Chương 8: Tối ưu truy vấn (Mới)", để 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 Cơ sở dữ liệu - Chương 8: Tối ưu truy vấn (Mới)

Bài giảng Cơ sở dữ liệu - Chương 8: Tối ưu truy vấn (Mới)
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 = RS ((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:

  • pdfbai_giang_co_so_du_lieu_chuong_8_toi_uu_truy_van_moi.pdf