Tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán

10
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn ĐẠI HỌC THÁI NGUYÊN KHOA CÔNG NGHỆ THÔNG TIN -------------------------------- PHẠM THỊ THU HUYỀN TỐI ƯU HÓA TRUY VẤN TRONG CƠ SỞ DỮ LIỆU PHÂN TÁN 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. ĐOÀN VĂN BAN Thái Nguyên - 2010

Transcript of Tối ưu hóa truy vấn trong cơ sở dữ liệu phân tán

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

ĐẠI HỌC THÁI NGUYÊN

KHOA CÔNG NGHỆ THÔNG TIN

--------------------------------

PHẠM THỊ THU HUYỀN

TỐI ƯU HÓA TRUY VẤN

TRONG CƠ SỞ DỮ LIỆU PHÂN TÁN

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. ĐOÀN VĂN BAN

Thái Nguyên - 2010

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

ĐẠI HỌC THÁI NGUYÊN

KHOA CÔNG NGHỆ THÔNG TIN

--------------------------------

PHẠM THỊ THU HUYỀN

TỐI ƯU HÓA TRUY VẤN

TRONG CƠ SỞ DỮ LIỆU PHÂN TÁN

Chuyên nghà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. ĐOÀN VĂN BAN

Thái Nguyên - 2010

-1-

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

MỤC LỤC

Trang phụ bìa

Lời cam đoan

Lời cám ơn

Mục lục...................................................................................................................................i

Danh mục ký hiệu, các chữ viết tắt.................................................................................... ii

Danh mục hình vẽ, ảnh chụp, đồ thị..................................................................................iii PHẦN MỞ ĐẦU ............................................................................................................... 1

1. Lý do chọn đề tài ................................................................................................... 1

2. Phạm vi nghiên cứu và ứng dụng ....................................................................... 1

3. Ý nghĩa khoa học ................................................................................................... 1

4. Phƣơng pháp nghiên cứu ..................................................................................... 1

5. Các kết quả dự kiến đạt đƣợc ............................................................................. 2

Chƣơng 1. CƠ SỞ DỮ LIỆU PHÂN TÁN ................................................................. 3

1.1. Khái niệm về hệ cơ sở dữ liệu phân tán .......................................................... 3 1.1.1. Khái niệm ......................................................................................................... 3

1.1.2 Những ưu điểm của cơ sở dữ liệu phân tán ........................................................ 3

1.1.3 Những nhược điểm của cơ sở dữ liệu phân tán ................................................... 4

1.2. Các đặc trƣng trong suốt của cơ sở dữ liệu phân tán ................................... 5 1.2.1 Trong suốt phân tán ........................................................................................... 5

1.2.2 Trong suốt giao dịch ........................................................................................ 6

1.2.3 Trong suốt thất bại ........................................................................................... 6

1.2.4 Trong suốt thao tác ........................................................................................... 6

1.2.5 Trong suốt về tính không thuần nhất .................................................................. 7

1.3 Kiến trúc tham chiếu của cơ sở dữ liệu phân tán ......................................... 7

1.4 Các kỹ thuật xây dựng cơ sở dữ liệu phân tán .................................................... 8

1.4.1 Phân đoạn ......................................................................................................... 8

1.4.3 Định vị dữ liệu ................................................................................................. 13

1.5 Kết luận ............................................................................................................. 14

Chƣơng 2. CÁC NGUYÊN LÝ CHUNG CỦA TỐI ƢU HÓA CÂU TRUY VẤN

PHÂN TÁN ..................................................................................................................... 15

2.1. Các chiến lƣợc tối ƣu hóa cơ bản .................................................................. 15

2.2. Các phép biến đổi đại số ................................................................................. 16 2.2.1 Các yêu cầu của phép biến đổi tối ưu hoá câu truy vấn .................................... 16

2.2.2 Biểu thức tương đương ..................................................................................... 17

2.2.3 Các qui tắc liên quan đến phép kết nối và tích Decartes ................................... 17

2.2.4. Các qui tắc liên quan đến phép chọn và phép chiếu......................................... 18

2.2.5. Thuật toán cải tiến cây biểu diễn biểu thức quan hệ .................................. 19

2.3 Phân rã câu truy vấn thành những câu truy vấn con ................................. 24 2.3.1 Đồ thị nối các quan hệ ................................................................................... 24

2.3.2. Tách câu truy vấn thành các câu truy vấn con ............................................. 25

2.3.3 Dùng phép nửa kết nối để giảm kích thước quan hệ................................... 26

2.3.4 Phương pháp thay thế n-bộ .............................................................................. 26

2.4 Các kỹ thuật tối ƣu hóa tập trung..................................................................... 27

2.4.1 Thuật toán INGRES ....................................................................................... 28

-2-

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

2.4.2 Thuật toán SYSTEM R ................................................................................... 31

2.5 Kết luận .............................................................................................................. 34

Chƣơng 3. TỐI ƢU HÓA TRUY VẤN PHÂN TÁN ............................................... 35

3.1 Phân rã câu truy vấn ........................................................................................... 35

3.1.1 Chuẩn hoá ...................................................................................................... 35

3.1.2 Phân tích ......................................................................................................... 36

3.1.3 Loại bỏ dư thừa .............................................................................................. 39

3.1.4 Viết lại ............................................................................................................. 40

3.2 Định vị dữ liệu phân tán ...................................................................................... 42 3.2.1 Rút gọn phân đoạn ngang nguyên thuỷ ......................................................... 43

3.2.2 Rút gọn phân đoạn dọc .................................................................................. 46

3.2.3 Rút gọn phân đoạn gián tiếp ......................................................................... 47

3.2.4 Rút gọn phân đoạn hỗn hợp ............................................................................. 49

3.3. Khái quát về xử lý câu truy vấn ........................................................................ 50 3.3.1. Vấn đề xử lý truy vấn ..................................................................................... 51

3.3.2. Các mục tiêu của xử lý câu truy vấn ............................................................. 52

3.3.3. Các giai đoạn xử lý câu truy vấn................................................................... 52

3.4. Tối ƣu hoá các truy vấn phân tán ...................................................................... 53 3.4.1. Đầu vào bộ tối ưu hoá câu truy vấn .............................................................. 54

3.4.2. Thứ tự kết nối trên các câu truy vấn đoạn .................................................. 59

3.4.3. Các thuật toán tối ưu hoá câu truy vấn phân tán ......................................... 65

3.4.3 Kết luận ......................................................................................................... 82

Chƣơng 4. CÀI ĐẶT VÀ THỬ NGHIỆM THUẬT TOÁN .......................................... 85

4.1 Xác định thuật toán .......................................................................................... 85

4.2 Cài đặt thử nghiệm thuật toán tối ƣu truy vấn trong cơ sở dữ liệu phân

tán .............................................................................................................................. 85 4.2.1. Cấu trúc của CSDL ...................................................................................... 85

4.2.2. Xây dựng ứng dụng ....................................................................................... 88

4.3 Kết luận ................................................................................................................ 95

KẾT LUẬN .................................................................................................................. 96

TÀI LIỆU THAM KHẢO .............................................................................................. 97

-1-

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

PHẦN MỞ ĐẦU

1. Lý do chọn đề tài

Xã hội ngày càng phát triển kèm theo yêu cầu khối lượng thông tin cần xử

lý, lưu trữ tăng lên. Trên thực tế, các doanh nghiệp, các đơn vị và các tổ chức phải

phân bố trên một vùng rộng lớn về mặt địa lý, có thể dàn trải trên phạm vi nhiều

thành phố, hoặc toàn bộ quốc gia hay đến một vài quốc gia, thậm chí trên toàn

cầu. Do đó, dữ liệu không thể lưu trữ tập trung ở một địa điểm nhất định mà rải

khắp các địa điểm mà cơ quan, tổ chức hay doanh nghiệp đó hoạt động. Khi dữ liệu

không còn lưu trữ tập trung thì vấn đề làm thế nào để quản lý, tốc độ truy xuất dữ

liệu phục vụ cho công tác chuyên môn không bị ảnh hưởng, không bị gián đoạn

được đặt ra. Đó chính là tiền đề để cơ sở dữ liệu phân tán ra đời.

Khi khối lượng thông tin phải xử lý ngày càng lớn, phong phú và đa dạng

thì vấn đề đặt ra là xử lý thông tin như thế nào để giảm chi phí đến mức tối

thiểu. Một trong các giải pháp có tính khả thi là phải tối ưu hoá các câu lệnh khi

truy vấn dữ liệu nên tôi chọn nghiên cứu “Tối ưu hoá truy vấn trong cơ sở dữ

liệu phân tán” làm đề tài luận văn tốt nghiệp của mình.

2. Phạm vi nghiên cứu và ứng dụng

Đề tài nghiên cứu về các vấn đề cơ bản của cơ sở dữ liệu phân tán, các

nguyên lý chung, các kỹ thuật, các thuật toán liên quan đến vấn đề tối ưu hoá truy

vấn và cài đặt thử nghiệm một thuật toán tối ưu truy vấn phân tán.

3. Ý nghĩa khoa học

Trên cơ sở nghiên cứu các mô hình CSDL phân tán và các cơ chế truy vấn để

xây dựng thuật toán truy vấn tối ưu. Những kết quả dự kiến của luận văn sẽ góp

phần vào việc thiết kế CSDL phân tán phục vụ cho việc truy vấn hiệu quả.

4. Phương pháp nghiên cứu

Nghiên cứu lý thuyết CSDL, CSDL phân tán, các kỹ thuật truy vấn trong các sách,

bài báo đã công bố. Tổng hợp các kết quả đã công bố về truy vấn tối ưu và đề xuất

một số cải tiến thực hiện tối ưu hóa truy vấn phân tán.

-2-

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

5. Các kết quả dự kiến đạt được

- Giới thiệu tổng quan về CSDL phân tán.

- Trình bày các phương pháp, thuật toán tối ưu hóa truy vấn phân tán.

- Cài đặt thử nghiệm một thuật toán tối ưu truy vấn phân tán.

-3-

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Chƣơng 1. CƠ SỞ DỮ LIỆU PHÂN TÁN

1.1. Khái niệm về hệ cơ sở dữ liệu phân tán

1.1.1. Khái niệm

Cơ sở dữ liệu phân tán [3] là một tập hợp các dữ liệu phục thuộc lôgic lẫn

nhau của cùng một hệ thống và được lưu trữ trên các trạm của một mạng máy tính.

Cơ sở dữ liệu phân tán làm tăng khả năng truy nhập tới cơ sở dữ liệu lớn trên mạng.

Trong hệ thống đó mỗi máy tính quản lý một cơ sở dữ liệu thành phần được gọi là 1

node hoặc site.

Hệ quản trị cơ sở dữ liệu phân tán (DBMS) là phần mềm quản trị cơ sở dữ

liệu, đảm bảo trong suốt đối với người sử dụng và cho phép tính tự trị nghĩa là mỗi

cơ sở dữ liệu thành phần vẫn được quản trị độc lập và riêng biệt.

Định nghĩa này nhấn mạnh hai khía cạnh quan trọng của cơ sở dữ liệu phân

tán

- Tính phân tán: Thực tế dữ liệu không cư trú ở cùng một trạm, vì vậy chúng

ta có thể phân biệt một cơ sở dữ liệu phân tán với cơ sở dữ liệu tập trung.

- Sự tương quan logic: Các dữ liệu có một số tính chất ràng buộc lẫn nhau và

như vậy có thể phân biệt cơ sở dữ liệu phân tán với tập các cơ sở dữ liệu địa

phương hoặc với các tệp ở các trạm khác nhau trên mạng.

1.1.2 Những ưu điểm của cơ sở dữ liệu phân tán

Lợi ích cơ bản nhất của cơ sở dữ liệu phân tán là dữ liệu của các cơ sở dữ

liệu vật lý riêng biệt được tích hợp logic với nhau làm cho nhiều người sử dụng trên

mạng có thể truy nhập được [6].

1. Cho phép quản lý dữ liệu với nhiều mức trong suốt

- Trong suốt mạng - phân tán: Hệ quản trị cơ sở dữ liệu phải được trong suốt

phân tán theo nghĩa làm cho người sử dụng không cần biết vị trí của dữ liệu và

không cần biết sự phức tạp truy cập qua mạng.

- Trong suốt bản sao

- Trong suốt phân đoạn

2. Tăng độ tin cậy và khả năng sẵn sàng

Độ tin cậy là khả năng hệ thống đang làm việc (không bị ngừng) tại một thời

điểm nào đó, tính sẵn sàng là khả năng hệ thống tiếp tục làm việc trong một khoảng

-4-

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

thời gian nào đó. Khi dữ liệu và cơ sở dữ liệu phân tán trên một vài trạm, một trạm

có thể có sự cố trong khi các trạm khác vẫn có thể hoạt động hoặc sử dụng các

thành phần khác của cơ sở dữ liệu. Chỉ trên trạm bị sự cố, dữ liệu và ứng dụng

không thể truy cập được. Để nâng cao độ tin cậy và tính sẵn sàng, có thể áp dụng

cơ chế tạo bản sao trên nhiều trạm.

3. Cải thiện hiệu năng

Một hệ quản trị cơ sở dữ liệu phân tán, phân đoạn cơ sở dữ liệu có thể làm

cho dữ liệu sẽ được lưu giữ tại gần nơi sử dụng nhất. Dữ liệu được lưu giữ cục bộ

làm giảm cạnh tranh CPU, giảm các phục vụ I/O và giảm tương tranh truy nhập

trên mạng. Dữ liệu được phân tán tại các trạm nên dung lượng dữ liệu cục bộ sẽ

nhỏ hơn, các xử lý giao tác và truy vấn cục bộ sẽ được thực hiện tốt hơn. Hơn nữa

trên mỗi trạm có ít các giao tác hơn số các giao tác trên cơ sở dữ liệu tập trung vì

vậy cũng tăng hiệu suất hệ thống.

4. Dễ dàng mở rộng

Việc thêm cơ sở dữ liệu mới, tăng kích cỡ cơ sở dữ liệu hoặc thêm bộ xử lý

trong môi trường phân tán là dễ hơn vì cũng chỉ như là thêm các cơ sở dữ liệu thành

phần.

1.1.3 Những nhược điểm của cơ sở dữ liệu phân tán

- Độ phức tạp thiết kế và cài đặt hệ thống tăng: Hệ quản trị cơ sở dữ liệu

phân tán phải bổ sung thêm các chức năng như:

+ Theo dõi dấu vết dữ liệu

+ Xử lý các truy vấn phân tán

+ Quản lý giao dịch phân tán

+ Phục hồi cơ sở dữ liệu phân tán

+ Quản lý các bản sao

+ Quản lý thư mục - catalog phân tán

- Hệ thống phần cứng cũng phức tạp hơn vì cần có nhiều trạm và các trạm

phải được kết nối trên mạng.

- Các phần mềm hệ thống đảm bảo quản trị, duy trì kết nối, trao đổi dữ liệu

trên mạng.

- Bảo mật khó khăn.

Ở mức phần cứng vật lý, những nhân tố chính sau là để phân biệt một hệ cơ

-5-

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

sở dữ liệu phân tán với hệ cơ sở dữ liệu tập trung [6]:

- Có nhiều máy tính được gọi là các trạm hay các nút.

- Các trạm này phải được kết nối bởi một kiểu mạng truyền thông để truyền

dữ liệu và những câu lệnh giữa các trạm với nhau, như là ở hình 1.1

Hình 1.1 Kiến trúc cơ sở dữ liệu phân tán

Trong mô hình dữ liệu tập trung, tài nguyên tập trung tại một máy tính.

Trong hệ thống cơ sở dữ liệu phân tán, cơ sở dữ liệu được chứa trong nhiều máy

tính, các máy tính này được nối với nhau qua các hệ thống truyền thông, chúng

không chia sẻ bộ nhớ chung cũng như không dùng chung đồng hồ. Các bộ xử lý

trong hệ thống phân tán có kích cỡ và chức năng khác nhau (chẳng hạn có thể bao

gồm các bộ vi xử lý, trạm làm việc, máy tính mini, hay các máy lớn vạn năng).

Trong hệ thống cơ sở dữ liệu phân tán gồm nhiều trạm thì mỗi trạm có thể truy

nhập dữ liệu ở các trạm khác.

1.2. Các đặc trƣng trong suốt của cơ sở dữ liệu phân tán

1.2.1 Trong suốt phân tán

- Cho phép xử lý dữ liệu trên hệ cơ sở dữ liệu phân tán giống như đối với cơ

sở dữ liệu tập trung.

- Người sử dụng không cần biết: Dữ liệu đã được phân đoạn như thế nào,

các bản sao dữ liệu để ở đâu, vị trí vật lý lưu trữ dữ liệu ở đâu.

-6-

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

- Trong suốt phân tán thể hiện:

+ Trong suốt địa điểm: User không cần biết lưu trữ vật lý của dữ liệu ở đâu,

trong truy vấn chỉ cần chỉ ra tên đoạn mà không cần chỉ ra vị trí.

+ Trong suốt tên: Khi một đối tượng đã được đặt tên thì có thể truy nhập

chính xác không cần đặc tả thêm.

+ Trong suốt bản sao: Sự nhân bản là quá trình sao chép và duy trì dữ liệu

trong hệ cơ sở dữ liệu phân tán. Cùng một dữ liệu (được lưu trữ vật lý tại một vị trí)

có thể sử dụng được trên nhiều vị trí khác nhau. Các bản sao có thể được lưu trữ

trên nhiều trạm làm tăng hiệu suất, độ tin cậy và tính sẵn sàng của hệ thống. Các

ứng dụng có thể truy nhập dữ liệu tại các trạm mà không cần phải truy cập từ xa

giảm truyền tải trên mạng lớn. Hệ thống cho phép tiếp tục thực hiện nếu như các

trạm từ xa có sự cố. Trong suốt bản sao đảm bảo user không biết đó là các bản sao

vì dữ liệu luôn được cập nhật và đồng bộ với dữ liệu gốc.

+ Trong suốt phân đoạn: Một quan hệ trong cơ sở dữ liệu phân tán có thể

phân đoạn ngang hoặc phân đoạn dọc nghĩa là được tách thành các bộ dữ liệu hoặc

các quan hệ con và lưu trữ trên nhiều trạm khác nhau. Trong suốt phân đoạn cho

phép người sử dụng không cần biết có sự phân đoạn, các truy vấn dữ liệu vẫn được

viết như cơ sở dữ liệu tập trung.

1.2.2 Trong suốt giao dịch

Cơ sở dữ liệu phân tán cho phép một giao dịch có thể cập nhật, sửa đổi dữ

liệu trên các trạm khác nhau. Để đảm bảo dữ liệu nhất quán trên toàn hệ thống, các

trạm trong giao dịch chỉ ủy thác khi tất cả các trạm đã ủy thác thành công hoặc roll

back khi một trạm bị thất bại.

1.2.3 Trong suốt thất bại

Đảm bảo tại một trạm của hệ thống bị hỏng thì hệ thống vẫn làm việc bình

thường (do cơ chế tạo bản sao hoặc làm việc trên các trạm không bị sự cố). Nếu

mạng hoặc hệ thống có sự cố trong khi ủy thác của giao dịch cơ sở dữ liệu phân tán

thì giao dịch đó được giải quyết tự động và trong suốt theo nghĩa khi mạng hoặc hệ

thống khôi phục thì tất các các trạm này hoặc là ủy thác hoặc là roll back lại giao

tác đó.

1.2.4 Trong suốt thao tác

Cho phép các câu lệnh thao các dữ liệu đơn giản để truy nhập được các cơ sở