Professional Documents
Culture Documents
4.1.de Cuong Bai Giang
4.1.de Cuong Bai Giang
P P# PTen Mau TK
P1 A Đ 12
P2 B X 17
P3 C V 17
1
P2 B X 17 S2 P1 3
P3 C V 17 S2 P1 3
P1 A Đ 12 S3 P2 2
P2 B X 17 S3 P2 2
P3 C V 17 S3 P2 2
2
P1 A Đ 12 S1 3
P1 A Đ 12 S2 3
Nhận xét: Cách 1 tốn kém bộ nhớ và tốn thời gian thực hiện hơn cách 2.
Biến đổi hợp lý các câu hỏi để giảm bớt chi phí trong truy vấn dữ liệu đó là mục
đích của tối ưu hoá câu hỏi.
Các quan hệ càng nhỏ thì chi phí thời gian thực hiện và miền nhớ càng thấp. Quan
hệ có thể nhỏ theo hai kích thước hẹp ngang (ít thuộc tính) và ngắn (ít bộ). Trong
các phép toán quan hệ thì phép chiếu và phép chọn có khả năng giảm kích thước
ngang và dọc của các quan hệ. Phép kết nối thường làm tăng kích thước của các
quan hệ. Theo ví dụ trên ta thấy rằng trình tự thực hiện các phép tính đóng một
vai trò quan trọng trong quá trình tổ chức câu hỏi.
2. Các chiến lược tối ưu
Đẩy phép chọn và phép chiếu xuống thực hiện sớm nhất có thể được
Nhóm một dãy các phép toán một ngôi (chọn, chiếu)
Tổ hợp phép chọn và phép tích đề các thành phép kết nối
σF(r x s) = = r s
Xác định các biểu thức con chung
Chẳng hạn: F = F1 x F2 + F1 x F3 = F1 x (F2 + F3)
Xử lý các tệp trước khi tính toán
Chẳng hạn: trước khi thực hiện
3
r s sắp xếp hay r theo A, s theo B
A=B
Lựa chọn thứ tự thực hiện các phép toán sao cho chi phí thấp nhất
Cố gắng giảm bớt bề ngang của quan hệ bằng phép chiếu nếu có thể.
Ví dụ 2 : ΠDC(σSTen='Lan'(S)*SP)
Trong SP chỉ cần giữ lại thuộc tính S# để kết nối
Trong S chỉ cần hai thuộc tính S# để kết nối và DC để lấy thông tin
Vì vậy ta có thể sử dụng phép chiếu để giảm bớt bề ngang của quan hệ. Biểu thức
sau được tối ưu thành ΠDC(ΠDC,S#(σSTen='Lan'(S))*ΠS#(SP))
3. Các biểu thức tương đương
3. 1. Quy tắc giao hoán của phép kết nối
E1 * E2 = E2 * E1
Ví dụ 3:
S * SP S# STen DC P# KL
S1 Hùng HN P1 3
S2 Lan HT P1 3
SP * S S# STen DC P# KL
S1 Hùng HN P1 3
S2 Lan HT P1 3
4
S * SP S# STen DC P# KL
S1 Hùng HN P1 3
S2 Lan HT P1 3
Xét S * (SP * P) ta có
SP *P S# P# KL PTen Mau TK
S1 P1 3 A Đ 12
S2 P1 3 A Đ 12
S3 P2 2 B X 17
5
Ví dụ: Tìm thông tin về mặt hàng có TK là 17 và có màu X
σMau='X'(σTK=17(P)) = σTK=17(σMau='X'(P)) = σMau='X' ^ TK=17(P)
Xét σMau='X'(σTK=17(P))
Q=σTK=17(P) P# PTen Mau TK
P2 B X 17
P3 C V 17
Bảng 18: Bảng Q- kết quả của phép chọn TK=17 của P
Bảng 19: Bảng kết quả của phép chọn màu X trong Q
Xét σTK=17(σMau='X'(P))
Q=σMau='X'(P) P# PTen Mau TK
P2 B X 17
Bảng 22: Bảng kết quả của phép chọn TK=17 và màu=’X
’trong P
6
Nhận xét σMau='X' ^ TK=17(P) có số lần truy nhập bảng ít hơn cả.
3. 4. Dãy các phép chiếu
Quy tắc: ΠX(ΠY(R)) =ΠX(R) với X Y
Ví dụ : ΠS#(ΠS#,STen(S)) =ΠS#(S)
ΠS#,STen(S) S# STen ΠS#(ΠS#,STen(S)) = ΠS#(S)) S#
S1 Hùng S1
S2 Lan S2
ΠS#(ΠSTen,DC(S)) ≠ ΠS#(S)
ΠSTen,DC(S) STen DC ΠS#(ΠSTen,DC(S)) S#
Hùng HN
Lan HT
7
P1 A Đ 12
8
Xét σSTen='Lan'(S * SP)
Q = S*SP S# STen DC P# KL
S1 Hùng HN P1 3
S2 Lan HT P1 3
σSTen='Lan'(Q) S# STen DC P# KL
S2 Lan HT P1 3
Q*SP S# STen DC P# KL
S2 Lan HT P1 3
9
Hình 16: Thực hiện phép kết nối trước, chọn
sau
Xét σTK=17(P) * σS#='S3'(SP)
σTK=17(P) P# PTen Mau TK
P2 B X 17
P3 C V 17
σS#='S2'(SP) S# P# KL
S3 P2 2
Hình 18: Thực hiện phép chọn trước,nối sau và chọn cuối cùng
Xét (σ Mau='X' ^ TK=17 (P))*SP
10
Q=σ Mau='X' ^ TK=17 (P) P# PTen Mau TK
P2 B X 17
Hình 19: Thực hiện phép chọn 2 điều kiện kết hợp, rồi nối sau
3. 7. Giao hoán phép chiếu và phép kết nối.
Hình 20: Thực hiện phép nối trước rồi chiếu sau
Xét ΠS#,STen(S)*ΠS#,P#(SP)
Q = ΠS#, STen(S) S# STen S = ΠS#,P#(SP) S# P#
S1 Hùng S1 P1
S2 Lan S2 P1
Q*S S# STen P#
11
S1 Hùng P1
S2 Lan P1
Hình 21: Thực hiện phép chiếu trước rồi nối sau
Đưa ra tên nhà cung cấp và mã các mặt hàng mà nhà cung cấp đó đã cung ứng:
ΠSTen,P#(S * SP) ≠ ΠSTen(S)*ΠP#(SP)
ΠSTen,P#(S * SP) STen P# ΠSTen(S) STen ΠP#(SP) P#
Hùng P1 Hùng P1
Lan P1 Lan P1
ΠSTen(S) * ΠP#(SP)
Hình 22: Thực hiện phép giao hoán giữa phép chiếu và phép
nối sai
3. 8. Giao hoán phép chọn và phép hợp
Quy tắc: σF(R1 R2) = σF(R1) σF(R2)
Ví dụ: Cho hai quan hệ
R1 A C B R2 A C B
a 1 1 a 3 1
a 2 1 a 2 1
b 1 2 b 1 1
Q=R1 R2 A C B σA=’a’(R1 A C B
R2)
a 1 1 a 1 1
12
a 2 1 a 2 1
b 1 2 a 3 1
a 3 1
b 1 1
σA=’a’(R1) σA=’a’(R2) A C B
a 1 1
a 2 1
a 3 1
Q = σB>=2(R1) A C B
b 1 2
13
S = σB>=2(R2) A C B
Q-S A C B
b 1 2
a 1 a 1 1
a 2 a 2 1
b 1 b 1 2
a 3 a 3 1
b 1 1
14
ΠA,C(R1) A C ΠA,C(R2) A C
a 1 a 3
b 1 b 1
a 2 a 2
ΠA,C(R1) ΠA,C(R2) A C
a 1
a 2
b 1
a 3
Hình 28: Thực hiện phép chiếu trước, hợp sau
15
P = ΠS#(SP*σMau='Đ'(P))
Dùng phép chiếu để giảm kích thước quan hệ ta có biểu thức tối ưu
P = ΠS#(ΠS#,P#(SP)*ΠP#(σMau='Đ'(P)))
Ví dụ 2: Cho Q(ABD), R(CDF), S(FG) tối ưu biểu thức đại số sau:
P = ΠAD(σG=’g’(Q*R*S)))
Đẩy phép chọn xuống thực hiện sớm nhất sử dụng quy tắc giao hoán giữa chọn và
phép kết nối có P = ΠAD(Q*R*σG=’g’ (S))
Áp dụng quy tắc kết hợp của phép kết nối có P = ΠAD(Q*(R*σG=’g’ (S)))
Áp dụng quy tắc giao hoán giữa phép chiếu và phép kết nối ta có biểu thức
P = ΠAD(Q)*ΠD(R* σG=’g’ (S))
Dùng phép chiếu để giảm kích thước quan hệ ta có biểu thức tối ưu
P = ΠAD(Q) * ΠD(ΠD,F(R) * ΠF(σG=’g’ (S)))
Yêu cầu sinh viên chuẩn bị:
Đọc trước đề cương bài giảng chi tiết và slides bài giảng, xem video bài giảng, làm
bài trắc nghiệm bài 4. Đọc tài liệu tham khảo số [1] chương 3 và tài liệu tham khảo
số [2] chương 3
Tài liệu tham khảo:
[1] Nguyễn Thị Thanh Huyền – Ngô Thị Bích Thúy, Giáo trình cơ sở dữ liệu, NXB
Giáo Dục, 2011
[2] Phạm Thị Thanh Hồng, Cơ sở dữ liệu, NXB Lao động xã hội, 2000
16