Tải bản đầy đủ (.pdf) (27 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (437.47 KB, 27 trang )

ĐẠ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




ĐẠ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

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên




-1-

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
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên





-2-

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

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên




-1-

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.
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên




-2-

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.

Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên





-3-

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
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên




-4-

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ơ
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên




-5-

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.
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên




-6-

- 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ở
Số hóa bởi Trung tâm Học liệu - Đại học Thái Nguyên




data error !!! can't not
read....



data error !!! can't not
read....


data error !!! can't not
read....


data error !!! can't not
read....


data error !!! can't not
read....



data error !!! can't not
read....


data error !!! can't not
read....


data error !!! can't not
read....


data error !!! can't not

read....


data error !!! can't not
read....


data error !!! can't not
read....

data error !!! can't not
read....


data error !!! can't not
read....

data error !!! can't not
read....


data error !!! can't not
read....

data error !!! can't not
read....




×