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

