S
ố hóa bởi Trung tâm Học liệu
ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
NGUYỄN VĂN CHUNG
MÔ HÌNH TỐI ƢU HÓA TRUY VẤN HAI PHA
TRONG CƠ SỞ DỮ LIỆU VÀ ỨNG DỤNG
Chuyên ngành: Khoa học máy tính
Mã số: 60 48 01
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Ngƣời hƣớng dẫn khoa học: PGS.TS LÊ HUY THẬP
Thái Nguyên - 2013
i
S
ố hóa bởi Trung tâm Học liệu
LỜI CAM ĐOAN
Tôi xin cam đoan luận văn này là do bản thân tự nghiên cứu và thực hiện
theo sự hƣớng dẫn khoa học của thầy PGS. TS. Lê Huy Thập
Tôi hoàn toàn chịu trách nhiệm về tính pháp lý quá trình nghiên cứu khoa
học của luận văn này.
Ngƣời Cam Đoan
Nguyễn Văn Chung
ii
S
ố hóa bởi Trung tâm Học liệu
LỜI CẢM ƠN
Lời đầu tiên tôi xin gửi lời cảm ơn đến thầy giáo PGS. TS. Lê Huy Thập
đã định hƣớng, hƣớng dẫn và giúp đỡ tôi rất nhiều về mặt chuyên môn trong
quá trình tìm hiểu và thực hiện luận văn.
Tôi xin gửi lời biết ơn sâu sắc đến các thầy, các cô đã dạy dỗ và truyền
đạt những kinh nghiệm quý báu cho chúng tôi trong suốt hai năm cao học ở
trƣờng Đại học Công nghệ thông tin và truyền thông Thái Nguyên.
Cuối cùng, xin chân thành cảm ơn gia đình và bạn bè đã động viên, quan
tâm, giúp đỡ tôi hoàn thành khóa học và luận văn.
Thái nguyên, tháng 09 năm 2013
Tác giả
Nguyễn Văn Chung
iii
S
ố hóa bởi Trung tâm Học liệu
MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC CÁC KÝ HIỆU, VIẾT TẮT v
DANH MỤC CÁC BẢNG vi
DANH MỤC CÁC HÌNH VẼ vii
MỞ ĐẦU 1
1. Đặt vấn đề 1
2. Đối tƣợng và phạm vi nghiên cứu 1
3. Hƣớng nghiên cứu của đề tài 1
4. Những nội dung nghiên cứu chính 1
Chƣơng 1: CƠ SỞ LÝ THUYẾT 3
1.1. Giới thiệu về logic 3
1.2. Tổng quan về CSDL phân tán 9
1.2.1. Không gian tìm kiếm 10
1.2.2. Các chiến lƣợc tìm kiếm 13
1.2.3. Mô hình chi phí phân tán 15
1.2.4. Các dạng chi phí song song và mô hình chi phí song song trên bộ tối ƣu hóa
truy vấn 22
1.3. Kết luận chƣơng 1 25
Chƣơng 2: MÔ HÌNH TỐI ƢU HÓA TRUY VẤN HAI PHA 26
2.1. Mô hình tối ƣu hóa truy vấn hai pha JOQR 26
2.1.1. Cây truy vấn tiền xử lý 26
2.1.2. Cây toán tử 29
2.2. Tối ƣu hóa giai đoạn JOQR 31
iv
S
ố hóa bởi Trung tâm Học liệu
2.2.1. Cực tiểu hóa chi phí phân mảnh lại 32
2.2.2. Khả phân mảnh và toán tử cảm thuộc tính 34
2.2.3. Bài toán tối ƣu hóa 37
2.3. Kết luận chƣơng 2 48
Chƣơng 3: CHƢƠNG TRÌNH THỬ NGHIỆM 49
3.1. Ứng dụng tại trƣờng Cao đẳng kinh tế - kỹ thuật Vĩnh Phúc (Dạng demo) 49
3.1.1. Giới thiệu CSDL của trƣờng Cao đẳng kinh tế - kỹ thuật Vĩnh Phúc 49
3.1.2. Cực tiểu hóa chi phí phân mảnh lại CSDL tại mục 3.1.1 62
3.2. Kết luận chƣơng 3 66
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN CỦA LUẬN VĂN 67
TÀI LIỆU THAM KHẢO 68
v
S
ố hóa bởi Trung tâm Học liệu
DANH MỤC CÁC KÝ HIỆU, VIẾT TẮT
DBMS (Database management system)
ESPS (Executor Sever Process)
JOQR (Join Ordering and Query Rewriting)
LAN (Local Area Network)
QEP (Query Execution Plan)
SPJ (Selection Projection Joint)
SQL (Structured Query Language)
WAN (Wide area network)
TW (Total Work)
RT (Response Time)
MC (Memory Consumption)
vi
S
ố hóa bởi Trung tâm Học liệu
DANH MỤC CÁC BẢNG
Bảng 1-1. Bảng chân trị các phép toán mệnh đề 4
Bảng 1-2. Thứ tự ưu tiên của các phép toán 4
vii
S
ố hóa bởi Trung tâm Học liệu
DANH MỤC CÁC HÌNH VẼ
Hình 1-1. Quá trình tối ưu hoá vấn tin 9
Hình 1-2. Sơ đồ kết nối các quan hệ 11
Hình 1-3. Các cây nối tương đương 12
Hình 1-4. Các loại cây 13
Hình1–5. Xây dựng tối ưu hoá một cách đơn định theo kiểu quy hoạch động 14
Hình 1-6. Hành động của thể tối ưu hoá trong một chiến lược ngẫu nhiên hoá 15
Hình 1-7. Truyền dữ liệu trong câu vấn tin 17
Hình 2-1. Cây truy vấn tiền xử lý 27
Hình 2-2. Cây toán tử tương ứng với cây trong hình 2-1 31
Hình 2-3. Sơ đồ phân mảnh ngang dữ liệu tại các nút 33
Hình 2-4. Các cây truy vấn khác nhau về phân hoạch dữ liệu, đường nét đứt cho
thấy phải phân bố lại quan hệ 33
Hình 2-5. Cây toán tử tương ứng với câu truy vấn 37
Hình 2-6. Cây gốc và các phương án tô màu 39
Hình 2-7. Đồ thị vấn tin 42
Hình 2-8. Cây nối của đồ thị vấn tin trên hình 2-7 43
Hình 2-9. Ảnh hưởng của thứ tự phép nối đến chi phí phân mảnh ngang 43
Hình 3-1. Sơ đồ kết nối các quan hệ 53
Hình 3-2. Màn hình chính của chương trình 54
Hình 3-3. Cây truy vấn ban đầu của ví dụ 1 55
Hình 3-4. Cây sau khi sắp lại phép nối ví dụ 1 55
Hình 3-5. Màn hình nhập câu truy vấn 56
Hình 3-6. Câu truy vấn ban đầu và sau biểu diễn lại ví dụ 1 56
Hình 3-7. Kết quả của câu truy vấn ví dụ 1 57
Hình 3-8. Cây truy vấn ban đầu của ví dụ 2 58
viii
S
ố hóa bởi Trung tâm Học liệu
Hình 3-9. Cây sau khi sắp lại phép nối ví dụ 2 58
Hình 3-10. Giao diện câu truy vấn ban đầu và sau biểu diễn lại ví dụ 2 59
Hình 3-11. Kết quả của câu truy vấn ví dụ 2 59
Hình 3-12. Cây truy vấn ban đầu của ví dụ 3 60
Hình 3-13. Cây sau khi xếp lại phép nối của ví dụ 3 61
Hình 3-14. Giao diện câu truy vấn ban đầu và sau biểu diễn lại ví dụ 3 61
Hình 3-15. Kết quả của câu truy vấn ví dụ 3 62
Hình 3-16. Sơ đồ phân mảnh ngang dữ liệu tại các nút của ví dụ 1 62
Hình 3-17. Cây gốc và các phương án tô màu của ví dụ 1 63
Hình 3-18. Giao diện pha 2 của ví dụ 1 63
Hình 3-19. Giao diện kết quả pha 2 của ví dụ 1 64
Hình 3-20. Sơ đồ phân mảnh ngang dữ liệu tại các nút của ví dụ 2 64
Hình 3-21. Cây gốc và các phương án tô màu của ví dụ 2 65
Hình 3-22. Giao diện pha 2 của ví dụ 2 65
Hình 3-23. Giao diện kết quả pha 2 của ví dụ 1 66
1
S
ố hóa bởi Trung tâm Học liệu
MỞ ĐẦU
1. Đặt vấn đề
Tối ƣu hóa vấn tin là quá trình tìm một phƣơng án thực hiện câu vấn tin
QEP (Query Execution Plan) tối ƣu (theo nghĩa hạ thấp tối đa hàm chi phí,
hoặc cực đại hàm lợi ích ở một dạng nào đó). Tối ƣu câu truy vấn trong cơ sở
dữ liệu song song bằng mô hình tối ƣu hóa truy vấn hai pha bao gồm:
i. Sắp xếp lại thứ tự các phép nối
ii. Biểu diễn lại cây truy vấn.
Bộ tối ƣu hóa thực hiện hai bƣớc này để tạo ra một cây truy vấn tiền xử
lý, xác định những yếu tố nhƣ thứ tự thực hiện các phép toán và chiến lƣợc
thực hiện mỗi phép toán. Bộ tối ƣu sẽ triển khai các mô hình và giải thuật
song song để tìm kiếm một phƣơng án tốt nhất cho việc thi hành song song.
2. Đối tƣợng và phạm vi nghiên cứu
Các biểu thức logic
Cơ sở dữ liệu phân tán
Xử lý song song và phân tán
3. Hƣớng nghiên cứu của đề tài
Các dạng chi phí song song
Nghiên cứu mô hình tối ƣu hóa hai pha.
4. Những nội dung nghiên cứu chính
Luận văn đƣợc trình bày trong 3 chƣơng, có phần mở đầu, phần kết luận,
phần mục lục, phần tài liệu tham khảo.
Chƣơng 1: Cơ sở lý thuyết
Chƣơng 2: Mô hình tối ƣu hóa truy vấn hai pha
Chƣơng 3: Chƣơng trình thử nghiệm
Kết luận và hƣớng phát triển của luận văn
2
S
ố hóa bởi Trung tâm Học liệu
5. Phƣơng pháp nghiên cứu
Nghiên cứu kỹ các kiến thức, chủ đề có liên quan đến đề tài.
Nghiên cứu các mô hình chi phí song song và mô hình chi phí song
song trên bộ tối ƣu hóa truy vấn.
Nắm vững các kiến thức cơ bản của tối ƣu hóa hai pha.
6. Ý nghĩa khoa học của đề tài
Luận văn giúp cho việc tối ƣu hóa câu truy vấn phân tán bằng phƣơng
pháp hai pha.
3
S
ố hóa bởi Trung tâm Học liệu
Chƣơng 1: CƠ SỞ LÝ THUYẾT
1.1. Giới thiệu về logic
1.1.1. Khái niệm về mệnh đề và chân trị
Một mệnh đề là một phát biểu nào đó mà chỉ cho hai giá trị: True hoặc
False. Giá trị True, hoặc False của một mệnh đề đƣợc gọi là chân trị của mệnh
đề. Chân trị True đƣợc viết là 1, chân trị False đƣợc viết là 0
Ví dụ 1.1.1: "6 là số chẵn" - mệnh đề đúng nên chân trị 1.
"6 là số nguyên tố" - mệnh đề sai nên chân trị 0.
1.1.2. Mệnh đề sơ cấp
Là mệnh đề không thể phân nhỏ hơn đƣợc nữa - có thể nói mệnh đề sơ
cấp là một phát biểu đơn giản nhất.
Ví dụ 1.1.2: "Số chẵn chia hết cho hai".
Các mệnh đề sơ cấp thƣờng đƣợc gắn với các ký hiệu là các ký tự viết
thƣờng: p, q, r, mà ta gọi là các biến mệnh đề hay biến logic.
1.1.3. Mệnh đề phức hợp
Mệnh đề phức hợp là mệnh đề đƣợc tạo ra từ các mệnh đề sơ cấp hoặc
các mệnh đề phức hợp khác bằng cách dùng các từ liên kết, AND - "và", OR -
"hoặc",
Ví dụ 1.1.3: "Số 2 là số chẵn và là số nguyên tố" gồm 2 mệnh đề "Số 2 là
số chẵn" từ nối "và" và "Số 2 là số nguyên tố"
1.1.4. Các phép toán mệnh đề
(phủ định); (hội); (tuyển); (hoặc hay tổng trực giao); (kéo
theo); (kéo theo hai chiều), chân trị từng trƣờng hợp đƣợc cho trong
bảng 1-1:
4
S
ố hóa bởi Trung tâm Học liệu
Bảng 1-1. Bảng chân trị các phép toán mệnh đề
1.1.5. Thứ tự ƣu tiên của các phép toán logic
Thứ tự ƣu tiên của các phép toán logic đƣợc liệt kê theo mức ƣu tiên từ
trên xuống dƣới, từ trái sang phải ở bảng 1-2:
Bảng 1-2. Thứ tự ưu tiên của các phép toán
Ký hiệu phép toán
Nghĩa của phép toán
, ,
Phủ định
,
Hội, tuyển
,
Kéo theo, Kéo theo hai chiều
Ghi chú:
Nếu các phép toán trong cùng một dòng có thứ tự nhập nhằng hoặc
muốn chỉ ra mức ƣu tiên của phép toán thì cần bổ sung thêm dấu ( ).
Ví dụ 1.1.4:
qp
có nghĩa là
)q(p
.
Còn
rqp
để ƣu tiên phép toán hay cần cho thêm dấu () để chỉ rõ
sự ƣu tiên, chẳng hạn
r)q(p
.
1.1.6. Biểu thức logic
Biểu thức logic có thể nói chính là mệnh đề phức hợp, biểu thức logic
thƣờng đƣợc ký hiệu bởi các chữ in hoa
Ví dụ 1.1.5:
E =
s)(r)r)q( p
P
q
p
p q
p q
p q
p q
p q
p q
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
5
S
ố hóa bởi Trung tâm Học liệu
P = E, F G, (G H) ( G E), ; trong đó P, E, F, G, H là các biểu
thức logic.
Bảng chân trị của các biểu thức logic là bảng liệt kê chân trị có thể có
theo mọi khả năng chân trị của các biến mệnh đề có trong biểu thức
Hai biểu thức logic E và F đƣợc gọi là tƣơng đƣơng và viết E F khi và
chỉ khi E và F luôn có cùng chân trị.
Để kiểm tra xem hai biểu thức logic có tƣơng đƣơng với nhau hay không
chúng ta dựa vào bảng chân trị hay bằng phƣơng pháp chứng minh logic.
Ví dụ 1.1.6:
Cho hai biểu thức logic E = p q và F = p q thì E F.
Biểu thức logic E đƣợc gọi là hằng True nếu chân trị của E luôn luôn là
1, tức là E 1.
Ví dụ 1.1.7:
E = p p thì E là hằng đúng vì E 1.
Biểu thức logic E đƣợc gọi là hằng False nếu chân trị của E luôn luôn là
0, tức là E 0.
Ví dụ 1.1.8:
E = p p thì E 0.
Chú ý:
Theo định nghĩa E
1
F
1
khi và chỉ khi E
1
F
1
, điều này có thể viết
gọn nhƣ sau:
E
1
F
1
1.
Ví dụ 1.1.9:
E
1
= p p thì E
1
1.
E
1
= (p q) ( p q) thì E
1
1.
Quan hệ bắc cầu: Nếu E F và F G thì E G.
6
S
ố hóa bởi Trung tâm Học liệu
1.1.7. Các luật logic
i. Luật phủ định của phủ định
p p
ii. Luật giao hoán
p q q p
p q q p
iii. Luật kết hợp
p (q r) (p q) r
p (q r) (p q) r
iv. Luật phân phối
p (q r) (p q) (p r)
p (q r) (p q) (p r)
v. Luật Demorgan
(p q) p q
(p q) p q
vi. Luật về phản tử bù
p p 1
p p 0
vii. Luật kéo theo
p q p q
viii. Luật tƣơng đƣơng
p q (p q) (q p)
ix. Các luật đơn giản của phép tuyển
p p p
p 1 1
p 0 p
7
S
ố hóa bởi Trung tâm Học liệu
p (p q) p
x. Các luật đơn giản của phép hội
p p p
p 1 p
p 0 0
p (p q) p
1.1.8. Quy tắc thay thế tƣơng đƣơng
Cho E là một biểu thức logic, nếu thay thế một biểu thức con của nó bởi
một biểu thức tƣơng đƣơng với biểu thức con đó, biểu thức logic E' mới nhận
đƣợc sẽ tƣơng đƣơng với E
Ví dụ 1.1.10:
E = p q
Vì q q, do đó ta có thể thay thế q bởi q và đƣợc
E' = = p q
Dùng bảng chân trị cho E và E' ta sẽ thấy E E'.
1.1.9. Quy tắc bất biến đối với biểu thức logic hằng True
Cho E là một biểu thức logic hằng True, nếu thay thế một biến mệnh đề
p nào đó trong E bởi một biểu thức logic bất kỳ ta sẽ nhận đƣợc biểu thức
logic E' mới cũng là hằng True.
Ví dụ 1.1.11:
E = (p q) ( p q) thì E 1(E là hằng True).
Bây giờ ta thay thế q trong E bởi q r ta sẽ đƣợc:
E' = (p (q r)) ( p (q r)) theo quy tắc 2 ta cũng có E' 1.
1.1.10. Biểu thức hội cơ bản
Biểu thức logic F = F (p
1
, p
2
, , p
n
), trong đó p
i
(i =
n,1
) là các biến
mệnh đề sơ cấp, đƣợc gọi là biểu thức hội cơ bản, nếu:
8
S
ố hóa bởi Trung tâm Học liệu
F = q
1
q
2
q
n
: với q
i
= p
i
hoặc q
i
=
i
p
(i =
n,1
).
Ví dụ 1.1.12:
F(x, y, z) = x
y
z, trong đó x, y, z là các biến mệnh đề sơ cấp.
1.1.11. Biểu thức tuyển cơ bản
Biểu thức logic E = E (p
1
, p
2
, , p
n
), trong đó p
i
(i =
n,1
) là các biến
mệnh đề sơ cấp, đƣợc gọi là biểu thức tuyển cơ bản, nếu:
E = q
1
q
2
q
n
: với q
i
= p
i
hoặc q
i
=
i
p
(i =
n,1
).
Ví dụ 1.1.13:
F(x, y, z) = x
y
z, trong đó x, y, z là các biến mệnh đề sơ cấp.
1.1.12. Biểu thức tuyển chính tắc
Biểu thức logic E = E (p
1
, p
2
, , p
n
), trong đó p
i
(i =
n,1
) là các biến
mệnh đề sơ cấp, đƣợc gọi là dạng tuyển chính tắc, nếu:
E = E
1
E
2
E
n
: với E
i
(i =
n,1
) là biểu thức hội cơ bản của các p
i
Ví dụ 1.1.14:
E(x, y, z) = (x
y
z) (
x
y z) (x y z), là biểu thức tuyển
chính tắc vì E
1
= (x
y
z), E
2
= (
x
y z), E
3
= (x y z) là các biểu
thức hội cơ bản
Định lý 1.1.1:
Mọi biểu thức logic E (p
1
, p
2
, , p
n
) đều tƣơng đƣơng với một biểu thức
tuyển chính tắc duy nhất. Tức E (p
1
, p
2
, , p
n
) E
1
E
2
E
m
(duy
nhất) với E
i
(i =
m,1
) là các biểu thức hội cơ bản.
E
i
= q
1
q
2
q
n
với q
i
= p
i
hoặc q
i
=
i
p
(i =
n,1
).
1.1.13. Biểu thức hội chính tắc
Biểu thức logic F = F (p
1
, p
2
, , p
n
), trong đó p
i
(i =
n,1
) là các biến
mệnh đề sơ cấp, đƣợc gọi là dạng hội chính tắc, nếu:
9
S
ố hóa bởi Trung tâm Học liệu
F = F
1
F
2
F
n
: với F
i
(i =
n,1
) là biểu thức tuyển cơ bản của các p
i
Ví dụ 1.1.15:
F(p
1
, p
2
, p
3
) = (p
1
2
p
p
3
) (
1
p
p
2
p
3
) (p
1
p
2
p
3
), là biểu thức
tuyển chính tắc vì F
1
= (p
1
2
p
p
3
), F
2
= (
1
p
p
2
p
3
), F
3
= (
1
p
p
2
p
3
) là
các biểu thức tuyển cơ bản.
Định lý 1.1.2:
Mọi biểu thức logic F (p
1
, p
2
, , p
n
) đều tƣơng đƣơng với một biểu thức
hội chính tắc duy nhất. Tức F (p
1
, p
2
, , p
n
) F
1
F
2
F
m
(duy nhất)
với F
i
(i =
m,1
) là các biểu thức tuyển cơ bản.
E
i
= q
1
q
2
q
n
với q
i
= p
i
hoặc q
i
=
i
p
(i =
n,1
).
1.2. Tổng quan về CSDL phân tán
Tối ƣu hóa vấn tin là tìm phƣơng án thực hiện câu vấn tin để tiêu tốn ít
nhất thời gian hoặc kinh phí (một hàm mục tiêu nào đó). Thể tối ƣu hóa vấn
tin, là một phần mềm chịu trách nhiệm thực hiện tối ƣu hóa câu vấn tin, nó
đƣợc tạo ra bới ba thành phần: Không gian tìm kiếm, mô hình chi phí và
chiến lƣợc tìm kiếm (xem hình l-1).
Hình 1-1. Quá trình tối ưu hoá vấn tin
CÂU VẤN TIN
QEP TỐT NHẤT
QEP TƢƠNG ĐƢƠNG
Phƣơng pháp
tìm kiếm
Qui tắc biến đổi
câu vấn tin
Mô hình chi phí,
hay hàm mục
tiêu
Tạo ra không gian
tìm kiếm
10
S
ố hóa bởi Trung tâm Học liệu
Không gian tìm kiếm là tập các phƣơng án có thể thực hiện câu vấn tin.
Những phƣơng án này là tƣơng đƣơng, theo nghĩa là chúng sinh ra cùng một
kết quả nhƣng khác nhau về cách thực hiện. Do khác nhau về cách thực hiện vì
thế khác nhau về hiệu năng. Không gian tìm kiếm thu đƣợc bằng cách áp dụng
các qui tắc biến đổi, chẳng hạn những qui tắc của phép toán đại số quan hệ.
Mô hình chi phí làm nhiệm vụ tiên đoán chi phi của một phƣơng án thực
hiện đã cho. Để làm điều này, mô hình chi phí phải có đủ thông tin cần thiết
về môi trƣờng thực hiện phân tán.
Chiến lƣợc tìm kiếm sẽ tìm trong không gian tìm kiếm để chọn ra
phƣơng án tốt nhất dựa theo mô hình chi phí. Nó xác định các phƣơng án nào
cần đƣợc kiểm tra và theo thứ tự nào. Chi tiết về môi trƣờng (tập trung hay
phân tán) đƣợc ghi nhận trong không gian tìm kiếm và mô hình chi phí.
1.2.1. Không gian tìm kiếm
Không gian tìm kiếm là tập các QEP biểu diễn cho câu vấn tin. Các QEP
là tƣơng đƣơng, theo nghĩa chúng sinh ra cùng một kết quả nhƣng khác nhau
ở thứ tự thực hiện các thao tác cài đặt, vì thế sẽ khác nhau về hiệu năng.
Không gian tìm kiếm thu đƣợc bằng cách áp dụng các qui tắc biến đổi. Mô
hình (hàm) chi phí đƣợc dùng để chỉ ra chi phí của QEP tƣơng ứng. Chiến
lƣợc tìm kiếm làm nhiệm vụ tìm kiếm, khám phá không gian tìm kiếm và chọn
ra QEP tốt nhất dựa theo mô hình chi phí. Nó xác định xem QEP nào đƣợc
kiểm tra và theo thứ tự nào. Một QEP tƣơng đƣơng với một cây toán tử.
Cây toán tử là một đồ thị vô hƣớng, không chu trình, đƣợc dùng để thể
hiện một câu vấn tin bậc thấp (Đại số quan hệ), gốc là các trƣờng nằm sau
SELECT, lá là các quan hệ cơ sở nằm sau FROM, và các nút là các phép toán
nằm sau WHERE nhƣng đƣợc chuyển sang dạng phép toán đại số quan hệ.
Cách thực hiện các phép toán trên cây theo hƣớng từ lá về gốc.
11
S
ố hóa bởi Trung tâm Học liệu
Để nêu bật các đặc trƣng của thể tối ƣu hoá vấn tin, chúng ta thƣờng tập
trung nghiên cứu các cây nối là loại cây toán tử với các phép toán nối hoặc
phép toán tích Descartes hoặc phép toán hợp.
Ví dụ 1.2.1:
Xét cơ sở dữ liệu của công ty, với các quan hệ (hình 1-2) nhƣ sau:
Hình 1-2. Sơ đồ kết nối các quan hệ
Trong đó:
Quan hệ PROJ: Projects - Các dự án
PNO: Mã dự án
PNAME: Tên dự án
BUDGET: Ngân sách dự án
LOC: Location - Nơi triển khai dự án
Quan hệ PAY: Payments - Chi trả lương
TITLE - Trình độ chuyên môn
SAL: Salary - Lƣơng
Quan hệ EMP: Employees - Nhân công
ENO: Mã nhân công
ENAME: Tên nhân công
TITLE - Trình độ chuyên môn
12
S
ố hóa bởi Trung tâm Học liệu
Quan hệ ASG: Assignments - Phân công công việc
ENO, PNO
RESP: Responsibility - Đảm trách (Nhiệm vụ)
DUR: Duration - Thời gian làm việc
Xét câu vấn tin “Cho biết tên nhân viên đang tham gia một dự án nào đó”
SELECT ENAME
FROM EMP , ASG , PROJ
WHERE (EMP.ENO = ASG.ENO)
AND (ASG.PNO = PROJ.PNO)
Câu vấn tin này sinh ra ba cây nối tƣơng đƣơng ở hình 1-3
Hình 1-3. Các cây nối tương đương
Với câu vấn tin đã cho, số cây toán tử tƣơng đƣơng sẽ rất nhiều có thể
lên tới O(n!) với n quan hệ, nên ngƣời ta thƣờng dùng các phƣơng pháp
heuristic chẳng hạn: thực hiện phép chọn và chiếu khi truy xuất đến các quan
hệ cơ sở, hoặc tránh lấy các cây có tích Descartes (tức là bỏ cây c trong hình
1-3, vì phép tích Descartes tạo ra nhiều bộ).
Một cây toán tử đƣợc gọi là tuyến tính nếu tại mỗi nút toán tử có ít nhất
một toán hạng là một quan hệ cơ sở (hình 1-4a).
PNO
ENO
ENO
PNO
ENO, PNO
(c)
ASG
PROJ
EMP
EMP
ASG
PROJ
(a)
(b)
PROJ
EMP
ASG
13
S
ố hóa bởi Trung tâm Học liệu
Một cây xum xuê thì tổng quát hơn và có thể có các nút toán tử không có
quan hệ cơ sở làm toán hạng, nghĩa là các toán hạng đều là quan hệ trung gian
(hình 1-4b).
Nếu chỉ xét các cây tuyến tính, kích thƣớc của không gian tìm kiếm sẽ
đƣợc rút gọn lại O(2
N
). Tuy nhiên cây xum xuê sẽ rất tiện lợi khi thực hiện
song song trong môi trƣờng phân tán.
Nếu chỉ xét cây tuyến tính, thì kích thƣớc không gian tìm kiếm chỉ còn
O(2
N
) với N quan hệ. Trong môi trƣờng phân tán cây xum xuê rất có lợi cho
việc thực hiện song song.
Hình 1-4. Các loại cây
1.2.2. Các chiến lƣợc tìm kiếm
Quy hoạch động. Chiến lƣợc tìm kiếm tối ƣu hoá vấn tin sử dụng nhiều
nhất là quy hoạch động với tính chất đơn định. Chiến lƣợc đơn định tiến hành
bằng cách xây dựng các QEP nhƣ sau: Bắt đầu từ các quan hệ cơ sở sau đó
nối thêm quan hệ tại mỗi bƣớc cho đến khi thu đƣợc tất cả các QEP có thể có.
Hình 1-5 cho thấy cách quy hoạch động xây dựng (đơn định) tất cả các QEP
có thể có theo chiều ngang trƣớc khi nó chọn ra QEP tốt nhất.
R
3
R
4
R
3
R
4
R
2
R
1
R
1
R
2
(a) Cây tuyến tính
(b) Cây xum xuê
14
S
ố hóa bởi Trung tâm Học liệu
Hình1–5. Xây dựng tối ưu hoá một cách đơn định theo kiểu quy hoạch động
Để hạ thấp chi phí tối ƣu hoá, trong quá trình xây dựng phƣơng án có thể
có, một phƣơng án không có khả năng dẫn đến QEP tối ƣu sẽ đƣợc xén bỏ.
Ngƣợc lại chiến lƣợc đơn định sẽ xét QEP theo chiều sâu.
Việc dùng quy hoạch động và các phƣơng án trên bảo đảm tìm ra tất cả
các QEP tuy nhiên với chi phí cao, vì thế ngƣời ta đang tập trung vào lối tiếp
cận chiến lƣợc ngẫu nhiên hoá (randomised strategy) để làm giảm độ phức tạp
của tối ƣu hoá, nhƣng tất nhiên là không đảm bảo tìm đƣợc phƣơng án tối ƣu
toàn cục.
Ngẫu nhiên hoá. Quy trình tiếp cận chiến lƣợc ngẫu nhiên hoá nhƣ sau:
Trƣớc tiên một hoặc nhiều QEP khởi đầu đƣợc xây dựng trực tiếp (theo
ý muốn chủ quan), sau đó cải thiện phƣơng án bằng cách thăm dò các lân cận
của QEP đã có, ví dụ ở hình 1-6 là một cách biến đổi điển hình bằng cách
hoán đổi hai quan hệ toán hạng đƣợc chọn ngẫu nhiên từ QEP hình 1-6(a)
sang QEP hình 1-6(b).
15
S
ố hóa bởi Trung tâm Học liệu
Hình 1-6. Hành động của thể tối ưu hoá trong một chiến lược ngẫu nhiên hoá
1.2.3. Mô hình chi phí phân tán
1.2.3.1. Hàm chi phí (hàm mục tiêu)
Hàm chi phí có thể là tổng thời gian, hoặc là một chi phí nào đó, nếu
hiểu theo thời gian thì hàm chi phí có thể là:
Total_Time = T
CPU
* #insts + T
I/O
* I/Os + T
MSG
* #msgs + T
TR
* #bytes
Hai thành phần đầu là thời gian xử lý cục bộ, trong đó T
CPU
là thời gian xử
lý một chỉ thị (lệnh) của CPU và #insts là số chỉ thị; T
I/O
là thời gian cho một
xuất, nhập đĩa và I/Os số lần xuất nhập đĩa; T
MSG
là thời gian cố định để khởi
hoạt và nhận một thông báo và #msgs là số thông báo; T
TR
là thời gian cần để
truyền một đơn vị dữ liệu từ vị trí này sang vị trí khác, đơn vị dữ liệu ở đây tính
theo byte (#bytes là số đơn vị dữ liệu), nhƣng cũng có thể tính theo những đơn
vị khác. Những nghiên cứu đầu tiên cho thấy trên WAN, tỷ số giữa thời gian
truyền và thời gian xuất nhập là 20:1, vì vậy đa phần các hệ DBMS phân tán
đƣợc thiết kế trên WAN đều bỏ qua chi phí xử lý cục bộ, hơn nữa chi phí T
MSG
* #msgs cũng đƣợc xem là nhƣ nhau và chúng ta giả thiết T
TR
là một giá trị
không đổi. Điều này có thể không đúng trong các mạng WAN, vì khoảng cách
giữa các vị trí không bằng nhau. Tuy nhiên giả thiết ấy làm đơn giản quá trinh
tối ƣu hóa rất nhiều. Vì thế thời gian truyền #bytes dữ liệu từ vị trí này đến vị
trí khác đƣợc giả thiết là một hàm tuyến tính theo #bytes:
R
2
R
3
(a)
(b)
R
1
R
3
R
2
R
1
16
S
ố hóa bởi Trung tâm Học liệu
CT(#bytes) = T
MSG
+ T
TR
* #byte
Chi phí nói chung đƣợc diễn tả theo đơn vị thời gian, và từ đó cũng có
thể chuyển thành đơn vị tính toán khác nhƣ tiền tệ chẳng hạn.
Topo mạng có ảnh hƣởng rất lớn đến tỷ số giữa các thành phần này.
Trong mạng WAN và Internet, thời gian truyền thông thƣờng chiếm đa phần.
Tuy nhiên trong các mạng LAN thì vì tốc độ lớn nên thành phần truyền thông
cân bằng hơn. Vì thế phần lớn các hệ DBMS phân tán đƣợc thiết kế trên các
mạng WAN đều bỏ qua chi phí xứ lý cục bộ và tập trung vào vấn đề cực tiểu
hóa chi phí truyền. Ngƣợc lại các DBMS phân tán đƣợc thiết cho mạng LAN
đều xét đến cả ba thành phần chi phí này. Các mạng nhanh hơn, cả loại WAN
lẫn LAN thiên về chi phí truyền khi tất cả mọi thứ khác đều nhƣ nhau. Tuy
nhiên thời gian truyền vẫn là một yếu tố chiếm đa phần trong các mạng WAN
và lnternet bởi vì dữ liệu cần phải đƣợc di chuyển đi đến các vị từ xa hơn.
Khi thời gian đáp ứng vấn tin là hàm mục tiêu của thể tối ƣu hoá, chúng
ta cần phải xét đến vấn đề xử lý cục bộ song song và truyền song song. Công
thức tổng chi phí là:
Total_time = T
CPU
* seq_#insts + T
I/O
* seg_#I/Os
+ T
MSG
* seg_#msgs + T
TR
* seg_#bytes
trong đó seq
_
#x, với x có thể là số các chỉ thị (insts), số các xuất nhập I/O, số
các thông báo (msgs) hoặc số bytes. Ở đây mọi xử lý truyền dữ liệu thực hiện
song song đang đƣợc bỏ qua.
Ví dụ 1.2.2:
Chúng ta minh họa sự khác biệt giữa tổng chi phí và thời gian đáp ứng qua
ví dụ ở hình 1-7, trong đó tổng thời gian đƣợc tính tại vị trí 3, dữ liệu đƣợc lấy
từ vị trí 1 và 2. Để đơn giản, chúng ta giả sử rằng chỉ xét đến chi phí truyền.