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.. Số hóa bởi T
Trang 1Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
ĐẠ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
Trang 2Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
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
Trang 3Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
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
Trang 4Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
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
Trang 5Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
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
Trang 6Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
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)
Trang 7Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
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
Trang 8Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
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
Trang 9Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
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
Trang 10Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
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
Trang 11Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
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
Trang 12Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
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.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
Trang 13Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
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
Trang 14Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
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à
Trang 15Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
Trang 16Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
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 (p1, p2, ., pn), trong đó pi (i = 1 ,n) 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:
Trang 17Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
F = q1 q2 qn : với qi = pi hoặc qi = pi (i = 1 ,n)
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 (p1, p2, ., pn), trong đó pi (i = 1 ,n) 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:
Định lý 1.1.1:
Mọi biểu thức logic E (p1, p2, , pn) đều tương đương với một biểu thức tuyển chính tắc duy nhất Tức E (p1, p2, ., pn) E1 E2 Em (duy nhất) với Ei (i = 1 ,m) là các biểu thức hội cơ bản
Ei = q1 q2 qn với qi = pi hoặc qi = pi (i = 1 ,n)
1.1.13 Biểu thức hội chính tắc
Biểu thức logic F = F (p1, p2, ., pn), trong đó pi (i = 1 ,n) là các biến mệnh đề sơ cấp, được gọi là dạng hội chính tắc, nếu:
Trang 18Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
F = F1 F2 Fn : với Fi (i = 1 ,n) là biểu thức tuyển cơ bản của các pi
Ví dụ 1.1.15:
F(p1, p2, p3) = (p1 p2 p3) (p1 p2 p3) (p1 p2 p3), là biểu thức tuyển chính tắc vì F1 = (p1 p2 p3), F2 = (p1 p2 p3), F3 = (p1 p2 p3) 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 (p1, p2, , pn) đều tương đương với một biểu thức hội chính tắc duy nhất Tức F (p1, p2, , pn) F1 F2 Fm (duy nhất) với Fi (i = 1 ,m) là các biểu thức tuyển cơ bản
Ei = q1 q2 qn với qi = pi hoặc qi = pi (i = 1 ,n)
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
Trang 19Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
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
Trang 20Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
Để 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ệ
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
Trang 21Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
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)
Trang 22Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
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(2N
) 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(2N) 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
Trang 23Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
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)
Trang 24Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
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
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í TMSG
* #msgs cũng đƣợc xem là nhƣ nhau và chúng ta giả thiết TTR 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:
Trang 25Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
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 = TCPU * seq_#insts + TI/O * seg_#I/Os
+ TMSG * seg_#msgs + TTR * 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
Trang 26Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
Hình 1-7 Truyền dữ liệu trong câu vấn tin
Giả sử rằng TMSG và TTR được diễn tả theo đơn vị thời gian Tổng chi phí truyền x đơn vị dữ liệu từ vị trí 1 đén vị trí 3 và y đơn vị dữ liệu từ vị tri 2 đến
vị trí 3 là:
Total_time = 2 * TMSG + TTR * (x + y)
Thời gian đáp ứng cho câu vấn tin này có thể tính xấp xỉ là:
Total_time = max {TMSG + TTR * x , TMSG + TTR * y }
bởi vì các thao tác truyền dữ liệu được thực hiện song song
Hạ thấp tối đa thời gian đựợc thực hiện bằng cách làm tăng mức độ thực hiện song song Tuy nhiên điều này không có nghĩa là tổng thời gian cũng được hạ thấp Ngược lại nó có thể còn làm tăng tổng thời gian, ví dụ như
do tăng xử lý song song cục bộ và truyền song song Hạ thấp tổng thời gian cho thấy là đã cải thiện được việc sử dụng tài nguyên, vì thế làm tăng lưu lượng của hệ thống Trong thực hành cần cân đối cả hai thời gian này
1.2.3.2 Số liệu thống kê cơ sở dữ liệu
Tác nhân chính ảnh hưởng đến hiệu quả hoạt động của một chiến lược thực hiện là kích thước các quan hệ trung gian được tạo ra Khi một phép toán tiếp theo nằm tại một vị trí khác, quan hệ trung gian phải được di chuyển đến
đó Vì thế chúng ta phải ước lượng kích thước của các kết quả trung gian của các phép toán đại số quan hệ nhằm giảm thiểu lượng dữ liệu phải truyền Việc ước lượng này dựa trên thông tin thống kê về các quan hệ cơ sở và các công
Vị trí 2
Vị trí 1
Vị trí 3
Trang 27Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
thức để dự đoán lực lượng của các kết quả Dĩ nhiên là có những được mất giữa tính chính xác của các số liệu thống kê và chi phí quản lý chúng, số liệu càng chính xác, chi phí càng cao
Kích thước của một quan hệ R(A) | A = {A 1 , A 2 , …, A n } phụ thuộc vào các
yếu tố sau:
i Đối với mỗi thuộc tính A i , chiều dài theo số bytes được ký hiệu là length(A i ) | i = i,n và đối với mỗi thuộc tính A i của mảnh R j số lượng các giá trị phân biệt của A i là lực lượng khi chiếu mảnh R j lên A i được ký hiệu là card( Ai (R j ))
ii Với thuộc tính A i , trên một tập giá trị sắp thứ tự, giá trị lớn nhất được
ký hiệu là max(A i ), nhỏ nhất là min(A i )
iii Miền của thuộc tính A i là dom(A i ), lực lượng của miền là card(dom(A i ) Giá trị này cho biết số lượng các giá trị duy nhất trong dom[a i ]
iv Số lượng bộ của mỗi mảnh R j được ký hiệu là card(R j )
Ký hiệu SFj là hệ số chọn nối của quan hệ của R và S, nó được xác định như sau:
SF j = card(R S) ; rõ ràng 0 SF j 1
card(R)*card(S) Chẳng hạn hệ số chọn nối 0.5 tương ứng với một quan hệ nối cực lớn, trong khi đó hệ số 0.001 tương ứng với một quan hệ khá nhỏ Chúng ta nói rằng nối có
độ chọn kém trong trường hợp đầu và độ chọn tốt trong tường hợp sau
Dữ liệu thống kê này rất có ích cho việc dự đoán kích thước quan hệ trung gian Cần nhớ rằng, chúng ta đã định nghĩa kích thước của một quan hệ trung gian R như sau:
size(R) = card(R) * 1ength(R)
Trong đó card(R) là số bộ của R còn length(R) là chiều dài (theo byte) của một bộ của R, được tính là tổng chiều dài của các thuộc tính của R Việc
Trang 28Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
ước lượng card(R), số lượng các bộ trong R, đòi hỏi phải sử dụng các công thức được cho trong phần tiếp theo
1.2.3.3 Ước lượng của các kết quả trung gian
Dữ liệu thống kê rất có ích khi đánh giá lực lượng của các kết quả trung gian Hai giả thiết đơn giản thường được đưa ra về CSDL Phân phối của các giá trị thuộc tính trong một quan hệ được giả định là thống nhất, và tất cả mọi thuộc tính đều độc lập, theo nghĩa là giá trị của một thuộc tính không ảnh hưởng đến giá trị của các thuộc tính khác Hai giả thiết này thường không đúng trong thực tế, tuy nhiên chúng làm cho bài toán dễ giải quyết hơn Trong những đoạn sau, chúng ta trình bày các công thức ước lượng lực lượng các kết quả của các phép toán đại số cơ bản (phép chọn, phép chiếu, tích Descartes, nối, nối
nửa, hợp, và hiệu) Quan hệ toán hạng được ký hiệu là R và S Hệ số chọn của
một phép toán, nghĩa là tỷ lệ các bộ của quan hệ toán hạng có tham gia vào kết
quả của phép toán đó được biểu thị là SF OP , với OP biểu thị cho phép toán Ước lượng qua phép chọn
Lực lượng của phép chọn là:
Card( F (R)) = SF S (F)*card(R) Trong đó SF S (F) phụ thuộc vào công thức chọn và có thể được tính như sau
Ký hiệu p(A i ) và p(A j ) biểu thị cho vị từ trên thuộc tính Ai và A j
SF S (A = value) =
)) ( (
SF S (p(A i ) p(A j ) = SF S (p(A i ))*SF S (p(A j ))
SF S (p(Ai) p(Aj)= SF S (p(Ai)) + SF S (p(Aj)) - SF S (p(Ai))*SF S (p(Aj))
SF S (Ai {value}) = SF S (A = value)*card({value})
Trang 29Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
Ước lượng qua phép chiếu
Chiếu có thể loại bỏ hoặc không loại bỏ các bộ giống nhau Ớ đây chúng
ta xem như chiếu có kèm theo cả việc loại bỏ này Một phép chiếu bất kỳ rất khó ước lượng chính xác bởi vì mối tương quan giữa các thuộc tính được chiếu thường không được biết Tuy nhiên có hai trường hợp đặc biệt có ích
nhưng việc ước lượng hoàn toàn tầm thường Nếu chiếu của quan hệ R dựa trên một thuộc tính A duy nhất, lực lượng chỉ là số bộ thu được khi tthực hiện phép chiếu Nếu một trong các thuộc tính chiếu là khóa của R thì:
card( A (R) = card(R) Ước lượng qua tích Descartes
Lực lượng của tích Descartes của quan hệ R và S là
card(R*S) = card(R)*card(S) Ước lượng qua phép nối
Không có một phương pháp tổng quát nào để tính lực lượng của nối mà không cần thêm thông tin bổ sung Cận trên của lực lượng cho nối là lực lượng của tích Descartes Một số hệ thống, chẳng hạn như hệ INGRES phân tán sử dụng cận trên này, đó một ước lượng hơi quá cao R* sử dụng thương
số của cận trên này với một hằng số, phản ảnh sự kiện là kết quả nối luôn nhỏ hơn tích Descartes Tuy nhiên có một trường hợp xảy ra khá thường xuyên
nhưng việc ước lượng lại khá đơn giản Nếu R được thực hiện nối bằng với S trên thuộc tính A của R và thuộc tính B của S, trong đó A là khóa của quan hệ
R và B là khóa ngoại của quan quan hệ S thì lực lượng của kết quả có thể tính
xấp xỉ là
card(R A=B S) = card(S) bởi vì mỗi bộ của S khớp với tối đa một bộ của R Hiển nhiên là điều này cũng đúng nếu B là khóa của S và A là khóa ngoại của R Tuy nhiên ước lượng này là cận trên bởi vì nó giả sử rằng mỗi bộ của S đều tham gia vào
Trang 30Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
trong nối Đối với những nối quan trọng khác, chúng ta cần duy trì hệ số chọn
nối SF J như thành phần của các thông tin thống kê Trong trường hợp đó lực
lượng của kết quả là
card(R S = SF J * Card(R) * card(S) Ước lượng qua nối nửa
Hệ số chọn của nối nửa giữa R theo S cho bởi tỷ lệ phần trăm các bộ của
R có nối với các bộ của S Một xấp xỉ cho hệ số chọn nối nửa được đưa ra
trong [Hevner and Yao, 1979] là
SFSJ(R AS) =
))((
))((
A dom card
S
Công thức này chỉ phụ thuộc vào thuộc tính nối A của S Vì thế nó thường được gọi là hệ số chọn của thuộc tính A của S, ký hiệu là SFsJ(s.A),
Và là hệ số chọn của S.A trên bất kỳ một thuộc tính nào có thể nối được với
nó Vì thế lực lượng của nối nửa đựợc cho bởi:
card(R AS) = SF SJ (S.A) * card(R)
Xấp xỉ này có thể được xác nhận trên một trường hợp rất thường gặp,
đó là khi R.A là khóa ngoại của S (S.A là khóa chính) Trong trường hợp này,
hệ số chọn nối nửa là bằng 1 bởi vì card( A(S)) = card(dom[A]) cho thấy rằng lực lượng của nối nửa là card(R)
Ước lượng qua phép hợp
Rất khó ước lượng lực lượng trong hợp của R và S bởi vì các bộ giống
nhau bị loại bỏ Chúng ta chỉ trình bày công thức đơn giản cho các cận trên và dưới tương ứng là:
Trang 31Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
Ước lượng qua phép hiệu
Giống như phép hợp, chúng ta chỉ trình bày các cận trên và dưới
Cận trên của card(R – S) là card(R),
Còn cận dưới là 0
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
Trong môi trường song song, hai loại chi phí làm ảnh hưởng đến thời gian trả lời câu truy vấn là:
- Trước tiên là việc xử lý của bộ thực hiện SQL
- Tiếp theo là những tiến trình được sinh ra từ bộ thực hiện, gọi là ESPS (Executor Sever Process)
- Sau cùng là tiến trình xử lý đĩa của các phép toán trong truy vấn
Chi phí khởi động sinh ra khi khởi động công việc Nó bao gồm chi phí để nhận được một tập các tiến trình và chuyển mỗi tiến trình một mô tả vai trò của
nó trong việc thực hiện truy vấn Mô tả này bao gồm một phần của phương án truy vấn mà tiến trình sẽ thực hiện và các đặc điểm nhận dạng của các tiến trình
mà nó sẽ trao đổi thông tin Thực tế cho thấy rằng chi phí khởi động là không đáng kể nếu các tiến trình có thể sử dụng lại mà không phải tạo mới
1.2.4.2 Chi phí truyền thông
Chi phí chuyển giao dữ liệu giữa các tiến trình Ba loại truyền thông giữa các tiến trình
Trang 32Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
Truyền thông cục bộ: Truyền thông cục bộ xảy ra khi dữ liệu ra của tiến
trình này gửi cho một tiến trình khác dùng dữ liệu này để xử lý trên cùng một
bộ xử lý Truyền thông cục bộ được thực hiện như việc sao chép qua không gian địa chỉ từ bộ nhớ đến bộ nhớ
Truyền thông từ xa: Truyền thông từ xa xảy ra khi dữ liệu ra của tiến
trình này gửi cho một tiến trình khác dùng dữ liệu này để xử lý trên các bộ xử
lý khác nhau Trong hệ thống mạng, truyền thông từ xa chia dữ liệu thành các gói rồi vận chuyển thông qua mạng truyền thông
Truyền thông phân bố lại: Truyền thông phân bố lại bao gồm một tập
các bộ sản xuất gửi dữ liệu đến một tập các bộ tiêu thụ dữ liệu
1.2.4.3 Mô hình chi phí song song
Quá trình song song hóa là phân phối dữ liệu cho nhiều vị trí, phân chia công việc cho nhiều bộ xử lý Khi đã biết cách ước lượng chi phí cho mỗi phép toán cơ bản thì chi phí thời gian của xử lý song song sẽ bằng 1/n (trong đó n là số bộ xử lý) chi phí thời gian xử lý tuần tự của cùng một phép toán trên một bộ xử lý
Chi phí thời gian có thể ước lượng bởi tổng sau:
Tpart + Tasm + max {T0 , T1, , T n-1}
Trong đó:
Tpart là thời gian phân hoạch các quan hệ
Tasm là thời gian hợp thành kết quả sau cùng
Ti (i = 0, 1, , n-1) là thời gian cần cho tính toán ở bộ xử lý thứ i
Với điều kiện không xảy ra hiện tượng mất cân bằng tải, chi phí tranh chấp tài nguyên không đáng kể thì chi phí của các Ti được xác định bằng các
kỹ thuật tương tự như trường hợp xử lý tuần tự
1.2.4.4 Mô hình chi phí trên bộ tối ưu hóa truy vấn
Chi phí thực hiện một phương án tối ưu của một câu truy vấn song song trên bộ tối ưu hóa truy vấn được xác định bởi ba thành phần
Trang 33Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
i Chi phí tổng công việc TW (Total Work)
ii Chi phí thời gian trả lời RT (Response Time)
iii Chi phí không gian nhớ MC (Memory Consumption)
Hàm chi phí là tổ hợp của hai thành phần đầu, thành phần thứ ba cho biết kích thước bộ nhớ cần cho việc thực thi phương án Trong thực tế, để ước lượng chi phí một phương án người ta thường ước lượng hai thành phần đầu Khó khăn chính trong đánh giá chi phí là xác định giá trị cho TW và RT Những đại lượng này phụ thuộc vào trạng thái của hệ thống (ví dụ tải trọng của hệ thống và số lượng truy vấn được đặt ra đối với hệ thống) mà về mặt lý thuyết chỉ xác định được vào lúc thực hiện Tính toán chi phí truy vấn trong môi trường đa xử lý không thể thực hiện bằng tối ưu hóa tĩnh Nghĩa là, tổng chi phí được tính không thể được mô tả bằng một công thức rõ ràng trước khi biên dịch - như trong hệ phân tán Ở đây, việc xác định chi phí phức tạp hơn nhiều vì nó phải tính đến dữ liệu được chuyển tải theo cơ chế song song dạng ống
Thời gian trả lời của một phương án p, được xếp lịch theo các pha, được tính như sau:
RT (p) =
p ph
ph
Op respTime(O p) (max + pipe_delay(Op) + store_delay(ph)) Trong đó:
- ph là số hiệu pha
- Op ký hiệu toán tử
- respTime(Op) là thời gian trả lời của Op
- pipe_delay(Op) là khoảng thời gian chờ đợi của Op để bên sản xuất chuyển các bộ kết quả đầu tiên, nó bằng 0 nếu dữ liệu vào của Op đã có sẵn
- store_delay(ph) là thời gian cần thiết để lưu kết quả của pha ph, nó bằng 0 nếu ph là pha cuối cùng, với giả thiết rằng kết quả phải được chuyển ngay khi chúng mới sinh ra
Trang 34Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
1.3 Kết luận chương 1
Các khái niệm về mệnh đề, các phép toán mệnh đề, biểu thức logic, không gian tìm kiếm, các chiến lược tìm kiếm, mô hình chi phí phân tán, các dạng chi phí song song, mô hình chi phí song song trên bọ tối ưu hóa truy vấn
…v.v đã được trình bày, là những kiến thức cơ sở cần thiết cho việc mở rộng nghiên cứu trong các chương tiếp theo của luận văn
Trang 35Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
Chương 2: MÔ HÌNH TỐI ƯU HÓA TRUY VẤN HAI PHA
2.1 Mô hình tối ưu hóa truy vấn hai pha JOQR
Pha đầu:JOQR (Join Ordering and Query Rewriting)
i Sắp xếp lại thứ tự các phép nối
ii Biểu diễn lại câu 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.1.1 Cây truy vấn tiền xử lý
Cây truy vấn tiền xử lý làm nhiệm vụ giải thích phương án thi hành một câu SQL: Cho biết thứ tự thực hiện mỗi phép toán, phương pháp tính toán của mỗi toán tử Mỗi nút của cây là một hay nhiều phép toán đại số quan hệ, mỗi nút lá là một quan hệ cơ sở Phần ghi chú trên mỗi nút mô tả cách thức thực hiện toán tử gì trên đó
Ví dụ 2.1.1:
Nút "phép nối" có thể được chú giải là "nối băm" hoặc nối "sắp-trộn", nút "lá" có thể được chú giải là được truy xuất thông qua một chỉ mục Để xem được các thông tin của cây truy vấn kiểu này, trong hầu hết các hệ thống SQL dùng câu lệnh Explain
Trang 36Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
Hình 2-1 Cây truy vấn tiền xử lý
Trong đó:
- Sort-merge: Là phép nối sắp trộn giữa biến bộ S và E theo MANV
- Filter: Là phép lọc quan hệ CANBO
- Simple-hash: Là phép nối băm đơn giản (băm sau khi nối MANV trên hai biến bộ S và E)
- Quan hệ NHANVIEN: Nhân viên
+ MANV: Mã nhân viên
+ HTENNV: Họ và tên nhân viên
+ LUONG: Lương của nhân viên
- Quan hệ CANBO: Cán bộ
AVG
CANBO M Filter CHUYENMON S Index - Filter
NHANVIEN E Group Index - Filter
Simple - hash S.MANV= E.MANV Sort - merge
S.MANV= E.MANV
Trang 37Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
+ MACB: Mã cán bộ
+ TENCB: Họ và tên cán bộ
- Quan hệ CHUYENMON: Chuyên môn
+ MANV: Mã nhân viên
+ TENCM: Tên chuyên môn
Viết câu vấn tin SQL sau: "Hãy liệt kê lương trung bình của các nhân viên làm công việc lập trình có lương lớn hơn lương của lãnh đạo"
Khi ký hiệu E, M, S là các biến bộ tương ứng với các quan hệ: NHANVIEN, CANBO, CHUYENMON Câu vấn tin sẽ là:
SELECT AVG (E.LUONG)
FROM NHANVIEN E, CANBO M, CHUYENMON S
Trang 38Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn
WHERE E.MANV = S.MANV AND E.MANV = M.MACB
AND E.LUONG > M.LUONG AND S.TENCM = "Lập trình"
2.1.2 Cây toán tử
Cây toán tử đã được định nghĩa tổng quát tại hình mục 1.2.1 Ở đây, vì mục đích để mô tả các phép toán song song cũng như các ràng buộc về thời gian, ta biểu diễn lại cây toán tử như sau:
- Các nút của cây toán tử biểu diễn các toán tử và các đoạn mã lệnh đơn
- Các cạnh chỉ các dòng dữ liệu, hướng chỉ của mỗi cạnh thể hiện ràng buộc thời gian giữa các toán tử
- Một toán tử có thể nhận vào nhiều tập các bộ và tạo ra một tập kết quả
- Các toán tử được hình thành nhờ phát sinh ra các đoạn mã cài đặt các phép toán quan hệ trong cây truy vấn tiền xử lý một cách thích hợp Một tiêu chuẩn trong việc thiết kế các toán tử là chuyển các ràng buộc thời gian nội tại thành các ràng buộc đơn giản, chẳng hạn các ràng buộc song song và ràng buộc thứ tự: + Cạnh nối hai (nút) toán tử i và j là một ràng buộc song song giữa i và j nếu i và j phải bắt đầu thực hiện công việc và kết thúc công việc đồng thời Quy định cạnh có ràng buộc song song là đường ống (là cạnh được vẽ nét mảnh) Một cạnh đường ống thường được cài đặt bằng cách dùng cơ chế dòng điều khiển, nghĩa là toán tử sản xuất dữ liệu nhanh được điều khiển chậm lại
để "chờ" nếu toán tử tiêu thụ dữ liệu chậm hơn, và ngược lại để các toán tử sản xuất và tiêu thụ thực thi cùng một lúc
+ Cạnh nối hai (nút) toán tử i và j là một ràng buộc thứ tự giữa i và j nếu
j chỉ bắt đầu sau khi i kết thúc Quy định cạnh có ràng buộc thứ tự là cạnh khối (là cạnh được vẽ nét đậm) Các ràng buộc thứ tự làm cho phép toán tiêu thụ chỉ được bắt đầu khi phép toán sản xuất đã kết thúc
Quá trình xây dựng cây toán tử dựa vào cây truy vấn tiền xử lý Quá trình này có thể xem như việc áp dụng một thủ tục "lấn chiếm" cho mỗi nút