Professional Documents
Culture Documents
Bài 4. de Cuong Bai Giang
Bài 4. de Cuong Bai Giang
P P# PTen Mau TK
P1 A Đ 12
P2 B X 17
P3 C V 17
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
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
Bảng 19: Bảng kết quả của phép chọn màu X trong
Xét σTK=17(σMau='X'(P))
Q
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
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# STen ΠS#(ΠS#,STen(S)) = 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
σ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
σS#='S2'(SP) S# P# KL
S3 P2 2
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#
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 * STen P# ΠSTen STen ΠP#(S P#
SP) (S) P)
Hùng P1 Hùng P1
Lan P1 Lan P1
ΠSTen(S) * ΠP#(SP)
Hình 22: Thực hiện phépgiao 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
Xét σA=’a’(R1 R2) và σA=’a’(R1) σA=’a’(R2)
*/ Xét σA=’a’(R1 R2)
Q=R1 R2 A C B σA=’a’(R1 A C B
R2)
a 1 1 a 1 1
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
S = σB>=2(R2) A C B
Q-S A C B
b 1 2
ΠA,C(R1 R2) A C
a 1
a 2
b 1
a 3
R1 R2 A C B
a 1 1
a 2 1
b 1 2
a 3 1
b 1 1
Π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
ΠA,C(R2)
a 1
a 2
b 1
Hình 28: Thực hiện phép chiếu trước,
a hợp 3sau
Đọ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, 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