1. Trang chủ
  2. » Luận Văn - Báo Cáo

TỐI ưu TRUY vấn TRONG cơ sở dữ LIỆU PHÂN tán

82 209 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 82
Dung lượng 9,06 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Do đó, tối ưu truy vấn đóng một vai trong quan trọng trong hệ thống quản trị cơ sở dữ liệu, thực hiện tối ưu truy vấn trên cơ sở của ba thành phần quan trọng gồm không gian tìm kiếm, mô

Trang 1

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

Trang 2

LỜI CẢM ƠN

Xin chân thành cảm ơn Phòng Đào tạo Sau Đại học, Bộ môn Khoa học và Kỹ thuật thông tin, Trường Đại học Công nghệ thông tin TPHCM đã chấp nhận và tạo điều kiện để đề tài luận văn cao học này được thực hiện

Đặc biệt, xin bày tỏ lòng biết ơn sâu sắc đến PGS TS Nguyễn Đình Thuân, Trưởng Khoa Hệ thống thông tin, Trường Đại học Công nghệ Thông tin TP.HCM đã tận tình hướng dẫn, chỉ bảo, giúp đỡ, định hướng cho đề tài trong suốt thời gian luận văn được thực hiện Đồng thời, xin chân thành cảm ơn các Quý Thầy Cô đã tận tình giảng dạy, trang bị, bổ sung thêm nhiều kiến thức quý báu trong suốt thời gian khóa học

Mặc dù rất nỗ lực để hoàn thành luận văn, tuy nhiên trong quá trình thực hiện

đề tài luận văn không tránh khỏi sai sót, kinh mong nhận được sự nhận xét, góp ý từ Quý Thầy Cô Xin chân thành cảm ơn

Học viên

Hồ Phú Cường

10/2017

Trang 3

LỜI CAM ĐOAN

Tôi xin cam đoan luận văn “Tối ưu truy vấn trong cơ sở dữ liệu phân tán” tuân thủ các quy định hiện hành của pháp luật về sở hữu trí tuệ Các số liệu sử dụng trong luận văn là trung thực Các kết quả nguyên cứu trong luận văn là kết quả lao động chính của tôi, chưa được người khác công bố trong bất cứ một công trình nghiên cứu nào

Nếu phát hiện có bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệm về nội dung luận văn của mình

Học viên

Hồ Phú Cường

Trang 4

DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT

Ký hiệu/

Chữ viết tắt

điểm bất kỳ trong đồ thị đều tồn tại một đường đi

CSDL Cơ sở dữ liệu

DP Dynamic Programming Quy hoạch động

IDP Iterative Dynamic

Programming

Quy hoạch động lặp

cận

CSDL phân tán của SQL Server SDD-1 System for Distributed

T-SQL Transact-SQL Ngôn ngữ lập trình CSDL hướng

thủ tục của Microsoft sử dụng trong SQL Server

Trang 5

DANH MỤC CÁC BẢNG

Bảng 4.1: Mô tả các quan hệ trong CSDL thực nghiệm 53Bảng 4.2: Mô tả phân tán quan hệ trong CSDL thực nghiệm 56

Trang 6

DANH MỤC CÁC HÌNH ẢNH

Hình 1.1: Ví dụ hoạt động của semi-join 7

Hình 2.1: Môi trường hệ thống CSDL phân tán [10] 14

Hình 2.2: Mô hình kiến trúc client-server [26] 15

Hình 2.3: Quy trình tối ưu truy vấn 17

Hình 2.4: Cấu trúc của cây kết nối 18

Hình 2.5: Công thức xác định tổng thời gian [27] 19

Hình 2.6: Thuật toán tối ưu quy hoạch động cổ điển [28] 22

Hình 3.1: Thuật toán tối ưu IDP [8] 29

Hình 3.3: Biểu đồ kết của truy vấn 34

Hình 3.4: Các phương án có 2 quan hệ 34

Hình 3.5: Các phương án có 3 quan hệ 34

Hình 3.6: Phương án có 3 quan hệ được chọn 34

Hình 3.7: Các phương án có 2 quan hệ trong lần lặp thứ hai 35

Hình 3.8: Các phương án có 3 quan hệ trong lần lặp thứ hai 35

Hình 3.9: Phương án có 3 quan hệ được chọn trong lần lặp thứ hai 35

Hình 3.10: Các phương án có 2 quan hệ trong lần lặp thứ ba 36

Hình 3.11: Phương án tối ưu sau cùng 36

Hình 4.1: Các thành phần của hệ tối ưu truy vấn 40

Hình 4.2: Sơ đồ quan hệ của dữ liệu thống kê 41

Hình 4.3: Sơ đồ quan hệ của phương án thực thi truy vấn, phép kết và quan hệ 43

Hình 4.4: Một phương án thực thi truy vấn được lưu trong hệ thống mô phỏng 43

Hình 4.5: Phương án thực thi khi được biểu diễn dưới dạng cây nhị phân 43

Hình 4.6: Một phương án thực thi truy vấn hoàn chỉnh được lưu trong Danh mục 45 Hình 4.7: Module thực thi phương án truy vấn đặt tại các trạm 45

Hình 4.8 Đoạn mã sử dụng hoạt động sao chép số lượng lớn 46

Hình 4.9: Giao diện Thực nghiệm 1 47

Hình 4.10: Giao diện Thực nghiệm 2 48

Hình 4.11: Ví dụ một phương án thực thi truy vấn hoàn chỉnh được tạo ra 49

Hình 4.12: Phương án thực thi truy vấn dưới dạng cây nhị phân 50

Hình 4.13 : Cấu trúc truy vấn hình chuỗi 51

Hình 4.14 : Cấu trúc truy vấn hình sao 51

Hình 4.15: Cấu trúc truy vấn clique 51

Trang 7

Hình 4.16: Cấu trúc truy vấn 53

Hình 4.17: Ví dụ cấu trúc truy vấn 53

Hình 4.18: Sơ đồ quan hệ của CSDL thực nghiệm 55

Hình 4.19: Sơ đồ kết nối giữa các trạm 56

Hình 4.20: Kết quả chạy thuật toán với n=10, biểu đồ kết hình chuỗi 59

Hình 4.21: Kết quả chạy thuật toán với n=10, biểu đồ kết hình sao 59

Hình 4.22: Kết quả chạy thuật toán với n=10, biểu đồ kết hình clique 59

Hình 4.23: So sánh thuật toán IDP+ với thuật toán tối ưu tham lam, biểu đồ kết hình chuỗi 60

Hình 4.24: So sánh thuật toán IDP+ với thuật toán tối ưu tham lam, biểu đồ kết hình sao 60

Hình 4.25: So sánh thuật toán IDP+ với thuật toán tối ưu tham lam, biểu đồ kết hình clique 61

Hình 4.26: Kết quả chạy thuật toán với n=15, biểu đồ kết hình chuỗi 61

Hình 4.27: Kết quả chạy thuật toán với n=15, biểu đồ kết hình sao 62

Hình 4.28: Kết quả chạy thuật toán với n=15, biểu đồ kết hình clique 62

Hình 4.29: Kết quả chạy thuật toán với n=20, biểu đồ kết hình chuỗi 62

Hình 4.30: Kết quả chạy thuật toán với n=20, biểu đồ kết hình sao 63

Hình 4.31: Kết quả chạy thuật toán với n=20, biểu đồ kết hình clique 63

Hình 4.32: Thời gian tối ưu và thời gian thực thi phương án của IDP, IDP+ 65

Hình 4.33: Thời gian trả về kết quả truy vấn cho người dùng 65

Hình 4.34: Thời gian tối ưu và thời gian thực thi phương án của IDP, IDP+ 66

Hình 4.35: Thời gian trả về kết quả truy vấn cho người dùng 67

Hình 4.36: Giao diện chương trình mô phỏng thực hiện tối ưu truy vấn 67

Trang 8

MỤC LỤC

LỜI CẢM ƠN i

LỜI CAM ĐOAN ii

DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT iii

DANH MỤC CÁC BẢNG iv

DANH MỤC CÁC HÌNH ẢNH v

MỤC LỤC vii

MỞ ĐẦU 1

CHƯƠNG 1 TỔNG QUAN VỀ TỐI ƯU TRUY VẤN CƠ SỞ DỮ LIỆU PHÂN TÁN 4

1.1 Giới thiệu về tối ưu truy vấn: 4

1.2 Các nghiên cứu về tối ưu truy vấn cơ sở dữ liệu phân tán: 5

CHƯƠNG 2: CÁC THÀNH PHẦN QUAN TRỌNG TRONG TỐI ƯU TRUY VẤN CƠ SỞ DỮ LIỆU PHÂN TÁN 13

2.1 Giới thiệu: 13

2.2 Kiến trúc hệ thống cơ sở dữ liệu phân tán: 14

2.3 Xử lý truy vấn trong cơ sở dữ liệu phân tán: 16

2.4 Tối ưu truy vấn cơ sở dữ liệu phân tán: 17

2.4.1 Không gian tìm kiếm: 17

2.4.2 Mô hình chi phí: 19

2.4.3 Thuật toán tối ưu quy hoạch động: 21

CHƯƠNG 3: ỨNG DỤNG THUẬT TOÁN IDP VỚI SỰ CẢI TIẾN CÁCH TIẾP CẬN 26

3.1 Giới thiệu: 26

3.2 Thuật toán tối ưu IDP và cách tiếp cận cải tiến: 27

3.2.1 Mô tả thuật toán tối ưu IDP: 27

3.2.2 Cách tiếp cận đề xuất cải tiến thuật toán IDP: 31

3.2.3 Lưu đồ thuật toán IDP+: 33

3.2.4 Ví dụ minh họa hoạt động của thuật toán IDP+: 33

3.2.5 Độ phức tạp thuật toán IDP+: 36

CHƯƠNG 4: HỆ THỐNG MÔ PHỎNG ỨNG DỤNG THUẬT TOÁN IDP + TỐI ƯU TRUY VẤN CSDL PHÂN TÁN VÀ KẾT QUẢ THỰC NGHIỆM 40

4.1 Hệ thống mô phỏng ứng dụng thuật toán IDP+ trong tối ưu truy vấn CSDL phân tán: 40

Trang 9

4.1.1 Môi trường ứng dụng: 40

4.1.2 Mô tả hệ thống: 40

4.1.3 Các chức năng chính của hệ thống mô phỏng: 46

4.2 Dữ liệu mô phỏng: 51

4.3 Kết quả thực nghiệm: 58

4.3.1 Thực nghiệm 1: 58

4.3.2 Thực nghiệm 2: 64

4.2.3 Đánh giá: 67

CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 69

5.1 Kết luận: 69

5.2 Hướng phát triển: 69

TÀI LIỆU THAM KHẢO 71

Trang 10

MỞ ĐẦU

Hiện nay, quy mô hoạt động, sản xuất, kinh doanh của các tổ chức, doanh nghiệp được mở rộng một cách mạnh mẽ, cơ cấu tổ chức không còn tập trung mà phân tán trên phạm vi rộng, hệ thống thông tin của họ cũng được đầu tư tương ứng Với sự phát triển của hệ thống mạng truyền thông, cơ sở dữ liệu phân tán ngày càng được triển khai phổ biến, tận dụng những ưu điểm của dữ liệu phân tán nhằm đáp ứng nhu cầu khai thác dữ liệu từ nhiều chi nhánh khác nhau của các tổ chức, doanh nghiệp Cùng với sự lớn mạnh về quy mô của tổ chức, doanh nghiệp, kích thước cơ sở

dữ liệu cũng tăng lên Các truy vấn dữ liệu ngày càng phức tạp khi số lượng các quan

hệ và số lượng các phép kết trong truy vấn tăng lên Do đó, tối ưu truy vấn đóng một vai trong quan trọng trong hệ thống quản trị cơ sở dữ liệu, thực hiện tối ưu truy vấn trên cơ sở của ba thành phần quan trọng gồm không gian tìm kiếm, mô hình chi phí, các chiến lược tìm kiếm, giúp tìm ra các phương án thực thi truy vấn với chi phí thấp Tối ưu truy vấn trong một môi trường cơ sở dữ liệu phân tán là một vấn đề khó khăn

để giải quyết

Nhiều nghiên cứu về các chiến lược tìm kiếm trong tối ưu truy vấn đã được thực hiện, trong đó chiến lược tìm kiếm đầy đủ, mà điển hình là thuật toán tìm kiếm dựa trên quy hoạch động có thể giúp tìm ra một phương án thực thi truy vấn có chi phí thấp nhất trong số tất cả các phương án trong không gian tim kiếm, tuy nhiên khi phải tối ưu truy vấn có nhiều quan hệ, quy hoạch động tốn rất nhiều thời gian và tài nguyên

bộ nhớ cho việc tối ưu Một chiến lược tìm kiếm khác được dùng trong tối ưu truy vấn đó là chiến lược tìm kiếm heuristic, cụ thể là giải thuật tham lam có thể giúp tìm

ra phương án thực thi trong thời gian nhanh chóng, tuy nhiên chiến lược tìm kiếm này hay đưa ra các quyết định thay đổi hướng đi và không xem xét lại các quyết định

cũ, do đó có thể bỏ sót các phương án tốt và thường không tìm ra được phương án tối

ưu

Một thuật toán đã được Donald Kossmann và Konrad Stocker [12] đề xuất với

tên gọi Iterative Dynamic Programming được xem như một sự kết hợp của quy hoạch

động và heuristic tham lam bởi vì nó kết hợp các ưu điểm của cả hai: có thể tìm ra phương án thực thi truy vấn tốt như quy hoạch động đối với các truy vấn đơn giản,

Trang 11

và khi cần tối ưu truy vấn phức tạp liên quan đến nhiều quan hệ một cách nhanh chóng thì thuật toán có thể tìm ra phương án có chất lượng ở mức chấp nhận được như khi sử dụng ý tưởng của thuật toán heuristic tham lam, hoặc cân bằng giữa hai yếu tố: thời gian dành cho tối ưu và chất lượng phương án Ý tưởng chính của IDP là

áp dụng nhiều lần quy hoạch động trong quá trình tối ưu một truy vấn Ở mỗi bước lặp lại quy hoạch động, thuật toán sẽ chọn một phương án con tốt nhất tại thời điểm

đó để tiếp tục ở bước lặp tiếp theo, xóa đi các phương án không cần thiết và tiếp tục cho đến khi tìm ra kết quả cuối cùng

Tuy nhiên, do sử dụng cách tiếp cận tham lam nên ở mỗi bước lặp quy hoạch động, thuật toán IDP chỉ đánh giá chỉ đánh giá hướng đi một cách cục bộ bằng cách chọn một phương án con tốt nhất tại mỗi bước lặp, mà không có sự ước lượng, đánh giá về kết quả toàn cục Đôi khi, điều này có thể khiến cho thuật toán IDP sai lầm khi chọn những phương án cục bộ tốt nhưng lại dẫn đến kết quả sau cùng không tối ưu.Trong luận văn này, một hệ tối ưu được xây dựng để có thể tối truy vấn kết trong cơ sở dữ liệu phân tán bằng cách ứng dụng thuật toán IDP đã được Donald Kossmann và Konrad Stocker đề xuất, với một sự cải tiến ở cách tiếp cận khác với cách tiếp cận tham lam đã được sử dụng, giúp cho thuật toán có sự đánh giá kết quả toàn cục ở mỗi bước lặp lại quy hoạch động Hệ thống tối ưu này gồm các thành phần chính: phân tích truy vấn, khởi tạo input, tối ưu truy vấn, viết lại phương án hoàn

chỉnh và thực thi phương án Hệ thống nhận một truy vấn kết được viết dưới dạng

T-SQL, chuyển đổi truy vấn thành các dữ liệu đầu vào của thuật toán và tiến hành tối

ưu bằng cách ứng dụng thuật toán IDP với cách tiếp cận mới để tạo nên một phương

án thực thi truy vấn Sau đó hệ thống sẽ thực thi phương án này để trả về kết quả cho truy vấn cho người dùng Ngoài ra, trong hệ tối ưu này, một tùy chọn việc thực thi truy vấn không sử dụng kỹ thuật tối ưu nào cũng được tạo ra để có thể so sánh hiệu quả tối ưu Các kết quả trong phần thực nghiệm sẽ chứng minh rằng việc áp dụng thuật toán IDP với cách tiếp cận mới để tối ưu truy vấn CSDL phân tán mang lại hiệu quả tốt hơn so với khi sử dụng cách tiếp cận cũ, cũng như khi không sử dụng phương pháp tối ưu truy vấn nào

Trang 12

Nội dung báo cáo này gồm 5 chương như sau:

 Chương 1: Tổng quan về tối ưu truy vấn CSDL phân tán

 Chương 2: Các thành phần quan trọng trong tối ưu truy vấn CSDL phân tán

 Chương 3: Ứng dụng thuật toán IDP với sự cải tiến cách tiếp cận

 Chương 4: Hệ thống mô phỏng ứng dụng thuật toán IDP+ tối ưu truy vấn CSDL phân tán và kết quả thực nghiệm

 Chương 5: Kết luận và hướng phát triển

Trang 13

CHƯƠNG 1 TỔNG QUAN VỀ TỐI ƯU TRUY VẤN

CƠ SỞ DỮ LIỆU PHÂN TÁN 1.1 Giới thiệu về tối ưu truy vấn:

Mỗi truy vấn của người dùng thường tồn tại nhiều phương án thực thi truy vấn khác nhau, mỗi phương án mô tả cách thức mà truy vấn có thể được thực thi để trả

về kết quả cho người dùng Các phương án này trả về cùng một kết quả truy vấn, tuy nhiên, chi phí của chúng thường khác nhau Hệ tối ưu truy vấn là một thành phần rất quan trọng của hệ quản trị CSDL, giúp mang lại một phương án thực thi truy vấn tối

ưu trong số rất nhiều phương án Các kỹ thuật tối ưu truy vấn có thể được chia ra theo hai kỹ thuật chính: tối ưu tĩnh và tối ưu động

Tối ưu tĩnh sẽ được thực hiện trước thời điểm truy vấn được thực thi, việc thực thi truy vấn sẽ dựa vào một phương án là kết quả của quá trình tối ưu truy vấn Bởi

vì kích thước của các kết quả trung gian trong mỗi phương án thực thi truy vấn không được biết trước cho đến khi nó được thực hiện, do đó, cần thiết phải ước lượng kích thước các kết quả trung gian và chi phí của chúng thông qua một mô hình chi phí, sử dụng các thông số thống kê của CSDL Những sai sót trong quá trình ước lượng nêu trên có thể dẫn đến việc lựa chọn một phương án không tối ưu, thậm chí là một phương án sai lầm Các chiến lược tìm kiếm thường được sử dụng trong tối ưu tĩnh

đó là tìm kiếm đầy đủ, tìm kiếm heuristic và tìm kiếm ngẫu nhiên

Kỹ thuật tối ưu động sẽ kết hợp hai giai đoạn tối ưu và thực thi truy vấn lại với nhau, tức việc tối ưu sẽ được thực hiện ngay lúc thực thi truy vấn Tại tất cả các điểm trong quá trình thực thi truy vấn, việc lựa chọn hoạt động tốt nhất tiếp theo có thể được dựa vào những hiểu biết chính xác của kết quả từ hoạt động trước đó Do đó, các thông số thống kê về CSDL là không cần thiết để ước lượng kích thước của các kết quả trung gian, và mô hình chi phí sẽ không được sử dụng Tuy nhiên, các thông

số thống kê này vẫn có thể hữu dụng để chọn hoạt động đầu tiên Lợi thế chính của tối ưu truy vấn động so với tối ưu tĩnh đó là kích thước của các quan hệ trung gian là sẵn có, thay vì phải ước lượng bằng mô hình chi phí như ở kỹ thuật tối ưu tĩnh, từ đó giảm đi khả năng dẫn đến một lựa chọn sai lầm

Trang 14

Chương 1: Tổng quan về tối ưu truy vấn cơ sở dữ liệu phân tán

Ngoài ra, có một dạng tối ưu lai giữa tối ưu tĩnh và tối ưu động bằng cách kết hợp hai kỹ thuật tĩnh và động lại với nhau nhằm tận dụng những lợi thế của tối ưu tĩnh, đồng thời hạn chế những sai sót trong quá trình ước lượng kích thước và chi phí của các quan hệ trung gian Kỹ thuật tối ưu hybrid này cơ bản dựa trên tối ưu tĩnh, tuy nhiên, khi có sự khác biêt lớn giữa kích thước thực tế của các quan hệ trung gian

so với kích thước được ước lượng, tối ưu động sẽ được thực hiện tại thời điểm này

1.2 Các nghiên cứu về tối ưu truy vấn cơ sở dữ liệu phân tán:

Một thuật toán tối ưu truy vấn CSDL phân tán sử dụng phương pháp tối ưu động đó là thuật toán INGRESS phân tán, là phiên bản mở rộng của thuật toán tối ưu INGRES [28, 20] cho CSDL tập trung Thuật toán INGRES phân nhỏ truy vấn thành các thành phần nhỏ hơn và cố gắng làm giảm kích thước của các kết quả trung gian

Đầu tiên, một truy vấn q gồm n quan hệ sẽ được phân rã thành n truy vấn con q 1 →

độc lập để cố gắng làm giảm kích thước của kết quả trung gian Hai kỹ thuật được sử

dụng cho việc phân rã truy vấn là tách và thay thế bộ Giả sử ta có truy vấn q như

với A i , A’ i là danh sách các thuộc tính của quan hệ R i , P 1 là vị từ liên quan đến các

thuộc tính của quan hệ R 1 , P 2 là vị từ liên quan đến các các thuộc tính của các quan

quan hệ chung R’ 1 là kết quả của truy vấn q’

q’: SELECT R 1 A 1 INTO R’ 1

FROM R 1 WHERE P 1 (R 1 A’ 1 ) q'’: SELECT R 2 A 2 , R 3 A 3 , , R n A n

FROM R’ 1 , R 2 , , R n WHERE P 2 (R 1 A 1 , R 2 A 2 , , R n A n )

Trang 15

Chương 1: Tổng quan về tối ưu truy vấn cơ sở dữ liệu phân tán

Việc phân nhỏ truy vấn q như trên sẽ làm giảm kích thước của kết quả trung

gian R’ 1, từ đó có thể giảm chi phí truyền thông trong mạng

Đối với các truy vấn đa quan hệ mà không thể tối giản được nữa, kỹ thuật thay

thế bộ có thể được sử dụng để chuyển đổi về dạng truy vấn đơn quan hệ Việc này

được thực hiện bằng cách chọn một quan hệ R 1 trong q để thay thế bộ, với mỗi bộ trong R 1 , thay thế các thuộc tính trong R bởi các giá trị thực tế của nó Cách này sẽ tạo ra một tập hợp các truy vấn con q’ có n - 1 quan hệ, tức là q(R 1 , R 2 , …, R n) được thay thế bởi {𝑞′(𝑡1𝑖, 𝑅2, … , 𝑅𝑛), 𝑡1𝑖 ∈ 𝑅1}

Thuật toán INGRES phân tán hoạt động rất giống với thuật toán INGRES cho

môi trường tập trung, với sự bổ sung quá trình phân rã mỗi truy vấn q i thành các truy vấn con mà thực thi trên các phân mảnh, tuy nhiên, chỉ có phân mảnh ngang được xử

lý Thuật toán INGRES phân tán tối ưu với mối quan hệ kết hợp giữa chi phí truyền thông và thời gian phản hồi

Thuật toán INGRES phân tán được đặc trưng bởi một sự tìm kiếm hạn chế trong không gian tìm kiếm, một quyết định tối ưu được thực hiện cho mỗi bước mà không xem xét hệ quả của quyết định này đối với kết quả tối ưu toàn cục Hướng tiếp cận tìm kiếm đầy đủ mà trong đó tất cả các phương án trong không gian tìm kiếm đều được đánh giá để xác định phương án tốt nhất là một sự thay thế cho hướng tiếp cận tìm kiếm hạn chế [26]

Một ý tưởng khác được đưa ra là tìm cách làm giảm tối đa kích thước dữ liệu được truyền tải giữa các trạm, và semi-join [14] có thể giúp thực hiện ý tưởng này Semi-join làm việc như một toán tử rút gọn kích thước của một quan hệ trước khi

truyền Khi kết hai quan hệ R và S trên thuộc tính A, lưu tại trạm 1 và trạm 2 tương

ứng, có thể thực hiện phép kết bằng cách truyền một trong hai quan hệ (hoặc cả hai quan hệ) đến trạm mà truy vấn được thực thi và trả về kết qua truy vấn Một cách khác để thực hiện phép kết này là làm giảm kích thước của một hoặc cả hai quan hệ

sử dụng semi-join trước khi truyền chúng đi, sử dụng quy tắc:

Trang 16

Chương 1: Tổng quan về tối ưu truy vấn cơ sở dữ liệu phân tán

𝑅 ⋈𝐴 𝑆 (R A S) ⋈𝐴S R⋈𝐴(S A R) (R A S) ⋈𝐴(S A R) (1.1)

với R A S: S semi-join R trên thuộc tính A Ví dụ sau sẽ minh họa cho cách thức hoạt

động của semi-join:

Hình 1.1: Ví dụ hoạt động của semi-join

Trong ví dụ trên, hai quan hệ R và S sẽ thực hiện phép kết trên thuộc tính A tại trạm 2, thay vì phải truyền quan hệ R từ trạm 1 về trạm 2, semi-join sẽ giúp làm giảm kích thước quan hệ R trước khi truyền về trạm 2, các bước thực hiện như sau:

 Thực hiện phép chiếu đối với quan hệ S trên thuộc tính A tạo thành S’, truyền

S’ sang trạm 1

 Thực hiện phép kết giữa R với S’, tạo thành R’, truyền R’ sang trạm 2 Khi

đó, R’ là kết quả của việc loại bỏ các bộ trong R mà không liên quan đến truy vấn giữa R và S, giúp giảm chi phí truyền thông

 Cuối cùng, thực hiện phép kết giữa S và R’ và trả về kết quả truy vấn

Thuật toán tối ưu được sử dụng trong SDD-1 [21], hay còn được gọi là thuật toán SDD-1, dựa trên giải thuật tối ưu leo đồi, thực hiện các phép kết dựa trên semi-join Thuật toán SDD-1 đánh giá chi phí và lợi ích của tất cả các semi-join, trong đó,

chi phí được nhắc đến là chi phí truyền tải các giá trị thuộc tính semi-join, lợi ích là

chi phí nếu truyền tải các bộ không liên quan đến phép kết, lần lượt được biểu diễn

bằng hai đại lượng C và B như sau:

Trang 17

Chương 1: Tổng quan về tối ưu truy vấn cơ sở dữ liệu phân tán

với T MSG là thời gian truyền các thông điệp phục vụ semi-join, T TR là thời gian truyền

một đơn vị dữ liệu của quan hệ, SF SJ (S.A) là tỉ lệ các giá trị riêng biệt của thuộc tính

A chứa trong S trên miền giá trị của thuộc tính A

Thuật toán chọn một semi-join có hiệu số (B – C) lớn nhất, thực hiện nó và cập

nhật thông tin về số lượng các giá trị riêng biệt của quan hệ mà đã được rút gọn kích thước bởi semi-join Quá trình này được lặp lại cho đến khi không còn semi-join nào

có (B – C) lớn hơn 0 Cuối cùng, thuật toán chọn trạm nào chứa lượng dữ liệu nhiều nhất (trạm mà sẽ cho ra chi phí truyền thông nhỏ nhất nếu truyền tải tất cả các quan

hệ còn lại về đây) và truyền tải tất cả các quan hệ còn lại về trạm này và thực hiện

các phép kết để tạo ra kết quả cuối cùng của truy vấn Mặc dù thuật toán SDD-1 có thể cắt giảm chi phí truyền thông một cách hiệu quả, nó vẫn có một số hạn chế, ví dụ như độ phức tạp thuật toán Khi số lượng các bản ghi là rất lớn, thì chi phí cho việc tìm kiếm và thực thi truy vấn sẽ tăng lên một cách nhanh chóng Hơn nữa, việc thực hiện tuần tự các semi-join sẽ làm tăng thời gian phản hồi của truy vấn [8]

Với kỹ thuật tối ưu tĩnh, có sự tách biệt rõ ràng giữa quá trình tối ưu tạo ra một phương án thực thi truy vấn và quá trình thực thi truy vấn dựa vào phương án này Vì thế, một mô hình chi phí chính xác sẽ giúp dự đoán chi phí của các phương án trong không gian tìm kiếm Nhiều nghiên cứu khác nhau liên quan đến tối ưu tĩnh cũng đã được thực hiện, tập trung vào việc tối ưu chi phí truyền thông giữa các trạm trong hệ thống phân tán Một thuật toán tối ưu tĩnh được sử dụng trong hầu hết các CSDL thương mại là thuật toán tối ưu dựa trên quy hoạch động được sử dụng đầu tiên trong

dự án IBM’s System R [10, 22], hay còn được gọi là thuật toán System R, là một thuật toán tìm kiếm đầy đủ Thuật toán này tạo ra tất cả các phương án thực thi truy vấn, mỗi phương án sẽ có một chi phí thực thi được ước lượng dựa vào mô hình chi phí, và phương án có chi phí nhỏ nhất sẽ được tìm thấy Các phương án thực thi nói trên được tạo ra bằng cách hoán vị thứ tự các phép kết của các quan hệ có trong truy vấn Thách thức mà thuật toán tối ưu này phải đối mặt cũng chính là việc lựa chọn thứ tự thực hiện phép kết khi xây dựng phương án thực thi truy vấn, được chứng minh

là một NP-Khó [29], tức là không thể tìm ra phương án tối ưu cho truy vấn có kích

Trang 18

Chương 1: Tổng quan về tối ưu truy vấn cơ sở dữ liệu phân tán

thước bất kỳ trong một khoảng thời gian đa thức Trong môi trường phân tán, thuật toán System R* được sử dụng để tối ưu, là sự mở rộng của thuật toán System R Ưu điểm của thuật toán quy hoạch động là tìm ra phương án tốt nhất có thể có, tuy nhiên, nhược điểm của là nó có độ phức tạp 𝓞(3𝑛) [11], với n là số lượng quan hệ trong truy

vấn Do đó, với các truy vấn có số lượng quan hệ đủ lớn, thuật toán quy hoạch động mất rất nhiều thời gian để tìm ra phương án tối ưu Hơn nữa, trong hệ thống CSDL phân tán, độ phức tạp của thuật toán quy hoạch động còn tăng lên đáng kể khi có sự tồn tại của các bản sao của các quan hệ được đặt tại các trạm khác nhau trong hệ thống phân tán

Một số thuật toán tối ưu dựa vào Heuristic tham lam được nêu trong các nghiên cứu [13, 19, 23] có độ phức tạp đa thức, có thể nhanh chóng tìm ra phương án thực thi cho truy vấn có nhiều quan hệ, tuy nhiên chúng thường tạo ra các phương án có chi phí cao hơn so với phương án được tìm ra bởi thuật toán tìm kiếm đầy đủ, ví dụ như thuật toán dựa trên quy hoạch động, thậm chí, đôi khi Heuristic tham lam có thể dẫn đến phương án sai lầm

Trong nghiên cứu [9], các tác giả đã cải tiến thuật toán đàn kiến để áp dụng vào bài toán tối ưu truy vấn nhằm tìm ra giải pháp tối ưu Trong các thực nghiệm được nêu trong nghiên cứu, giải thuật tối ưu đàn kiến cải tiến được so sánh với giải thuật dựa trên Heuristic tham lam và giải thuật tối ưu đàn kiến nguyên bản, các kết quả thực nghiệm cho thấy giải thuật tối ưu đàn kiến cải tiến có thời gian xử lý truy vấn nhanh hơn, đồng thời giúp rút ngắn thời gian phản hồi kết quả truy vấn đến người dùng so với hai giải thuật trong so sánh

Trong nghiên cứu [24], các tác giả đã cải tiến giải thuật di truyền để khắc phục thiếu sót về sự hội tụ sớm, tạo ra một giải thuật mới bằng cách kết hợp tìm kiếm cục

bộ của giải thuật di truyền với tìm kiếm tổng quát của giải thuật SA (simulated

annealing) Các kết quả thực nghiệm được trình bày trong nghiên cứu cho thấy giải

thuật mới cần nhiều thời gian hơn để tạo ra phương án thực thi truy vấn, tuy nhiên nó thường trả về phương án có chất lượng tốt hơn, do đó thời gian phản hồi truy vấn được rút ngắn so với giải thuật di truyền

Trang 19

Chương 1: Tổng quan về tối ưu truy vấn cơ sở dữ liệu phân tán

Một số nghiên cứu đã được thực hiện để tạo ra giải pháp tối ưu cho việc lựa

chọn thứ tự thực hiện các phép kết của truy vấn Các thuật toán ngẫu nhiên được xem

xét trong [15] có thể làm giảm chi phí của việc tối ưu truy vấn, nhưng chúng gặp vấn

đề khi có sự cố định về một lượng bộ nhớ rất nhớ cần cho quá trình tìm kiếm và chạy chậm hơn so với heuristic Thuật toán Two-Phase Optimization được nêu trong nghiên cứu [16] thực hiện việc tìm kiếm ngẫu nhiên các phương án khác nhau trong không gian tìm kiếm, nó tạo ra một phương án tối ưu nhưng lại làm gia tăng lượng

bộ nhớ cần cho việc tối ưu truy vấn

Trong nghiên cứu [12], các tác giả giới thiệu một thuật toán tìm kiếm mới mà

họ gọi là Iterative Dynamic Programming Thuật toán IDP này có thể được xem như

một sự kết hợp của quy hoạch động và heuristic tham lam bởi vì nó kết hợp các ưu điểm của cả hai: có thể tìm ra phương án thực thi truy vấn rất tốt như quy hoạch động,

và khi cần tìm kiếm nhanh hơn có thể tìm ra phương án ở mức chấp nhận được như khi sử dụng heuristic tham lam Ý tưởng chính của IDP là áp dụng nhiều lần quy hoạch động trong quá trình tối ưu một truy vấn Ở mỗi bước lặp quy hoạch động, thuật toán sẽ chọn một phương án con tốt nhất để tiếp tục ở bước lặp tiếp theo và xóa

đi các phương án con không cần thiết Điều này sẽ giúp giảm đáng kể lượng bộ nhớ cần để lưu tất cả các phương án IDP có độ phức tạp thuật toán không quá cao và có thể tối ưu truy vấn trong những trường hợp mà quy hoạch động là không khả thi vì

độ phức tạp cao của nó Nếu truy vấn đơn giản, IDP có thể tạo ra một phương án tối

ưu như quy hoạch động và trong cùng thời gian như quy hoạch động Nếu truy vấn quá phức tạp mà quy hoạch động không xử lý được, IDP có thể tạo ra các phương án con tối ưu mà tất cả các phương án con tối ưu này sẽ tạo thành một phương án thực thi truy vấn có chất lượng ở mức chấp nhận được tương ứng với mức độ yêu cầu rút ngắn thời gian cần cho việc thực hiện tối ưu Hay nói cách khác, đối với các truy vấn

có liên quan đến số lượng lớn các quan hệ, IDP vẫn có thể thực hiện tối ưu để đạt được sự cân bằng giữa chất lượng phương án và thời gian dành cho việc thực hiện tối

ưu Một ưu điểm khác của IDP là nó có thể được tích hợp một cách dễ dàng vào một

hệ tối ưu đang có sẵn mà đang dựa trên quy hoạch động thông qua việc thay đổi một

số ít mã nguồn của hệ thống tối ưu cũ Một số thành phần phức tạp của hệ thống cũ

Trang 20

Chương 1: Tổng quan về tối ưu truy vấn cơ sở dữ liệu phân tán

hệ thống tối ưu sử dụng IDP mà không cần thay đổi Tuy nhiên, do sử dụng cách tiếp cận tham lam, ở mỗi bước lặp lại quy hoạch động, thuật toán IDP chọn một phương

án con tốt nhất tại thời điểm đó mà không có sự đánh giá nào về kết quả toàn cục Do

đó, thuật toán IDP vẫn có thể mắc sai lầm khi chọn các phương án con mà dẫn đến kết quả cuối cùng không tốt

Tại Việt Nam, đã có một số nghiên cứu, luận văn về tối ưu hóa truy vấn trong

cơ sở dữ liệu phân tán Trong các báo cáo đề tài luận văn [1-7], các báo cáo này giới thiệu về các thuật toán tối ưu và một số trong đó có ứng dụng nguyên bản các thuật toán INGRES phân tán, SDD – 1 hoặc System R* được trình bày phần trên để tối ưu truy vấn mà không có sự cải tiến nào Các kết quả trong các báo cáo trên đã chứng minh được hiệu quả của các thuật toán tối ưu, tuy nhiên các truy vấn được sử dụng

để mô phỏng thuật toán thường đơn giản, số lượng quan hệ trong truy vấn không nhiều Do đó, nghiên cứu ứng dụng thuật toán IDP vào tối ưu truy vấn CSDL phân tán còn khá mới mẻ, khác biệt so với các báo cáo luận văn nêu trên

Với những phân tích trên, mục tiêu của đề tài luận văn là xây dựng một hệ tối

ưu truy vấn kết cơ sở dữ liệu phân tán bằng cách ứng dụng có cải tiến thuật toán

IDP đã được Donald Kossmann và Konrad Stocker đề xuất trong công trình

nghiên cứu [12], với một cách tiếp cận mới cho phép thuật toán đánh giá về kết quả toàn cục ở mỗi bước lặp, giúp mang lại kết quả tốt hơn Hệ tối ưu dựa trên

thuật toán IDP có khả năng tạo ra các phương án có chất lượng tốt nhất đối với các truy vấn đơn giản, đồng thời có thể thực hiện tối ưu các truy vấn có số lượng lớn các quan hệ (từ 10 đến 20 quan hệ) với chất lượng phương án thực thi truy vấn ở mức tốt hoặc chấp nhận được tương ứng với thời gian tối ưu được rút ngắn mà các thuật toán tìm kiếm đầy đủ hoặc heuristic khác có thể gặp khó khăn về thời gian tối ưu hoặc chất lượng phương án, đồng thời không sử dụng quá nhiều tài nguyên bộ nhớ trong quá trình tối ưu bởi khả năng loại bỏ các phương án không còn cần thiết trong quá trình tìm kiếm Phương án thực thi truy vấn được trả về bởi hệ tối ưu sẽ được thực thi để

có thể rút ngắn thời gian trả về kết quả truy vấn cho người dùng Hệ tối ưu dựa trên thuật toán IDP này cũng sẽ được nghiên cứu cài đặt để có thể tối ưu các truy vấn liên quan đến các quan hệ được nhân bản tại nhiều trạm khác nhau trong hệ thống phân

Trang 21

Chương 1: Tổng quan về tối ưu truy vấn cơ sở dữ liệu phân tán

tán Trong giới hạn thời gian để thực hiện đề tài luận văn, trường hợp dữ liệu của các quan hệ được phân mảnh không được xử lý trong hệ tối ưu này do không đủ thời gian

để xây dựng một hệ thống tiền xử lý dữ liệu phân mảnh

Trong chương 2 và chương 3, kiến trúc, mô hình chi phí, các giải thuật được ứng dụng trong hệ thống tối ưu truy vấn cơ sở dữ liệu phân tán và một cách tiếp cận mới sẽ được trình bày Chương 4 sẽ trình bày về hệ thống mô phỏng việc ứng dụng thuật toán IDP để tối ưu truy vấn CSDL phân tán

Trang 22

CHƯƠNG 2: CÁC THÀNH PHẦN QUAN TRỌNG TRONG TỐI ƯU

TRUY VẤN CƠ SỞ DỮ LIỆU PHÂN TÁN 2.1 Giới thiệu:

Một cơ sở dữ liệu phân tán là một tập hợp của nhiều CSDL có liên quan về mặt logic được phân bố trên một mạng máy tính Một hệ quản trị CSDL phân tán là một

hệ thống phần mềm mà cho phép quản trị CSDL phân tán và làm cho sự phân tán trở nên trong suốt đối với người dùng Thuật ngữ hệ thống CSDL phân tán thường được dùng để chỉ sự kết hợp giữa CSDL phân tán và hệ quản trị CSDL phân tán Một cách hiểu đơn giản, một CSDL phân tán bao gồm một số lượng các quan hệ được đặt ở các trạm có vị trí vật lý khác nhau Việc phân tán dữ liệu ở nhiều trạm khác nhau đem lại lợi ích rõ rệt cho các tổ chức có quy mô lớn sở hữu nhiều văn phòng và lực lượng lao động được phân bố ở nhiều ví trí khác nhau Một lợi ích khác của việc phân tán dữ liệu đó là giúp gia tăng tính sẵn sàn của dữ liệu Chẳng hạn, trong môi trường dữ liệu tập trung, khi máy chủ bị lỗi thì toàn bộ hệ thống sẽ không thể truy cập được dữ liệu Việc nhân bản dữ liệu ở một số trạm khác nhau trong hệ thống phân tán có thể giúp tránh được trường hợp này bằng cách cung cấp khả năng truy cập đến các bản sao của dữ liệu được lưu đồng thời ở các trạm khác khi một trạm trong hệ thống phân tán

bị lỗi Ở một khía cạnh khác, việc nhân bản dữ liệu cũng có thể giúp giảm tải truy cập đến trạm chứa dữ liệu bằng cách tạo ra các bản sao của dữ liệu ở những nơi có nhu cầu sử dụng cao, giúp tăng tốc hiệu suất hệ thống tại những nơi đó Một số đặc trưng quan trọng trong cấu trúc và chức năng của CSDL phân tán như sau:

 Một CSDL phân tán được tổ chức theo một lược đồ xác định cấu trúc của của

dữ liệu được phân tán và các mối quan hệ giữa dữ liệu Lược đồ được định nghĩa theo

một số mô hình dữ liệu, thường là mô hình dữ liệu quan hệ hoặc hướng đối tượng

 Một hệ quản trị CSDL phân tán có đầy đủ chức năng của một hệ quản trị CSDL Nó cung cấp khả năng truy vấn mức độ cao, quản lý giao dịch (điều khiển

cạnh tranh và phục hồi), và thực thi toàn vẹn

 Một hệ quản trị CSDL phân tán cung cấp sự truy cập một cách trong suốt đến

dữ liệu cho người dùng Các quan hệ có thể được nhân bản hoặc được phân mảnh ở các trạm khác nhau trong hệ thống phân tán, bên cạnh việc chúng được phân bố trên

Trang 23

Chương 2: Các thành phần quan trọng trong tối ưu truy vấn CSDL phân tán

nhiều trạm Tất cả các điều này đều không được nhìn thấy bởi người dùng, đây là một

sự mở rộng của khái niệm về sự độc lập dữ liệu, vốn là một khái niệm quan trọng trong CSDL tập trung Điều này dẫn đến yêu cầu tối ưu truy vấn để xác định cần lấy

dữ liệu từ những trạm nào, thực thi truy vấn ở đâu, theo thứ tự nào,… Một mô hình chi phí xem xét các giá trị chi phí nhập xuất, chi phí xử lý vi xử lý, chi phí truyền thông,… có thể giúp lựa chọn một phương án thực thi truy vấn tối ưu nhằm rút ngắn

thời gian trả về kể quả truy vấn cho người dùng

2.2 Kiến trúc hệ thống cơ sở dữ liệu phân tán:

Môi trường hệ thống CSDL phân tán bao gồm một tập (có thể rỗng) các trạm

phát sinh truy vấn và một tập không rỗng các trạm chứa dữ liệu Trong đó, trạm phát

ra truy vấn thì không chứa dữ liệu Bên cạnh đó, cần có một hệ thống mạng cung cấp khả năng truy cập đến dữ liệu cũng như truyền thông giữa các trạm

Hình 2.1: Môi trường hệ thống CSDL phân tán [20]

Có một số mô hình kiến trúc có thể được sử dụng cho việc xây dựng một hệ quản trị CSDL phân tán, bao gồm mô hình khách-chủ [25], nơi mà trạm phát ra truy vấn đóng vai trò là máy khách trong khi trạm chứa dữ liệu đóng vai trò máy chủ; và

mô hình ngang hàng nơi mà không có sự phân biệt giữa máy khách và máy chủ

Hệ thống CSDL phân tán truyền thống thường sử dụng mô hình kiến trúc

khách-chủ, trong đó máy khách và máy chủ có một sự tách biệt rõ ràng về nhiệm vụ Các

máy chủ cung cấp khả năng truy cập đến dữ liệu cục bộ được lưu tại trạm đó cho các

Trang 24

Chương 2: Các thành phần quan trọng trong tối ưu truy vấn CSDL phân tán

máy khách Các máy khách cung cấp các ứng dụng và giao diện để người dùng có thể tương tác và dữ liệu được lưu trữ trong hệ thống Trong kiến trúc này máy chủ thực hiện hầu hết các công việc quản lý dữ liệu Điều này có nghĩa rằng tất cả các quy trình tối ưu và thực thi truy vấn, quản lý giao dịch và quản lý lưu trữ đều được thực hiện ở máy chủ Trong khi đó, ngoài ứng dụng và giao diện người dùng, máy khách cần có các mô-đun nhận nhiệm vụ quản lý, sắp xếp các dữ liệu được trả về theo yêu cầu của người dùng

Hình 2.2: Mô hình kiến trúc client-server [25]

Đối với mô hình ngang hàng, không có sự phân biệt giữa máy khách và máy chủ, mỗi trạm trong hệ thống có thể thực hiện cùng một chức năng Trong trường hợp này, dữ liệu được lưu trữ tại tất cả các trạm và có thể xảy ra trường hợp một trạm nhận được truy vấn liên quan đến dữ liệu mà không được lưu cục bộ tại trạm đó Trong trường hợp này, trạm nhận được truy vấn có thể yêu cầu được truy cập đến dữ liệu được lưu ở các trạm khác và sẽ hợp tác với các trạm thích hợp cho đến khi truy vấn được hoàn thành

Trang 25

Chương 2: Các thành phần quan trọng trong tối ưu truy vấn CSDL phân tán

2.3 Xử lý truy vấn trong cơ sở dữ liệu phân tán:

Để xử lý truy vấn CSDL phân tán, ngoài chi phí nhập/xuất dựa vào số lượng truy cập đĩa cứng (đọc/ghi), hệ thống CSDL phân tán thêm vào hệ thống CSDL tập trung một số chi phí xử lý truy vấn do có sự bổ sung thiết kế về phần cứng lẫn phần mềm Chi phí này là chi phí truyền dữ liệu trên mạng, có thể là dữ liệu của các quan

hệ được lưu tại các trạm, các kết quả trung gian, hoặc kết quả cuối cùng được truyền

về trạm ban đầu mà nhận được yêu cầu truy vấn Do đó, các nhà thiết kế CSDL quan tâm đến việc tối ưu truy vấn, với mục tiêu là tối thiểu hóa chi phí truyền dữ liệu trên mạng Đối với các truy vấn kết, việc xử lý truy vấn trong môi trường phân tán cần xem xét các vấn đề quan trọng sau:

 Chi phí truyền thông

 Nếu quan hệ được nhân bản ở nhiều trạm, cần xác định sẽ lấy dữ liệu của quan hệ được lưu ở trạm nào

 Kích thước lượng dữ liệu được truyền tải giữa các trạm

 Tốc độ nhập/xuất tương đối tại mỗi trạm

 Tốc độ truyền tải tương đối một đơn vị dữ liệu giữa các trạm

Trong hệ thống CSDL tập trung, mỗi truy vấn thường có nhiều cách để thực thi, điều này cũng tương tự trong hệ thống phân tán Sẽ có nhiều phương án thực thi cho cùng một truy vấn do dữ liệu có thể được lưu ở nhiều trạm khác nhau, tài nguyên hệ thống và thời gian phản hồi của các phương án này cũng sẽ khác nhau Tối ưu truy vấn CSDL phân tán giúp tìm ra một phương án thực thi có chi phí nhỏ nhất, trong đó, chi phí phải bao gồm chi phí truyền thông, bên cạnh chi phí nhập/xuất, chi phí vi xử

lý, nhằm giúp giảm thời gian thực thi, trả lại kết quả truy vấn cho người dùng trong thời gian nhanh nhất có thể Ở đây, hai đại lượng thời gian cần được xem xét đó là: tổng thời gian và thời gian phản hồi Tổng thời gian là tổng các khoảng thời gian tốn hao bởi mỗi vi xử lý, cho dù chúng có thể xảy ra đồng thời Thời gian phản hồi là khoảng thời gian từ khi bắt đầu cho đến khi truy vấn được hoàn thành Một trong hai đại lượng thời gian này có thể được chọn là tiêu chí để đánh giá các phương án thực thi truy vấn

Trang 26

Chương 2: Các thành phần quan trọng trong tối ưu truy vấn CSDL phân tán

Trong hệ thống phân tán, chi phí truyền thông được phát sinh khi có sự trao đổi

dữ liệu giữa các trạm Do đó, chi phí truyền thông phụ thuộc vào một số yếu tố như kích thước lượng dữ liệu được truyền tải giữa các trạm, việc lựa chọn các trạm thích hợp để lấy dữ liệu trong trường hợp quan hệ được phân mảnh hoặc nhân bản cũng như lựa chọn trạm để thực thi truy vấn và dữ liệu các thông điệp dùng cho việc thiết lập kết nối giữa các trạm Trong trường hợp hệ thống phân tán sử dụng mạng diện rộng, chi phí truyền thông là yếu tố chiếm ưu thế và việc tối ưu chi phí vi xử lý và chi phí nhập/xuất có thể được bỏ qua Đối với trường hợp mạng cục bộ, việc tối ưu các chi phí xử lý cục bộ (chi phí vi xử lý và chi phí nhập/xuất) trở nên có tầm quan trọng lớn hơn

2.4 Tối ưu truy vấn cơ sở dữ liệu phân tán:

2.4.1 Không gian tìm kiếm:

Tối ưu truy vấn là một quy trình mà hệ tối ưu sử dụng một chiếc lược tìm kiếm kết hợp cùng với một mô hình chi phí để tìm ra một phương án thực thi truy vấn tối

ưu, mô tả cách thức mà truy vấn sẽ được thực thi để trả về kết quả cho người dùng Quá trình tìm kiếm phương án tối ưu này được thực hiện trên một tập hợp được gọi

là không gian tìm kiếm

Hình 2.3: Quy trình tối ưu truy vấn [20]

Không gian tìm kiếm là một tập hợp chứa tất cả các phương án mà có thể trả về cùng một kết quả truy vấn, nhưng khác nhau về thứ tự thực hiện các toán tử cũng như cách mà các toán tử được thực hiện, và do đó, hiệu quả thực thi truy vấn của các phương án này cũng khác nhau Mỗi phương án thực thi truy vấn có dạng một cây

Trang 27

Chương 2: Các thành phần quan trọng trong tối ưu truy vấn CSDL phân tán

nhị phân (cây kết nối) bao gồm các quan hệ và các phép kết, mỗi nút lá đại diện cho

một quan hệ và mỗi nút trong đại diện cho một phép kết Với mỗi truy vấn được đưa

ra, một không gian tìm kiếm gồm tất cả các cây kết nối này có thể được tạo ra bằng các luật biến đổi, hoán vị thứ tự các quan hệ và các phép kết Với một truy vấn phức tạp gồm nhiều quan hệ, số lượng các cây kết nối được tạo ra là rất lớn Cụ thể, với

truy vấn gồm n quan hệ, số lượng các cây kết nối được tạo ra bằng cách áp dụng luật

giao hoán và kết hợp là 𝓞(𝑛!) [20] Việc liệt kê và đánh giá tất cả các phương án trong không gian tìm kiếm kích thước lớn để tìm ra phương án tốt nhất khiến cho việc tối ưu truy vấn tốn một khoảng thời gian, có thể được gọi là thời gian tối ưu, đôi khi thời gian tối ưu này còn lớn hơn cả thời gian cần cho việc thực thi truy vấn tối ưu tìm được Do đó, với các truy vấn phức tạp, hệ tối ưu thường sẽ tìm cách giảm kích thước không gian tìm kiếm bằng nhiều phương pháp khác nhau, ví dụ như sử dụng các giải thuật tìm kiếm heuristic

Hình 2.4: Cấu trúc của cây kết nối

Một phương pháp khác để có thể làm giảm kích thước không gian tìm kiếm là xem xét khía cạnh về cấu trúc của các cây kết nối, thường được phân thành hai dạng

là tuyến tính (a) và rậm rạp-bushy (b) (Hình 2.4) Cấu trúc tuyến tính là một cây nhị

phân mà mỗi nút cha (phép kết) phải có ít nhất một quan hệ là nút con Cấu trúc bushy

thì có thể có các nút cha không có nút con nào là quan hệ (cả hai nút con của nó đều

là kết quả trung gian của phép kết khác) Cấu trúc tuyến tính thường giúp tận dụng

các lợi thế về chỉ mục khi thực hiện phép kết, nếu chỉ xem xét các cây truy vấn có cấu trúc tuyến tính, có thể giảm kích thước không gian tìm kiếm về mức 𝓞(2𝑛) [20] Tuy nhiên, cần lưu ý rằng trong hệ thống CSDL phân tán, cấu trúc bushy lại thường

là phương án tốt hơn do nó có thể được xử lý song song

Trang 28

Chương 2: Các thành phần quan trọng trong tối ưu truy vấn CSDL phân tán

2.4.2 Mô hình chi phí:

Để có thể tìm ra được phương án tối ưu trong quá trình tối ưu truy vấn, các thuật toán tìm kiếm của hệ tối ưu cần phải sử dụng một mô hình chi phí để có thể ước lượng chi phí của các của các phương án thực thi trong không gian tìm kiếm dựa vào các dữ liệu thống kê về CSDL, các công thức để có thể xác định kích thước các kết quả trung gian Thuật ngữ chi phí được dùng trong báo cáo này là tổng thời gian thực thi của một phương án thực thi truy vấn Một công thức tổng quát để xác định tổng thời gian được mô tả như sau:

𝑇ổ𝑛𝑔_𝑡ℎờ𝑖_𝑔𝑖𝑎𝑛 = 𝑇𝐶𝑃𝑈∗ #𝑖𝑛𝑠𝑡𝑠 + 𝑇𝐼/𝑂 ∗ #𝐼/𝑂𝑠 + 𝑇𝑀𝑆𝐺 ∗ #𝑚𝑠𝑔𝑠 + 𝑇𝑇𝑅 ∗

Hình 2.5: Công thức xác định tổng thời gian [18]

Trong công thức này, hai đại lượng đo lường thời gian xử lý cục bộ gồm T CPU

là thời gian của một chu kỳ vi xử lý và T I/O là thời gian thực hiện một lượt nhập/xuất trên đĩa Trong hai đại lượng này, thời gian dành cho việc nhập/xuất trên đĩa sẽ được tập trung chính, vì đây là yếu tố ảnh hưởng chủ yếu đến thời gian xử lý cục bộ Nguyên nhân là do các vi xử lý hiện tại có kiến trúc đa nhân, có tốc độ xử lý rất cao, trong khi thiết bị lưu trữ dữ liệu chủ yếu vẫn là ổ đĩa cứng vì sự đắt đỏ của ổ cứng thể rắn, hiện tượng nghẽn cổ chai khi truy xuất và xử lý dữ liệu nếu có xảy ra chủ yếu vẫn nằm ở thiết bị lưu trữ

Hai đại lượng đo lường thời gian dành cho truyền thông gồm T MSG là thời gian

từ lúc gửi và nhận một thông điệp mà nhằm hỗ trợ cho mục tiêu chính của truyền thông là truyền tải dữ liệu các quan hệ, các kết quả trung gian giữa các trạm, với giá

trị T TR là thời gian truyền tải một đơn vị dữ liệu (trong báo cáo này sử dụng đơn vị dữ

liệu là trang bộ nhớ đệm (page), kích thước 8KB) Trong CSDL phân tán, các truy

vấn phức tạp thường đòi hỏi một lượng lớn dữ liệu cần trao đổi giữa các trạm, kích thước dữ liệu dành cho việc gửi và nhận thông điệp thường nhỏ hơn rất nhiều so với kích thước dữ liệu thực tế được trao đổi giữa các trạm và hoàn toàn có thể bỏ qua được

Trang 29

Chương 2: Các thành phần quan trọng trong tối ưu truy vấn CSDL phân tán

Trong báo cáo này, hai phương thức thực hiện phép kết trong xử lý cục bộ được

tập trung xem xét là Sort-merge-join và Hash-Join, bởi vì phương thức kết còn lại là

Nested-loop-join chỉ phù hợp đối với các quan hệ có số lượng bộ nhỏ vì độ phức tạp

cao của nó

Sort-merge-join bao gồm 2 bước: sắp xếp các bộ theo thứ tự thuộc tính kết và

trộn các bộ của 2 quan hệ có giá trị thuộc tính kết giống nhau Giả sử sort-merge-join

được sử dụng để thực hiện phép kết 𝑅 ⋈𝑎=𝑏 𝑆, với R có kích thước M page, S có kích thước N page Nếu R và S đã được sắp xếp ở thuộc tính chung tương ứng là a và b,

việc sắp xếp sẽ được bỏ qua Nếu không, hai quan hệ này sẽ được sắp xếp Số lần nhâp/xuất dành cho việc sắp xếp này sẽ là 𝑀𝑙𝑜𝑔𝑀 + 𝑁𝑙𝑜𝑔𝑁 Ở bước trộn, mỗi quan

hệ R và S sẽ được đọc các bộ theo từng cặp và so sánh với nhau, nếu chúng có giá trị

thuộc tính kết bằng nhau thì tạo ra kết quả, nếu không nó loại bộ có giá trị thuộc tính kết nhỏ hơn và đọc tới bộ tiếp theo của quan hệ đó và tiếp tục quá trình Với phương

thức kết này, hai quan hệ R và S sẽ được đọc từ đầu và cùng tiến về cuối song song với nhau Số lần nhâp/xuất dành cho việc quét R và S ở bước trộn này sẽ là 𝑀 + 𝑁 Như vậy, tổng số nhập/xuất khi thực hiện Sort-merge-join là:

Sort-merge-join thích hợp để thực hiện phép kết với 2 quan hệ có số lượng bộ

lớn và đã được sắp xếp theo thuộc tính kết

Ở phương thức kết còn lại, Hash-join cũng trải qua 2 bước: tạo bảng băm và dò

tìm Ở bước tạo bảng băm, một quan hệ sẽ được quét và các bộ trong quan hệ sẽ được

áp dụng hàm băm ở thuộc tính kết để tạo thành một bảng băm và ghi vào bộ nhớ Ở bước dò tìm, từng bộ của quan hệ còn lại cũng sẽ được áp dụng hàm băm để tạo thành giá trị băm và dùng giá trị băm này để dò tìm trong bảng băm được tạo trước đó, nếu

khớp thì sẽ tạo thành kết quả Chi phí của hash-join rất nhỏ nếu toàn bộ bảng băm

được lưu trong bộ nhớ, tuy nhiên sẽ cần một lượng bộ nhớ rất lớn, và chi phí này sẽ tăng lên nếu bảng băm được lưu phân mảnh trên đĩa cứng

Để làm giảm chi phí hash-join cũng như lượng bộ nhớ cần sử dụng, cách thực hiện hash-join thường được áp dụng là phân nhóm giá trị thuộc tính kết của cả hai

Trang 30

Chương 2: Các thành phần quan trọng trong tối ưu truy vấn CSDL phân tán

quan hệ R và S bằng cách sử dụng hàm băm, tạm gọi là h 1 , tạo thành hai Bảng phân

nhóm và ghi ra đĩa Điều này giúp tìm ra các bộ trong một nhóm giá trị của R sẽ chỉ

tương ứng với các bộ trong một nhóm giá trị của S Giả sử tìm được k nhóm giá trị khớp nhau giữa R và S, khi đó việc thực hiện hash-join ban đầu sẽ trở thành thực hiện

k lần hash-join độc lập Mỗi hash-join độc lập này được thực hiện bằng cách đọc mỗi nhóm của R và áp dụng một hàm băm h2 cho các bộ trong nhóm và tạo thành bảng băm, tiếp theo sẽ đọc lần lượt các bộ trong nhóm tương ứng của S, áp dụng hàm băm h2 và so sánh với bảng băm, nếu khớp sẽ tạo thành kết quả

Ở bước phân nhóm, chi phí cho đọc và ghi hai quan hệ là 2(M+N), ở bước so khớp tiếp theo, mỗi quan hệ được đọc một lần với chi phí là (M+N) Vậy tổng chi phí

Hash-join phù hợp với các phép kết mà hai quan hệ có số lượng bộ lớn nhưng

không được sắp xếp theo thứ tự của thuộc tính kết

Một thành phần quan trọng nữa trong việc ước lượng chi phí của các phương án thực thi truy vấn đó là việc ước lượng kích thước của các kết quả trung gian, được tính dựa vào công thức:

2.4.3 Thuật toán tối ưu quy hoạch động:

2.4.3.1 Mô tả thuật toán:

Chiến lược tìm kiếm phổ biến nhất được sử dụng bởi các hệ tối ưu là quy hoạch động, là một phương pháp tìm kiếm có hệ thống Nó thực hiện bằng cách xây dựng các phương án thực thi truy vấn từ các quan hệ, kết thêm một quan hệ vào phương án

Trang 31

Chương 2: Các thành phần quan trọng trong tối ưu truy vấn CSDL phân tán

tại mỗi bước cho đến khi đạt được các phương án có đầy đủ tất cả các quan hệ tham gia vào truy vấn Quy hoạch động xây dựng tất cả các phương án có thể có, ưu tiên xây dựng theo chiều rộng, và cuối cùng chọn ra một phương án tốt nhất

Đầu vào của thuật toán là một truy vấn kết q liên quan đến các quan hệ R1,R2,…,

Rn; Đầu ra của thuật toán là một phương án thực thi cho truy vấn q dưới dạng một

cây nhị phân

Thuật toán 1: Quy hoạch động cổ điển (Classic Dynamic Programming)

1: Đầu vào: {Truy vấn kết q liên quan đến n quan hệ R 1,

R 2 ,…,R n;}

2: Đầu ra: {Một phương án thực thi cho truy vấn q}

//khởi tạo các phương án thực thi truy vấn

Hình 2.6: Thuật toán tối ưu quy hoạch động cổ điển [27]

Thuật toán này hoạt động theo cách tiếp cận từ dưới lên như sau Đầu tiên, thuật

Trang 32

Chương 2: Các thành phần quan trọng trong tối ưu truy vấn CSDL phân tán

án truy cập đến mỗi quan hệ trong truy vấn, mà được gọi là accessplans (dòng 3 đến dòng 6), với hai phương pháp thông dụng đó là quét bảng để đọc cả bảng và quét-

index để đọc một phần bảng sử dụng chỉ mục Từ dòng 7 đến dòng 16, thuật toán liệt

kê và xem xét tất cả các phương án có thể có để kết các quan hệ Ở bước đầu tiên, nó

liệt kê và xem xét tất cả các phương án có 2 quan hệ bằng cách gọi hàm joinPlans để kết các quan hệ trong accessPlans mà có mối liên hệ với nhau Sau đó, nó tiếp tục tạo

tất cả các phương án có 3 quan hệ bằng cách cố gắng kết các phương án có 2 quan hệ

vừa được tạo với một trong số các quan hệ trong accessPlans Để tạo phương án có

4 quan hệ, thuật toán có thể kết 2 phương án có 2 quan hệ lại với nhau, hoặc kết 1

phương án có 3 quan hệ với 1 quan hệ trong accessPlans Tương tự như vậy, thuật

toán quy hoạch động có thể tạo ra các phương án có 5 quan hệ, 6 quan hệ, …, và

cuối cùng là phương án có n quan hệ Tất cả các phương án đều được so sánh, và cuối cùng, thuật toán sẽ chọn ra một phương án thực thi truy vấn gồm n quan hệ có chi phí

nhỏ nhất

Một đặc điểm rất hay ở thuật toán quy hoạch động đó là nó sẽ loại bỏ các phương

án con không tốt ở mỗi bước xây dựng phương án, việc này được thực hiện bởi hàm

prunePlans Giả sử khi thuật toán liệt kê và xem xét 2 phương án có 2 quan hệ,

phương án 𝑅1 ⋈ 𝑅2 có chi phí thấp hơn so với 𝑅2 ⋈ 𝑅1, trong khi cả hai phương án trả về cùng một kết quả như nhau, việc sử dụng phương án 𝑅1 ⋈ 𝑅2 để xây dựng các

phương án lớn hơn có chứa {R 1 , R 2 } vẫn sẽ có chi phí thấp hơn so với khi sử dụng

𝑅2 ⋈ 𝑅1 Do đó, phương án 𝑅2 ⋈ 𝑅1 sẽ được loại bỏ, và phương án 𝑅1 ⋈ 𝑅2 được

giữ lại như là optPlan({R 1 , R 2 }), và sẽ được sử dụng để xây dựng các phương án có 3

hoặc 4 quan hệ có liên quan đến {R 1 , R 2 }

Thuật toán tối ưu quy hoạch động nêu trên khi áp dụng cho CSDL phân tán sẽ được bổ sung, chỉnh sửa một số điểm như sau:

 Chi phí truyền thông phải được tính vào chi phí của phương án thực thi truy vấn, điều này là rất quan trọng, vì chi phí truyền thông thường chiếm một tỷ lệ lớn trong môi trường phân tán

 Nếu một quan hệ nào đó trong truy vấn được nhân bản ở nhiều trạm trong hệ thống phân tán, khi xây dựng phương án thực thi truy vấn thì phải so sánh chi phí khi

Trang 33

Chương 2: Các thành phần quan trọng trong tối ưu truy vấn CSDL phân tán

lấy bản sao của quan hệ ở từng trạm mà quan hệ được nhân bản để thêm vào phương

án, và chọn trạm nào có chi phí nhỏ nhất

 Khi hàm joinPlans (dòng 11) tạo ra một phương án, phải xem xét vị trí của

trạm mà phép kết sẽ được thực hiện, so sánh chi phí giữa các trạm và chọn ra trạm có chi phí nhỏ nhất Tuy nhiên, có thể xem xét áp dụng việc ưu tiên trạm mà sẽ thực hiện phép kết, chẳng hạn như trạm nhận được yêu cầu truy vấn ban đầu (cũng là trạm mà kết quả truy vấn được trả về) có thể được ưu tiên để thực hiện phép kết, để có thể tạo

ra một phương án toàn cục có chi phí nhỏ hơn, tránh một số trường hợp mà dữ liệu được gửi từ trạm nhận truy vấn sang các trạm khác để xử lý, sau đó một phần hoặc

toàn bộ dữ liệu này (nằm trong các kết quả trung gian hoặc kết quả cuối cùng của

truy vấn) lại được gửi lại trạm nhận truy vấn để trả về kết quả cho người dùng, làm

tăng chi phí truyền thông

 Nếu phép kết cuối cùng của phương án trả về không được thực hiện ở trạm

nhận truy vấn, thì phải bổ sung thêm một số thao tác để gửi kết quả truy vấn về trạm

nhận truy vấn Điều này có thể làm gia tăng chi phí của phương án nếu kết quả truy vấn có kích thước lớn và có thể được hạn chế xảy ra nếu xem xét việc ưu tiên trạm

mà phép kết được thực hiện vừa nêu ngay trên

2.4.3.2 Độ phức tạp thuật toán tối ưu quy hoạch động:

Độ phức tạp của thuật toán quy hoạch động được chứng minh trong [11] là ở mức 𝓞(3𝑛), với n là số lượng quan hệ trong truy vấn Do đó, khi mở rộng thuật toán

này để áp dụng cho môi trường CSDL phân tán thì độ phức tạp của thuật toán sẽ tăng lên, do có thể có sự tồn tại việc các quan hệ được nhân bản tại một số trạm

Trong môi trường CSDL tập trung, mỗi optPlan(O) bất kỳ chỉ bao gồm một phương án thực thi truy vấn duy nhất và hàm joinPlans(optPlan(O), optPlan(S–O))

ở dòng lệnh thứ 11 của thuật toán quy hoạch động chỉ tạo ra một phương án duy nhất Tuy nhiên, trong môi trường CSDL phân tán, trường hợp xấu nhất, giả sử rằng

không có phương án nào được loại bỏ trong quá trình thực hiện hàm prunePlans, thì ứng với mỗi cấu trúc phương án thực thi trong optPlan(O) bất kỳ có thể gồm tối đa s biến thể khác nhau, tương ứng với s trạm mà ở đó, kết quả của phương án có thể được

Trang 34

Chương 2: Các thành phần quan trọng trong tối ưu truy vấn CSDL phân tán

tạo ra, tức là trạm mà phép kết sau cùng của phương án được thực hiện Do đó, hàm

joinPlans(optPlan(O), optPlan(S–O)) trong môi trường phân tán có thể tạo ra tối đa

s 3 phương án, ứng với s biến thể của optPlan(O), s biến thể của optPlan(S–O), s trạm

mà phương án có thể được thực thi tại đó Như vây, trong môi trường CSDL phân

tán, thuật toán quy hoạch động sẽ phải xem xét số lượng phương án nhiều hơn s 3 số lượng phương án trong môi trường CSDL tập trung Do đó, độ phức tạp của thuật toán quy hoạch trong môi trường CSDL phân tán là: 𝓞(3𝑛 ∗ 𝑠3), với s là số trạm trong hệ thống phân tán

Trang 35

CHƯƠNG 3: ỨNG DỤNG THUẬT TOÁN IDP VỚI SỰ CẢI TIẾN CÁCH TIẾP CẬN

3.1 Giới thiệu:

Như đã trình bày trong phần trước, hạn chế lớn nhất của thuật toán tìm kiếm

đầy đủ, cụ thể trong báo cáo này là quy hoạch động, là khi giá trị n đại diện cho số

lượng các quan hệ trong truy vấn kết đủ lớn, sẽ có sự gia tăng nhanh chóng kích thước không gian tìm kiếm của thuật toán quy hoạch động, thuật toán cần một lượng rất lớn

bộ nhớ để lưu trữ tất cả các phương án thực thi truy vấn, thời gian cần để hoàn thành thuật toán cũng rất lớn, do phải liệt kê và xem xét tất cả các phương án đó để tìm ra một phương án có chi phí nhỏ nhất Trong thử nghiệm thực tế được thực hiện trong phần mô phỏng thuật toán, với một truy vấn kết liên quan đến 16 quan hệ, thuật toán quy hoạch động cần đến cả giờ để tìm ra phương án thực thi truy vấn có chi phí nhỏ nhất Thời gian này còn lớn hơn nhiều so với thời gian để thực thi một phương án bất

kỳ trong số tất cả các phương án thực thi truy vấn thuộc không gian tìm kiếm của thuật toán Trong trường hợp này, thuật toán quy hoạch động không đáp ứng được yêu cầu tối ưu thời gian thực thi truy vấn

Bên cạnh đó, với một truy vấn được đưa ra, thường có nhiều phương án khả thi

có thể giúp mang lại kết quả Thay vì tốn rất nhiều chi phí để liệt kê, xem xét tất cả các phương án trong không gian tìm kiếm và tìm ra phương án tốt nhất bằng cách sử dụng thuật toán quy hoạch động, chúng ta có thể sử dụng một vài phương pháp tìm kiếm heuristic để làm giảm kích thước không gian tìm kiếm, và nhanh chóng tìm ra một phương án thực thi truy vấn có chi phí ở mức chấp nhận được, mà vẫn giúp thời gian phản hồi kết quả truy vấn lại cho người dùng với thời gian nhanh hơn

Do đó, thuật toán IDP được đề xuất để giải quyết các hạn chế về sự bùng nổ

kích thước không gian tìm kiếm và thời gian trả về kết quả của thuật toán quy hoạch động Ý tưởng chính của thuật toán IDP là lặp lại nhiều lần thuật toán quy hoạch động trong quá trình tìm kiếm phương án thực thi truy vấn khả thi có chi phí thấp, và có thể được xem như một sự kết hợp của của thuật toán quy hoạch động và thuật toán Heuristic tham lam.Có nhiều biến thể của thuật toánIDP, tuy nhiên trong khuôn khổ

Trang 36

Chương 3: Ứng dụng thuật toán IDP với sự cải tiến cách tiếp cận

của luận văn này, biến thể Standard-Best-Plan của thuật toán IDP với một sự cải tiến

về cách tiếp cận sẽ được áp dụng để áp dụng vào luận văn, với mục tiêu chính là tối

ưu truy vấn kết trong môi trường CSDL phân tán

3.2 Thuật toán tối ưu IDP và cách tiếp cận cải tiến:

Về cơ bản, thuật toán IDP được đề xuất trong [12] sau đây hoạt động gần giống như thuật toán quy hoạch động, tuy nhiên có điểm khác biệt quan trọng của thuật toán IDP so với thuật toán quy hoạch động là giảm kích thước không gian tìm kiếm, giảm lượng bộ nhớ cần cho thuật toán, và có thể hạn chế thời gian dùng cho việc tối ưu truy vấn

3.2.1 Mô tả thuật toán tối ưu IDP:

Để hiểu cách thức mà thuật toán IDP hoạt động, hãy xem xét trong trường hợp

mà người dùng muốn tối ưu một truy vấn kết q liên quan đến n quan hệ chứa trong tập R={R 1, R 2 ,…, R n}, giả sử rằng: người dùng không muốn tốn quá nhiều thời gian cho việc thực hiện tối ưu; hoặc bộ nhớ của máy tính chỉ đủ để lưu tất cả các phương

án thực thi truy vấn có tối đa k quan hệ, với k < n, có thể liệt kê như: các phương án

có 2 quan hệ, các phương án có 3 quan hệ,…, các phương án có k quan hệ Trong

trường hợp này, nếu sử dụng tối ưu truy vấn dựa trên thuật toán quy hoạch động, thì

khi thuật toán xem xét đến phương án thực thi truy vấn có k quan hệ, máy tính sẽ không đủ bộ nhớ để tiếp tục tạo và xem xét các phương án có k + 1 quan hệ, kết quả tối ưu truy vấn là một phương án thực thi có n quan hệ sẽ không được trả về Tuy

nhiên, thuật toán tối ưu truy vấn IDP có thể giúp tránh được trường hợp này

Trang 37

Chương 3: Ứng dụng thuật toán IDP với sự cải tiến cách tiếp cận

Thuật toán 2: Iterative Dynamic Programming

1: Đầu vào: {Truy vấn kết q liên quan đến n quan hệ R 1,

19: Tìm P, V với P ∈ optPlan(V), V ⊆ toDo, |V| = k mà

g(P) = min(g(P’) | P’ ∈ optPlan(W), W ⊆ toDo,

|W|=k)

20: Tạo một biến mới: 𝓣

21: optPlan({𝓣}) = {P}

Trang 38

Chương 3: Ứng dụng thuật toán IDP với sự cải tiến cách tiếp cận

Hình 3.1: Thuật toán tối ưu IDP [12]

Đầu vào của thuật toán bao gồm:

 Truy vấn kết q liên quan đến các quan hệ R 1 ,R 2 ,…, R n;

 Tham số k đại diện cho kích thước của phương án thực thi truy vấn con Đầu ra của thuật toán là một phương án thực thi cho truy vấn q dưới dạng một

cây kết nối

Ở các bước đầu tiên, thuật toán IDP hoạt động tương tự như thuật toán quy

hoạch động, sẽ tạo ra accessPlans, tạo và xem xét các phương án có 2 quan hệ, các phương án có 3 quan hệ, …, các phương án có k quan hệ Ở bước tiếp theo, thay vì tiếp tục tạo và xem xét các phương án có k + 1 quan hệ như thuật toán quy hoạch động, thuật toán IDP không tạo ra các phương án có k + 1 quan hệ này, mà sẽ so sánh tất cả các phương án có k quan hệ với nhau, sau đó chọn ra một phương án P có tổng thời gian thực thi ước lượng nhỏ nhất và tập hợp V chứa tất cả các quan hệ đã xây dựng nên phương án P

Tiếp theo, thuật toán tạo ra một biến tạm 𝓣 đại diện cho tất cả các quan hệ được

chứa trong V, phương án thực thi với V sẽ được sao chép thành phương án thực thi

với 𝓣, xóa các quan hệ chứa trong V ra khỏi tập các quan hệ toDo dùng để xây dựng

phương án và thêm 𝓣 vào toDo, xem 𝓣 như một quan hệ mới

Lúc này, đặc biệt không chỉ các phương án chứa các các quan hệ thuộc tập con

𝑂 ⊆ 𝑉 có thể được loại bỏ như ở dòng lệnh thứ 23 trong thuật toán nêu trên (Duyệt

tất cả O ⊆ V do delete(optPlan(O))), mà các phương án chỉ cần chứa bất kỳ một hoặc

nhiều quan hệ nào thuộc V đều có thể được loại bỏ để giảm dung lượng bộ nhớ được

Trang 39

Chương 3: Ứng dụng thuật toán IDP với sự cải tiến cách tiếp cận

sử dụng cho thuật toán, vì các phương án này không còn được dùng đến trong quá trình tạo và xem xét các phương án ở các bước tiếp theo

Ví dụ, với R = {R 1 , R 2 , , R 6 }, k = 3, giả sử T 1 đại diện cho {R 1 , R 2 , R 3} trong phương án thực thi được chọn ở bước đầu tiên, thì ở lần lặp quy hoạch động tiếp theo,

chỉ có các phương án liên quan đến các quan hệ thuộc tập toDo={T 1 , R 4 , R 5 , R 6} được

xem xét, các phương án chỉ cần chứa bất kỳ một quan hệ trong số R 1 , R 2 , R 3 như

R 1 ⋈R 2 , R 2 ⋈R 3 , R 3 ⋈R 4 , R 1 ⋈(R 2 ⋈ R 3 ), R 3 ⋈(R 4 ⋈ R 5 ), R 3 ⋈(R 5 ⋈ R 6), …, đều không cần thiết được lưu trong bộ nhớ nữa và cần được loại bỏ, thay vì chỉ xóa các phương

án chứa các quan hệ là tập con của tập {R 1 , R 2 , R 3 } như R 1 , R 2 , R 3 , R 1 ⋈ R 2 , R 2 ⋈ R 3,

R 1 ⋈(R 2 ⋈ R 3), …

Do đó, để loại bỏ tất cả các phương án không cần thiết, báo cáo này đề xuất

thay đổi dòng lệnh thứ 23 trong thuật toán IDP là

Duyệt tất cả O ⊆ V do delete(optPlan(O))

trở thành

Ở ví dụ trên với n=6, k=3, giả sử truy vấn có dạng hình clique, trong bước chọn phương án có k quan hệ lần lặp đầu tên, việc thay đổi này sẽ giúp xóa đi 33 phương

án không cần thiết thay vì 15 phương án

Tiếp tục quay lại quá trình chạy thuật toán, quy trình tạo các phương án có 2

quan hệ, …, các phương án có k quan hệ như trên sẽ được lặp lại tương tự cho đến khi kích thước của tập toDo bằng 1, và phương án thực thi cuối cùng sẽ được trả về

Thuật toán IDP được xem là sự kết hợp của thuật toán quy hoạch động và

Heuristic tham lam, với k < n thuật toán IDP cần từ 2 lần lặp quy hoạch động trở lên

để tìm ra kết quả cuối cùng, k càng lớn thì kết quả trả thường sẽ tốt hơn, vì ở mỗi

bước lặp, số lượng các phương án được tạo và xem xét sẽ nhiều hơn, việc xác định một phương án tối ưu được chọn để chuyển sang lần lặp tiếp theo được xem xét kỹ lưỡng hơn, giảm bớt rủi ro chọn phải một con đường sai lầm dẫn đến một kết quả cuối cùng không tốt, và tất nhiên đi kèm với kết quả tốt hơn, thời gian cần để thuật

Trang 40

Chương 3: Ứng dụng thuật toán IDP với sự cải tiến cách tiếp cận

toán trả về kết quả cũng sẽ lớn hơn Khi k ≥ n, thuật toán IDP chỉ cần 1 lần lặp, và sẽ

hoạt động tương tự thuật toán quy hoạch động

3.2.2 Cách tiếp cận đề xuất cải tiến thuật toán IDP:

Thuật toán IDP đã kết hợp thành công thuật toán tối ưu quy hoạch động và heuristic tham lam, có thể tìm ra phương án thực thi rất tốt đối với các truy vấn đơn giản và cũng có thể thực hiện tối ưu các truy vấn phức tạp với nhiều quan hệ trong thời gian ngắn, với chất lượng phương án thường tỉ lệ thuận với thời gian tối ưu Khi

số lượng các quan hệ trong mỗi phương án con (k) nhỏ, chi phí của phương án trả về thường có giá trị lớn, và khi k tăng lên, thuật toán thường trả về kết quả truy vấn là

một phương án có chi phí thấp hơn, nhưng sẽ mất nhiều thời gian hơn cho việc tối

ưu Thuật toán IDP sử dụng cách tiếp cận tham lam, ở mỗi bước thực hiện tối ưu, các phương án con tốt nhất được chọn một cách cục bộ dựa vào chi phí của phương án con tại thời điểm hiện tại mà không có sự ước lượng, đánh giá về kết quả toàn cục khi chọn phương án con này Điều này làm cho khả năng lựa chọn nhầm phương án con dẫn đến kết quả sau cùng không tốt là hiện hữu, chất lượng của các phương án

có độ chênh lệch với nhau lớn ứng với mỗi giá trị k, làm cho việc xác định giá trị k

để cân bằng giữa hai giá trị thời gian tối ưu và tổng thời gian của phương án để trả về kết quả truy vấn cho người dùng trong thời gian ngắn là rất khó khăn, vì các truy vấn

có thể thay đổi liên tục tùy theo nhu cầu của người dùng, đặc biệt với các truy vấn có

số lượng quan hệ lớn

Do đó, để thuật toán IDP có sự đánh giá về kết quả toàn cục ở mỗi bước lặp lại quy hoạch động, báo cáo luận văn này đề xuất một cách tiếp cận mới thay thế cho cách tiếp cận tham lam, đó là kết hợp cách tiếp cận heuristic được sử dụng trong thuật toán A* vào thuật toán IDP, và gọi là thuật toán IDP+ Tại mỗi bước lặp lại quy hoạch động, cách tiếp cận heuristic này không chỉ đánh giá chi phí của phương án con đang được xem xét, mà còn sử dụng một hàm đánh giá heuristic để ước lượng chi phí cần thiết để kết quả truy vấn có thể trả về cho người dùng, thông qua công thức:

với g(P) là chi phí của phương án con P đang được xem xét, h(P) là hàm đánh giá heuristic về chi phí nhỏ nhất cần thiết để trả về kết quả truy vấn nếu P được chọn

Ngày đăng: 23/12/2018, 06:16

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w