You are on page 1of 29

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

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


TRUYỀN THÔNG

VŨ ĐỨC MẠNH

MỘT SỐ THUẬT TOÁ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

Thái Nguyên - 2016


ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ
TRUYỀN THÔNG

Số hóa bởi Trung tâm Học liệu - ĐHTN


http://www.lrc.tnu.edu.vn
2

VŨ ĐỨC MẠNH

MỘT SỐ THUẬT TOÁN TỐI ƯU HÓA TRUY


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

CHUYÊN NGÀNH: KHOA HỌC MÁY TÍNH


Mã số: 60480101

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 - 2016


MỞ ĐẦU
Sở Giáo dục và Đào tạo (GD&ĐT) tỉnh Yên Bái hiện đang quản
lý trực tiếp 9 phòng Giáo dục và Đào tạo, 24 trường Trung học phổ
thông, 6 trung tâm, 2 trường chuyên nghiệp, với đội ngũ cán bộ quản
lý, giáo viên và nhân viên lên tới hàng trăm nghìn người. Hiện nay tất
cả các đơn vị trên đều đang sử dụng mạng internet.

Số hóa bởi Trung tâm Học liệu - ĐHTN


http://www.lrc.tnu.edu.vn
3

Do trong một năm học, việc thống kê tình hình nhân sự của Sở
GD&ĐT đối với các đơn vị được thực hiện cố định theo định kì đầu,
giữa và cuối năm học, mà dữ liệu về nhân sự luôn thay đổi, nên khó
khăn trong việc cập nhật dữ liệu thường xuyên nên mô hình cơ sở tập
trung sẽ gặp khó khăn về vấn đề máy chủ, băng thông đường truyền,
tính sẵn sàng của hệ thống.
Xuất phát từ thực tế nhu cầu công việc, tôi nhận thấy có thể ứng
dụng cơ sở dữ liệu phân tán để giải quyết những khó khăn ở trên;
chính vì vậy tôi chọn nghiên cứu đề tài "Một số thuật toán tối ưu hóa
truy vấn trong cơ sở dữ liệu phân tán” làm luận văn tốt nghiệp.
Luận văn gồm có 3 chương: Chương 1 trình bày khái quát về cơ
sở dữ liệu phân tán, tìm hiểu các phương pháp thiết kế cơ sở dữ liệu
phân tán, tập trung nghiên cứu các kỹ thuật phân mảnh: phân mảnh
ngang, phân mảnh dọc và phân mảnh hỗn hợp. Chương 2 trình bày chi
tiết các bước trong quy trình xử lý câu truy vấn; trình bày các thuật
toán tối ưu hóa câu truy vấn cơ sở dữ liệu phân tán như: INGRES phân
tán, R*, DP-ACO. Chương 3 cài đặt thực nghiệm 2 thuật toán
INGRES phân tán và R* và đưa ra nhận xét đánh giá.
Chương 1
KHÁI QUÁT VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN
1.1. 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
Một cơ sở dữ liệu (CSDL) phân tán là một tập dữ liệu có quan hệ
logic với nhau, được phân bố trên các máy tính của một mạng máy
tính [1].
1.1.2. Hệ quản trị cơ sở dữ liệu phân tán
Hệ quản trị CSDL phân tán (DDBMS) là một hệ thống phần mềm
Số hóa bởi Trung tâm Học liệu - ĐHTN
http://www.lrc.tnu.edu.vn
4

cho phép quản lý các CSDL phân tán (tạo lập và điều khiển các truy
nhập cho các hệ CSDL phân tán) và làm cho việc phân tán trở nên
trong suốt với người sử dụng [1].
1.1.3. Ưu điểm của cơ sở dữ liệu phân tán
- Cho phép quản lý dữ liệu theo nhiều mức trong suốt.
- Tăng độ tin cậy và khả năng sẵn sàng.
- Cải thiện hiệu năng.
- Tổ chức dữ liệu phân tán kinh tế hơn so với tổ chức dữ liệu tập
trung.
- Dễ dàng mở rộng.
1.1.4. 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.
- Tăng chi phí.
- Bảo mật khó khăn.
- Kiểm soát tính toàn vẹn khó khăn hơn.
1.2. Đặc điểm của cơ sở dữ liệu phân tán
1.2.1. Chia sẻ tài nguyên
Việc chia sẻ tài nguyên của hệ phân tán được thực hiện thông qua
mạng truyền thông.
1.2.2. Tính mở
Tính mở của hệ phân tán được xem xét theo mức độ bổ sung vào
các dịch vụ dùng chung tài nguyên mà không phá hỏng hay nhân đôi
các dịch vụ đang tồn tại.
1.2.3. Khả năng song song
Hệ phân tán hoạt động trên một mạng truyền thông có nhiều máy
tính, mỗi máy có thể có một hay nhiều CPU. Trong cùng một thời
điểm nếu có N tiến trình cùng tồn tại, ta nói chúng thực hiện đồng
thời. Việc thực hiện tiến trình có thể theo cơ chế song (nhiều CPU).

Số hóa bởi Trung tâm Học liệu - ĐHTN


http://www.lrc.tnu.edu.vn
5

1.2.4. Khả năng mở rộng


Khả năng mở rộng được đặc trưng bởi tính không thay đổi phần
mềm hệ thống và phần mềm ứng dụng khi hệ thống được mở rộng.
Điều này chỉ đạt được mức độ nào đó với hệ phân tán hiện tại. Yêu
cầu việc mở rộng không chỉ là sự mở rộng về phần cứng, về mạng mà
nó trải trên các khía cạnh khi thiết kế hệ phân tán.
1.2.5. Khả năng thứ lỗi
Việc thiết kế khả năng thứ lỗi của các hệ thống máy tính dựa trên
hai giải pháp: Dùng khả năng thay thế để đảm bảo sự hoạt động liên
tục và hiệu quả; Dùng các chương trình hồi phục khi xảy ra sự cố.
1.2.6. Tính trong suốt
Tính trong suốt của một hệ phân tán được hiểu như là việc che
khuất đi các thành phần riêng biệt của hệ đối với người sử dụng và
những người lập trình ứng dụng, bao gồm: Tính trong suốt về vị trí, về
việc sử dụng, về việc phân chia, về sự trùng lặp.
1.2.7. Đảm bảo tin cậy và nhất quán
Sự bí mật của dữ liệu phải được bảo vệ, các chức năng khôi phục
hư hỏng phải được đảm bảo. Ngoài ra, yêu cầu của hệ thống về tính
nhất quán cũng rất quan trọng trong thể hiện: không được có mâu
thuẫn trong nội dung dữ liệu.

Số hóa bởi Trung tâm Học liệu - ĐHTN


http://www.lrc.tnu.edu.vn
6

1.3. Các đặc trưng trong suốt của cơ sở dữ liệu phân tán
1.3.1. Trong suốt phân tán
1.3.2. Trong suốt giao dịch
1.3.3. Trong suốt thất bại
1.3.4. Trong suốt thao tác
1.3.5. Trong suốt về tính không thuần nhất
1.4. Kiến trúc cơ bản của cơ sở dữ liệu phân tán
Mô hình kiến trúc CSDL phân tán gồm: Lược đồ tổng thể, lược
đồ phân mảnh, lược đồ định vị và lược đồ ánh xạ cục bộ
1.5. Các kĩ thuật xây dựng cơ sở dữ liệu phân tán
Có 3 chiến lược phân tán dữ liệu cơ bản: Sao lặp dữ liệu, phân
mảnh dữ liệu và phương pháp hỗn hợp.
■S Sao lặp dữ liệu: CSDL được nhân thành nhiều bản từng phần
hoặc đầy đủ và được đặt ở nhiều trạm trên mạng.
s Phân mảnh dữ liệu: CSDL được chia thành các mảnh nhỏ liên
kết với nhau (không trùng lặp). Mỗi phần dữ liệu được đưa đến các
trạm thích hợp để sử dụng.
s Phương pháp hỗn hợp: CSDL được chia thành nhiều phần:
quan trọng và không quan trọng. Phần ít quan trọng được lưu trữ một
nơi, phần quan trọng được lưu trữ ở nhiều nơi khác nhau.
1.5.1. Phân mảnh dữ liệu
Sự phân mảnh là chia dữ liệu trong các bảng dữ liệu thành các bộ
hoặc các bảng dữ liệu con. Có ba kiểu phân mảnh một quan hệ tổng
thể: Phân mảnh ngang, phân mảnh dọc, phân mảnh hỗn hợp [1].
Một sự phân mảnh là đúng đắn nếu tuân thủ 3 quy tắc sau: Tính
đầy đủ; tính phục hồi; tính tách biệt.
1.5.1.1. Phương pháp phân mảnh ngang
Phân mảnh ngang là chia quan hệ thành nhiều các nhóm bộ. Kết
quả của quá trình phân mảnh ngang là các quan hệ con, số lượng quan
hệ con phụ thuộc vào điều kiện ràng buộc của các thuộc tính. Các bộ
Số hóa bởi Trung tâm Học liệu - ĐHTN
7

http://www.lrc.tnu.edu.vn
8

trong các quan hệ con là tách biệt nhau. Phân mảnh ngang thực chất là
phép chọn quan hệ thỏa mãn một biểu thức điều kiện cho trước.
Có hai loại phân mảnh ngang: Phân mảnh ngang nguyên thủy và
phân mảnh ngang dẫn xuất.
a. Phân mảnh ngang nguyên thủy
Phân mảnh ngang nguyên thuỷ được định nghĩa bằng một phép
toán chọn trên các quan hệ đích của một lược đồ của CSDL. Vì thế,
cho biết quan hệ R, các mảnh ngang của R là các R ị: R, = ơ (R), 1 < i <
Fi

n. Trong đó, F là biểu thức đại số quan hệ hội sơ cấp có dạng chuẩn
i

hội.
b. Phân mảnh ngang dẫn xuất
Phân mảnh ngang dẫn xuất là sự phân chia một quan hệ ban đầu
thành các quan hệ thứ hai khác mà các quan hệ đó liên hệ với quan hệ
ban đầu bằng một khoá ngoài. Điều này như là liên hệ dữ liệu giữa
quan hệ ban đầu và quan hệ thứ hai được phân mảnh trong cùng một
cách.
1.5.1.2. Phương pháp phân mảnh dọc
Phân mảnh dọc cho một quan hệ R sinh ra các mảnh R 1, R2,.., Rr,
mỗi mảnh chứa một tập con thuộc tính của R và khoá của R.
Một phân mảnh dọc là đúng đắn nếu thỏa mãn ba quy tắc sau:
- Tính đầy đủ: Nếu một thuộc tính xuất hiện trong một quan hệ
tổng thể thì nó cũng phải xuất hiện trong một mảnh dọc nào đó.
- Tính phục hồi: Cần phải thêm vào mỗi mảnh khoá chính, do đó
việc xây dựng lại được là nhờ vào phép kết nối các mảnh dọc theo các
thuộc tính chung.
- Tính tách biệt: Ít nhất khoá phải được lặp lại trên tất cả các
mảnh để đảm bảo cho phép xây dựng lại, nên ở đây không thể xem là
rời nhau hoàn toàn được.

Số hóa bởi Trung tâm Học liệu - ĐHTN


http://www.lrc.tnu.edu.vn
9

1.5.1.3. Phương pháp phân mảnh hỗn hợp.


Phân mảnh hỗn hợp là sự kết hợp giữa phương pháp phân mảnh
ngang và phân mảnh dọc.
1.5.2. Nhân bản dữ liệu
a. Nhân bản dữ liệu đầy đủ: Toàn bộ CSDL sẽ được tạo trên tất
cả mỗi trạm.
b. Không có nhân bản dữ liệu: Mỗi phân mảnh chỉ được lưu trữ
trên một trạm, phương án này còn được gọi là định vị không dư thừa
dữ liệu.
c. Nhân bản dữ liệu từng phần: Một vài phân mảnh có thể được
tạo bản sao và có thể một số phân mảnh sẽ không có bản sao.
1.5.3. Định vị dữ liệu
Là quá trình gán từng phân mảnh, từng bản sao của phân mảnh
cho một trạm cụ thể trong hệ thống phân tán.
1.6. Kết luận chương 1
CSDL phân tán rất quan trọng vì nhiều lý do khác nhau, nó có thể
được cài đặt trên các mạng máy tính diện rộng và các mạng cục bộ
nhỏ. Có hai lý do về tổ chức và kỹ thuật đối với sự phát triển CSDL
phân tán đó là: CSDL phân tán được xây dựng để khắc phục các thiếu
sót của cơ sở dữ liệu tập trung và nó phù hợp hơn trong cấu trúc phân
quyền của nhiều tổ chức. Kỹ thuật CSDL phân tán được mở rộng và
phát triển từ kỹ thuật của CSDL truyền thống. Trong môi trường mới
này, một số vấn đề kỹ thuật đòi hỏi các giải pháp khác và một số giải
pháp hoàn toàn mới. Tính trong suốt phân tán cung cấp sự độc lập của
các chương trình khỏi sự phân tán của CSDL. Các mức trong suốt
phân tán khác nhau có thể được cung cấp bởi một hệ quản trị CSDL
phân tán; Tại mỗi mức, tính trong suốt làm cho người lập trình ứng
dụng không biết được sự phân tán dữ liệu.
Chương 2
TỐI ƯU HÓA TRUY VẤN CƠ SỞ DỮ LIỆU PHÂN TÁN
Số hóa bởi Trung tâm Học liệu - ĐHTN
http://www.lrc.tnu.edu.vn
10

2.1. Vấn đề tối ưu hóa xử lý truy vấn


2.1.1. Bài toán xử lý truy vấn
Chức năng chính của bộ xử lý truy vấn là chuyển đổi một truy
vấn mức cao (phép tính quan hệ) sang một truy vấn tương đương (đại
số quan hệ). Quá trình chuyển đổi cùng cho một kết quả như nhau [4].
Có hai phương pháp tối ưu cơ bản: Phương pháp biến đổi một
câu truy vấn mức cao thành câu truy vấn tương đương ở mức thấp hơn
dưới dạng biểu thức đại số quan hệ và phương pháp chọn lựa trong số
các câu truy vấn dạng biểu thức đại số quan hệ tương đương một biểu
thức có chi phí thời gian thực hiện và chi phí sử dụng tài nguyên là ít
nhất.
Tối ưu hóa truy vấn là một vấn đề quan trọng trong việc xử lý
truy vấn. Có nhiều phép biến đổi một truy vấn mức cao trên CSDL
phân tán thành nhiều giải pháp thực hiện dưới dạng ngôn ngữ mức
thấp, nhưng trong đó chỉ có một giải pháp thực hiện có hiệu quả, tối ưu
về chi phí sử dụng tài nguyên của mạng, bao gồm chi phí sử dụng bộ
nhớ, thời gian xử lý và thời gian truyền dữ liệu.
Trong môi trường CSDL phân tán, chỉ số đánh giá tối ưu hóa truy
vấn có thể dựa vào tổng chi phí giảm thiểu sử dụng bộ nhớ, chi phí
thời gian cần thiết khi thực hiện các thao tác vào/ra dữ liệu trong bộ
nhớ và chi phí cần thiết để trao đổi dữ liệu giữa các bên tham gia vào
trong quá trình xử lý truy vấn. Chi phí truyền thông là một trong các
nhân tố quan trọng, được quan tâm trong CSDL phân tán.
2.1.2. Các quy tắc biến đổi cây đại số quan hệ
2.1.2.1. Tính chất giao hoán của các phép toán hai ngôi
2.1.2.2. Tính kết hợp của các phép toán hai ngôi
2.1.2.3. Tính lũy đẳng của các phép toán đơn ngôi
2.1.2.4. Giao hoán phép chọn với phép chiếu

Số hóa bởi Trung tâm Học liệu - ĐHTN


http://www.lrc.tnu.edu.vn
11

2.1.2.5. Giao hoán phép chọn với các phép toán hai ngôi
2.1.2.6. Giao hoán phép chiếu với phép toán hai ngôi
2.2. Quá trình xử lý truy vấn
Quá trình xử lý truy vấn bao gồm 4 tầng: phân rã truy vấn, cục bộ
hóa dữ liệu, tối ưu hóa toàn cục và tối ưu hóa cục bộ [2].
2.2.1. Phân rã truy vấn
Phân rã truy vấn là giai đoạn đầu tiên của quá trình xử lý câu truy
vấn, thực hiện việc biến đổi câu truy vấn ở dạng ngôn ngữ bậc cao
thành câu truy vấn ngôn ngữ bậc thấp thực thi cho kết quả tương
đương. Phân rã truy vấn có thể xem như bốn bước liên tiếp nhau:
Chuẩn hoá, phân tích, loại bỏ dư thừa, viết lại câu truy vấn.
2.2.1.1. Chuẩn hóa: Các câu truy vấn bằng các phép tính quan hệ
được viết lại dưới dạng chuẩn tắc thích hợp cho các bước tiếp theo. Sự
chuẩn hóa một câu truy vấn bao gồm đặt các lượng tử và lượng tử hóa
truy vấn bằng cách áp dụng độ ưu tiên các toán tử logic.
2.2.1.2. Phân tích: Câu truy vấn đã chuẩn hóa được phân tích về
mặt ngữ nghĩa nhằm loại bỏ các câu truy vấn sai càng sớm càng tốt.
Tìm ra truy vấn sai chỉ tồn tại với một tập con các phép tính quan hệ.
Thông thường sử dụng một loại đồ thị để nắm bắt ngữ nghĩa của câu
truy vấn.
2.2.1.3. Loại bỏ dư thừa: Câu truy vấn đúng được đơn giản hóa
bằng cách loại bỏ các phụ thuộc dư thừa. Truy vấn dư thừa chỉ xuất
hiện khi một truy vấn là kết quả của việc biến đổi hệ thống được áp
dụng cho truy vấn của người sử dụng.
2.2.1.4. Viết lại câu truy vấn: Câu truy vấn phép tính quan hệ
được xây dựng lại dưới dạng truy vấn đại số quan hệ bằng các quy tắc
biến đổi.
2.2.2. Cục bộ hóa dữ liệu phân tán
Cục bộ hóa dữ liệu chịu trách nhiệm dịch câu truy vấn đại số trên
quan hệ toàn cục sang câu truy vấn đại số quan hệ trên các mảnh vật
Số hóa bởi Trung tâm Học liệu - ĐHTN
http://www.lrc.tnu.edu.vn
12

lý. Cục bộ hóa có sử dụng các thông tin được lưu trong một lược đồ
phân mảnh.
Tầng này xác định xem những mảnh nào cần cho câu truy vấn và
biến đổi câu truy vấn phân tán thành câu truy vấn trên các mảnh. Tạo
ra câu truy vấn trên mảnh được thực hiện qua hai bước:
- Truy vấn phân tán được ánh xạ thành truy vấn trên mảnh bằng
cách thay thế mỗi quan hệ phân tán bằng chương trình xây dựng lại có
chứa các phép toán đại số quan hệ thao tác trên mảnh.
- Truy vấn trên mảnh được đơn giản hoá và xây dựng lại để tạo ra
một truy vấn khác tốt hơn. Quá trình đơn giản hoá và xây dựng lại có
thể được thực hiện theo những quy tắc được sử dụng trong tầng phân
rã.
2.2.2.1. Rút gọn cho phân mảnh ngang nguyên thủy
Để giảm các thao tác truy vấn trên quan hệ đã được phân mảnh
ngang, trước hết phải xác định rõ cần thao tác trên mảnh nào và sau đó
xây dựng lại cây con, xem xét loại bỏ các quan hệ rỗng. Phân mảnh
ngang sẽ được sử dụng để làm đơn giản hóa các phép chọn và phép kết
nối.
Rút gọn phép chọn: Chọn trên các mảnh có lượng từ mâu thuẫn
với lượng từ hoá của quy tắc phân mảnh sẽ sinh ra quan hệ rỗng, ta
loại bỏ chúng.
Rút gọn với phép kết nối: Phép kết nối thực hiện trên các phân
mảnh ngang có thể đơn giản khi kết nối dựa theo các thuộc tính kết
nối, bằng cách phân phối kết nối trên các hợp và sau đó loại bỏ các kết
nối không tác dụng. Việc phân phối các kết nối trên phép hợp được
phát biểu như sau: ( R o R ) tx S = (R 1X1 S) o (R X S)
1 2 1 2

Trong đó, Ri là các mảnh của R và S là một quan hệ.


2.2.2.2. Rút gọn cho phân mảnh ngang dẫn xuất

Số hóa bởi Trung tâm Học liệu - ĐHTN


http://www.lrc.tnu.edu.vn
13

Phân mảnh ngang dẫn xuất là một cách để phân phối hai quan hệ
mà nhờ đó có thể cải thiện khả năng xử lý các điểm giao nhau giữa
phép chọn và phép nối.
Nếu quan hệ R phải phân mảnh dẫn xuất theo quan hệ S, các
mảnh của R và S giống nhau ở thuộc tính kết nối sẽ nằm cùng vị trí.
Ngoài ra, S có thể được phân mảnh theo vị từ chọn.
2.2.2.3. Rút gọn cho phân mảnh dọc.
Phân mảnh dọc phân tán một quan hệ dựa trên các thuộc tính
chiếu. Vì vậy, phép kết nối sẽ là phép toán tái xây dựng các phân mảnh
dọc. Chương trình cục bộ hoá cho một quan hệ phân mảnh dọc bao
gồm các kết nối của các mảnh theo thuộc tính chung. Cũng như phân
mảnh ngang, các câu truy vấn trên các mảnh dọc được rút gọn bằng
cách xác định các quan hệ trung gian vô dụng và loại bỏ các cây con
đã sinh ra chúng.
2.2.2.4. Rút gọn cho phân mảnh hỗn hợp
Câu truy vấn trên các mảnh hỗn hợp có thể được rút gọn bằng
cách tổ hợp các quy tắc tương ứng đã được dùng trong các phân mảnh
ngang nguyên thuỷ, phân mảnh dọc, phân mảnh ngang dẫn xuất.
Quy tắc:
1/ Loại bỏ các quan hệ rỗng được tạo ra bởi các phép toán chọn
mâu thuẫn nahu trên các mảnh ngang.
2/ Loại bỏ các quan hệ vô dụng được tạo ra bởi các phép chiếu
trên các mảnh dọc.
3/ Phân phối các kết nối cho các phép hợp nhằm cô lập và loại bỏ
các kết nối vô dụng.
2.2.3. Tối ưu hóa toàn cục
Bước này sẽ xác định thứ tự thực thi truy vấn các mảnh, trạm nào
hiệu quả để truyền dữ liệu, nơi mà từng phần của câu truy vấn sẽ được

Số hóa bởi Trung tâm Học liệu - ĐHTN


http://www.lrc.tnu.edu.vn
14

thực thi.
2.2.4. Tối ưu hóa cục bộ
Khi các truy vấn con được gửi đến một trạm cụ thể, nó sẽ được
thực thi và tối ưu cục bộ trên trạm đó sử dụng các kỹ thuật tối ưu hóa
tập trung.
2.3. Tối ưu hóa truy vấn phân tán
Mục tiêu của tối ưu hóa truy vấn là làm sao tìm ra một chiến lược
gần tối ưu để thực thi câu truy vấn.
2.3.1. Không gian tìm kiếm
Đối với một câu truy vấn đã cho, không gian tìm kiếm có thể
được định nghĩa như một tập các cây toán tử tương đương, có được
bằng cách áp dụng các quy tắc biến đổi.
2.3.2. Chiến lược tìm kiếm
Có hai chiến lược cơ bản:
- Chiến lược xác định (Deterministic Strategy): Chiến lược này
tiến hành bằng cách xây dựng các kế hoạch, bắt đầu từ các quan hệ cơ
sở, sau đó nối thêm một hoặc nhiều quan hệ ở mỗi bước cho đến khi
thu được mọi kế hoạch khả hữu. Có hai cách: Theo chiều rộng - xây
dựng tất cả các kế hoạch có thể trước khi chọn kế hoạch tốt nhất (Quy
hoạch động (Dynamic Programming)), theo chiều sâu - chỉ xây dựng
một kế hoạch (Greedy).
- Chiến lược ngẫu nhiên (Randomized Strategy): Tiến hành tìm
kiếm giải pháp tối ưu xung quanh một số điểm cụ thể. Chiến lược này
không đảm bảo kế hoạch tối ưu nhưng tránh chi phí cao trong tối ưu
hóa về bộ nhớ và thời gian thực hiện. Chiến lược này áp dụng tốt hơn
với câu truy vấn có 5 - 6 quan hệ trở lên. Hai kỹ thuật tiêu biểu là
Interative Improvement và Simulated Annealing [4].

Số hóa bởi Trung tâm Học liệu - ĐHTN


http://www.lrc.tnu.edu.vn
15

2.3.3. Mô hình chi phí


Mô hình chi phí của bộ tối ưu hóa gồm có các hàm chi phí để dự
đoán chi phí của các toán tử, số liệu thống kê, dữ liệu cơ sở và các
công thức để ước lượng kích thước các kết quả trung gian.
J Hàm chi phí

- Tổng thời gian là tổng của tất cả các thành phần thời gian, còn
thời gian trả lời tính từ lúc bắt đầu đến lúc kết thúc câu truy vấn:
Total_time = TCPU *#insts+TI/O *#I/Os+TMSG *#msgs+TTR * #bytes
Trong đó:
Total_cost: Tổng thời gian;
TCPU: Thời gian của một lệnh CPU;
TI/O: Thời gian cho một thao tác truy xuất/nhập đĩa;
TMSG: Thời gian cố định của việc khởi hoạt và nhận một thông
báo;
TTR: Thời gian cần để truyền một đơn vị dữ liệu từ trạm này tới
trạm khác, ta xem CTR là hằng số;
#insts, #I/Os, #msgsm, #byte: Tương ứng là tổng trên các trạm
của tất cả các số lệnh CPU, số lần truy xuất/ nhập đĩa, số thông báo,
kích thước của tất cả các thông báo.
- Thời gian trả lời của câu truy:
Response_time = TCPU * seq_#insts + TI/O * seq_#I/Os
+ TMSG * seq_#msgs + TTR * seq_#bytes
Trong đó: seq_#x (x có thể là các lệnh CPU, I/O, các thông báo,
các byte) là số lớn nhất của x phải được thực hiện tuần tự đối với sự
thực thi của câu truy vấn.
■S Số liệu thống kê CSDL

Tác nhân chính ảnh hưởng đến hiệu quả hoạt động của một chiến

Số hóa bởi Trung tâm Học liệu - ĐHTN


http://www.lrc.tnu.edu.vn
16

lược thực thi là kích thước các quan hệ


trung gian đã được tạo ra. Khi một phép
toán tiếp theo nằm tại một vị trí khác,
quan hệ trung gian phải được di chuyển đến
đó. Đó chính là điều khiến chúng ta phải
ước lượng kích thước của các kết quả trung
gian của các phép toán đại số quan hệ nhằm
giảm thiểu lượng dữ liệu phải truyền. Việc
ước lượng này dựa trên các thông tin thống
kê về các quan hệ cơ sở và các công thức để
dự đoán lực lượng của các kết quả.
s Lực lượng của các kết quả trung gian

Dữ liệu thống kê rất có ích khi đánh giá lực lượng của các kết quả
trung gian. Lực lượng của các kết quả trung gian sẽ được ước lượng
theo các phép toán đại số cơ bản: phép chọn, chiếu, tích Đề các, kết
nối, phép nối nửa, phép hợp, hiệu.
2.3.4. Thứ tự kết nối
Một số thuật toán tối ưu hoá thứ tự của các phép kết nối một
cách trực tiếp không sử dụng phép nửa kết nối như thuật toán INGRES
phân tán và R*.
Xét truy vấn có kết nối R XI S, trong đó R và S là hai quan hệ
được lưu trữ trên các trạm khác nhau. Sự lựa chọn hiển nhiên là sẽ
truyền quan hệ nhỏ hơn tới trạm của quan hệ lớn hơn, làm phát sinh 2
khả năng, thể hiện trong Hình 2.18.

if size(R) > size(S)

Số hóa bởi Trung tâm Học liệu - ĐHTN


http://www.lrc.tnu.edu.vn
17

Hình 2.18. Truyền các toán hạng trong phép toán hai ngôi.
2.4. Các thuật toán tối ưu hóa truy vấn phân tán
Việc tối ưu hóa truy vấn có thể thực hiện theo 4 phương pháp:
Phương pháp tĩnh: Việc tối ưu hóa truy vấn tĩnh được thực hiện tại
thời điểm biên dịch truy vấn. Thuật toán tiêu biểu: R*.

Số hóa bởi Trung tâm Học liệu - ĐHTN


http://www.lrc.tnu.edu.vn
18

Phương pháp động: Việc tối ưu hóa động được thực hiện vào thời
gian thực hiện truy vấn. Thuật toán tiêu biểu: INGRES phân tán.
Phương pháp dựa trên phép nửa kết nối (semijoin): Phương pháp
này sẽ sử dụng phép nửa kết nối thay cho phép kết nối để giảm kích
thước của các kết quả trung gian, giảm chi phí truyền thông, từ đó
giảm tổng thời gian truy vấn. Thuật toán tiêu biểu: SDD-1, AHY.
Phương pháp tối ưu hóa truy vấn hỗn hợp có các ưu điểm của tối
ưu hóa truy vấn tĩnh, tránh được các vấn đề được tạo ra bởi các đánh
giá không chính xác gây ra. Về cơ bản phương pháp này là tĩnh nhưng
quá trình truy vấn động có thể xảy ra lúc chạy khi phát hiện có sự khác
biệt lớn giữa kích thước dự đoán và kích thước thực tế của các quan hệ
trung gian. Thuật toán tối ưu truy vấn 2 pha sử dụng phương pháp này.
Ưu điểm của phương pháp động so với phương pháp tĩnh là kích
thước thực sự của các quan hệ trung gian là phù hợp cho bộ xử lý truy
vấn. Vì vậy, sẽ giảm thiểu xác suất cho việc lựa chọn một giải pháp
tồi. Nhược điểm của phương pháp động là các thao tác tối ưu hóa có
chi phí cao, lặp lại nhiều lần cho mỗi thao tác. Vì vậy, phương pháp
này sẽ rất phù hợp cho một số câu truy vấn đặc biệt.
Phần này sẽ trình bày một số thuật toán tối ưu hóa truy vấn cơ
bản trong CSDL phân tán như thuật toán INGRES phân tán, thuật toán
R* và một thuật toán mới, kết hợp giữa thuật toán quy hoạch động
(Dynamic Programming) và thuật toán đàn kiến (Ant Colony
Optimization) được gọi là DP-ACO.
2.4.1. Thuật toán INGRES phân tán
Input: MRQ: Câu truy vấn có nhiều quan hệ. Output:Kết quả của câu
truy vấn con cuối cùng. Begin
For mỗi ORQi có thể tách ra in MRQ do
{ORQi là truy vấn một biến}
Run(ORQi);

Số hóa bởi Trung tâm Học liệu - ĐHTN


http://www.lrc.tnu.edu.vn
19

MRQ ‘_list REDUCE (MRQỊ) {MRQ ‘ chứa n truy vấn không thể
rút gọn}
While n -ậ 0 do {Chọn truy vấn không thể rút gọn tiếp theo
liên quan đến mảnh nhỏ nhất}
MRQ ‘ SELECT_QUERY (MRQ ‘_list);
{Xác định mảnh để truyền và trạm xử lý cho MRQ‘}
Fragment-site-list SELECT_STRATEGY
(MRQ‘);
{Chuyển các mảnh đã chọn đến trạm xử lý đã chọn}
For mỗi cặp (F,S) trong Fragment-site-list do
Chuyển mảnh F tới trạm xử lý S;
Thực thi MRQ‘;
n n-1;
{ kết quả đầu ra là kết quả của MRQ‘ cuối cùng}
End.
2.4.2. Thuật toán R*
Input: QT: Cây truy vấn của câu truy vấn có n quan hệ.
Output: strat: Chiến lược thực thi tối ưu (có chi phí nhỏ nhất) Begin
For mỗi quan hệ Ri thuộc QT do
For mỗi đường truy cập APij tới Ri do
Tính chi phí của APij; best_AP i APý- có chi phí nhỏ
nhất;
For mỗi thứ tự (Ri1, Ri2,. . .,Rin) do {i= 1,......, n!}
Xây dựng chiến lược(...((best AP,|XI R ) X! R ) XI .XI R );
i2 i3 in

Tính chi phí của chiến lược này;


strat Chiến lược có chi phí tốt nhất;
For mỗi trạm k chứa một quan hệ trong QT do
LS <“Chiến lược cục bộ (chiến lược, k); {Xác định chiến lược
k

tối ưu cục bộ LSk tại trạm k}


Send (LSk, trạm k);
End.
2.4.3. Thuật toán DP-ACO
2.4.3.1. Thuật toán tối ưu đàn kiến (ACO Metaheuristic)[10]

Số hóa bởi Trung tâm Học liệu - ĐHTN


http://www.lrc.tnu.edu.vn
20

Thuật toán dựa trên hành vi của đàn kiến thực trong việc thiết lập
đường đi ngắn nhất giữa thức ăn và tổ của nó. Kiến có thể giao tiếp với
nhau thông qua các hóa chất phát ra từ chúng trên đường đi từ tổ tới
chỗ thức ăn và ngược lại, gọi là pheromone. Như vậy, đường đi ngắn
hơn là đường có lượng pheromone cao hơn, kiến sẽ có xu hướng chọn
con đường ngắn hơn này.
Thuật toán tối ưu đàn kiến: Trong ACO, một con kiến nhân tạo sẽ
xây dựng giải pháp bằng cách đi qua đồ thị kết nối đầy đủ GC (V,E),
trong đó V là tập các đỉnh, E là tập các cạnh. Theo Dorigo, kiến nhân
tạo sẽ di chuyển từ đỉnh tới đỉnh dọc theo các cạnh của đồ thị để xây
dựng giải pháp thành phần (partial solution). Thuật toán ACO
metaheuristic, lặp 3 giai đoạn sau:
- ConstructAntSolution: Một tập m con kiến nhân tạo xây dựng
giải pháp từ các thành phần của một tập hữu hạn các giải pháp có sẵn.
Ban đầu tập này rỗng.
- ApplyLocalSearch: Khi các giải pháp đã được xây dựng và
trước khi cập nhật pheromone, chức năng này sẽ cải thiện các giải
pháp thu được bởi các con kiến thông qua tìm kiếm cục bộ. Bước này
không bắt buộc.
- UpdatePheromones: Nó làm tăng giá trị pheromone gắn liền với
giải pháp tốt và làm giảm với các giải pháp xấu. Điều này đạt được
bằng:
+ Giảm tất cả các giá trị pheromone qua việc bốc hơi pheromone
+ Tăng mức pheromone với tập các giải pháp tốt được chọn.
ACO có một số hạn chế như sự hình thành ban đầu do ACO
không có cách bắt đầu một cách có hệ thống. Tốc độ hội tụ của ACO
thấp ở giai đoạn đầu do lượng pheromone trên các đường đi khác nhau
rất ít.

Số hóa bởi Trung tâm Học liệu - ĐHTN


http://www.lrc.tnu.edu.vn
21

2.4.3.2. Quy hoạch động (DP)[5]


DP hoạt động theo cách từ dưới lên và xây dựng tất cả các kế
hoạch con có thể. Giải pháp tối ưu cho bất kỳ kế hoạch con nào cũng
được tính toán duy nhất một lần và không được tính lại. Đầu tiên, thuật
toán xây dựng các kế hoạch truy cập cho mọi quan hệ trong câu truy
vấn và liệt kê tất cả các kế hoạch có hai kết nối trong giai đoạn 2. DP
tiếp tục cho đến khi nó đã liệt kê tất cả các kế hoạch n kết nối. Một kế
hoạch hiệu quả có thể tỉa các kế hoạch khác với cùng kết quả đầu ra.
DP sẽ liệt kê (A X B) và (B XI A) là hai kế hoạch thay thế nhưng chỉ
có kế hoạch tốt hơn trong hai được giữ lại sau khi cắt tỉa. Các kế hoạch
thực thi được trừu tượng hóa trong PT (Processing Trees). Đầu vào
của các vấn đề tối ưu hóa được đưa ra như một đồ thị truy vấn. Đồ thị
truy vấn này bao gồm tất cả các quan hệ được kết nối như là các nút lá.
PT là một cây nhị phân đơn giản. Lá tương ứng với các quan hệ cơ bản
và các nút tương ứng bên trong tham gia các phép kết nối. Các cạnh
thể hiện luồng của kết quả thành phần từ nút lá về gốc của cây. Mỗi kế
hoạch sẽ có một chi phí thực hiện. Mục đích của tối ưu hóa là tìm kế
hoạch với chi phí thấp nhất có thể. Nếu quan hệ trong của mỗi kết nối
là một quan hệ cơ bản, PT đc gọi là left-deep tree. Sẽ có n! cách để
phân bổ n quan hệ cơ bản tới các lá của loại PT này. Nếu ko có hạn
chế về PT thì nó đc gọi là bushy tree. Trong nghiên cứu này, sẽ sử
dụng left-deep tree.
Mô hình chi phí dựa trên tổng thời gian xử lý (CPU time + I/O
time) được sử dụng.
Quy hoạch động tạo ra những thiết kế tốt nhất có thể nhưng có
thời gian thực hiện dài và yêu cầu bộ nhớ rất lớn khi kích thước của
các quan hệ và số lượng kết nối tăng lên trong truy vấn.
2.4.3.3. Kết hợp thuật toán tối ưu đàn kiến và quy hoạch động để

Số hóa bởi Trung tâm Học liệu - ĐHTN


http://www.lrc.tnu.edu.vn
22

tối ưu hóa truy vấn trong CSDL phân tán [5]


Khi kết hợp với quy hoạch động, chúng ta mô phỏng các hoạt
động của kiến trên đồ thị của PT (Processing Trees). Mỗi quá trình
tính toán thời gian chạy của một kế hoạch thực hiện sẽ được coi là một
con kiến trong thuật toán. Các giải pháp đại diện cho thức ăn. Kiến có
được thức ăn càng sớm thì lượng pheromone chúng tiết ra trên đường
đi của giải pháp càng nhiều. Càng cần nhiều thời gian cho một con
kiến đi theo đường này thì thời gian bay hơi càng nhiều. Kiến kiếm ăn
liên tục tìm kiếm kế hoạch thực hiện tốt hơn. Các đường đi là những
lựa chọn thay thế tổ hợp cho các kế hoạch của DP ở mỗi mức. Nếu có
5 trạm trong phép kết nối của (A X B X C), sẽ có 5 đường đi khác
nhau. A X B là một trong các truy vấn con trong kế hoạch này. Với 5
trạm, chúng ta phải kiểm tra thời gian trả lời của từng trạm. Nếu có thể
tìm ra giải pháp tối ưu ở trạm 2 thì tăng pheromone của nó trong khi
các giải pháp khác của (A X B) bị giảm pheromone do bị bay hơi.
Thuật toán sử dụng một tham số giới hạn không gian tìm kiếm (SSL-
search space limit) để kiểm soát độ phức tạp thời gian và không gian
của thuật toán. Không gian tìm kiếm sẽ được thu gọn bằng cách sử
dụng pheromone của mỗi kế hoạch con. Nếu ko có quá trình thu gọn
(cắt tỉa) này thì DP-ACO sẽ hoạt động giống DP. Tăng giá trị SSL sẽ
làm tăng theo cấp số nhân yêu cầu về thời gian và không gian của
thuật toán. Pheromone của mỗi đường được đánh giá theo phương
trình:
SSL
Pheromone (k) = (£ Best_time (i) x (1/Response_time (k)))
i
Đường đi quyết định có thể được tính toán theo công thức sau:
“ . nL
pk = -------- • n ---------------
ij ij

p ij
V' —a „p
E T ii • n ii p

l € subsolutions

Số hóa bởi Trung tâm Học liệu - ĐHTN


http://www.lrc.tnu.edu.vn
23

Trong đó p ij là xác suất dịch chuyển của con kiến thứ k chuyển từ
k

giải pháp con thứ i sang giải pháp con thứ j. l là một thành phần của
các giải pháp con. Các giải pháp con này được sắp đặt như câu lệnh
SQL, a và p kiểm soát sự quan trọng tương đối của pheromone Tij với
các thông tin heuristic nịj.
DP-ACO đã được chứng minh là giải pháp khả thi bằng việc tạo
ra các kế hoạch thực thi tốt với các câu truy vấn 15 nối trong thời gian
giới hạn và không gian bộ nhớ hạn chế. Một ưu điểm khác của DP-
ACO là có thể dễ dàng thích ứng với bộ tối ưu hóa truy vấn đang tồn
tại sử dụng thuật toán dựa trên DP
2.5. Kết luận chương 2
Chương này đã trình bày những vấn đề cơ bản về xử lý câu truy
vấn, các thành phần chính của tối ưu hóa truy vấn, các thuật toán tối
ưu cơ bản như Distributed INGRES, System R*, DP-ACO. Mỗi
phương pháp tối ưu đều có ưu điểm, nhược điểm của nó. Phương pháp
tối ưu phân tán tĩnh, động có ưu nhược điểm giống như trong hệ thống
tập trung, phương pháp tối ưu dựa trên phép nửa kết nối sử dụng tốt
nhất với mạng chậm, phương pháp hỗn hợp là tốt nhất trong môi
trường động ngày nay vì nó trì hoãn các quyết định quan trọng như lựa
chọn sao chép và phân phối các truy vấn con đến các trạm tại thời
điểm khởi động truy vấn. Vì vậy, nó có thể tăng tính sẵn sàng và cân
bằng tải của hệ thống tốt hơn.

Số hóa bởi Trung tâm Học liệu - ĐHTN


http://www.lrc.tnu.edu.vn
24

Chương 3
ỨNG DỤNG THUẬT TOÁN TỐI ƯU HÓA TRUY VẤN CƠ SỞ
TRONG DỮ LIỆU PHÂN TÁN
3.1. Giới thiệu về bài toán quản lý nhân sự
Xét CSDL quản lý nhân sự tại Sở Giáo dục và Đào tạo tỉnh Yên
Bái gồm các bảng dữ liệu như sau:
DienBienNgachB CanBo
ac
ĩ ID CanBolD CoQuanQuanLylD

NgachlD

BacLuong CoQuanSuDunglD

NgayHuorvg HoTen

NgayKetThuc

ThoìHanNangBac Ngay Sinh

DaVuotKhung GioĩTinh

HSCLBL NoiSĩnhlD

HeSo QueQuanlD
DienBienChucVu
PhuCapVuotKhung DanTocID ? 1D
PhuCapKhac TcrGiỉoID CanBolD
LuongCcBan HKTT TuNgay
Kieu NoiO DenNgay
NgheNghìepIữ ChucVuID

NgayTD PhuCapChucVu
CoQuanTD

ĩsLeader
dmNgach ?
ID NgayBoN hiem

SoQuyetDinh

HeSa

NgayHuong

0
1
NhomNgachlD

CongViecChinh

ChucVuKNID

ChucVuID

BacLuong
MaNgach

TenNgach

LoaìNgach

PCVK
V I ỊỊT

Số hóa bởi Trung tâm Học liệu - ĐHTN


http://www.lrc.tnu.edu.vn
Ngachlữ
25

3.2. Mô hình phân tán CSDL, công cụ, ngôn ngữ lập trình
- CSDL được phân tán trên 3 trạm, sử dụng DBMS SQL Server
2008.
+ Trạm 1 chứa bảng CanBo (20005 bản ghi).
+ Trạm 2 chứa 2 bảng: DienBienNgachBac (101627 bản ghi) và
dmNgach (105183 bản ghi).
+ Trạm 3 chứa bảng DienBienChucVu (2273 bản ghi)
- Chương trình được viết trên ngôn ngữ lập trình C#.
3.3. Thuật toán áp dụng
Chương trình sẽ cài đặt thử nghiệm thuật toán INGRES phân tán
và R* được trình bày ở mục 2.4.1 và 2.4.2.
3.4. Kết quả thực nghiệm
Xét câu truy vấn
SELECT dbo.CanBo.SoHieu, dbo.CanBo.HoTen,
dbo.CanBo.TenGoiKhac, dbo.CanBo.NgaySinh,
dbo.CanBo.CoQuanQuanLyID, dbo.CanBo.CoQuanSuDungID,
dbo.CanBo.GioiTinh, dbo.CanBo.NoiSinhID,
dbo.CanBo.QueQuanID, dbo.CanBo.DanTocID,
dbo.CanBo.TonGiaoID, dbo.CanBo.HKTT, dbo.CanBo.NoiO,
dbo.CanBo.NgheNghiepID, dbo.CanBo.NgayTD,
dbo.DienBienNgachBac.BacLuong,
dbo.DienBienNgachBac.NgayHuong,
dbo.DienBienNgachBac.NgayKetThuc,
dbo.DienBienNgachBac.ThoiHanNangBac,
dbo.DienBienNgachBac.DaVuotKhung,
dbo.DienBienNgachBac.HSCLBL, dbo.DienBienNgachBac.HeSo
dbo.DienBienNgachBac.PhuCapVuotKhung, dbo.dmNgach.MaNgach,
dbo.dmNgach.TenNgach, dbo.dmNgach.LoaiNgach,
dbo.dmNgach.PCVK dbo.DienBienChucVu.ChucVuID,
dbo.DienBienChucVu.PhuCapChucVu,

Số hóa bởi Trung tâm Học liệu - ĐHTN


http://www.lrc.tnu.edu.vn
26

dbo.DienBienChucVu.NgayBoNhiem,
dbo.DienBienChucVu.SoQuyetDinh
FROM dbo.CanBo INNER dbo.DienBienChucVu,
dbo.DienBienNgachBac
WHERE dbo.CanBo.ID = dbo.DienBienChucVu.CanBoID AND
dbo.CanBo.ID =.CanBoID AND dbo.DienBienNgachBac.NgachID =
dbo.dmNgach.ID AND CLS.CLS_ID=CLSKhamBenh.CLS_ID
- Kết qu ả thực hiện tại trạm 1:
+ Tổng số bản ghi kết quả: 3379
+ Thời gian thực hiện truy vấn khi áp dụng Thuật toán
INGRES phân tán: 125 ms
+ Thời gian thực hiện truy vấn khi áp dụng Thuật toán R*:
140 ms.
- Kết qu ả thực hiện tại trạm 2:
+ Tổng số bản ghi kết quả: 3379.
+ Thời gian thực hiện truy vấn khi áp dụng Thuật toán
INGRES phân tán: 140 ms.
+ Thời gian thực hiện truy vấn khi áp dụng Thuật toán R*:
156 ms.
- Kết qu ả thực hiện tại trạm 3:
+ Tổng số bản ghi kết quả: 3379
+ Thời gian thực hiện truy vấn khi áp dụng Thuật toán
INGRES phân tán: 187 ms
+ Thời gian thực hiện truy vấn khi áp dụng Thuật toán R*:
130 ms.
Bảng so sánh kết quả thời gian thực hiện của 2 thuật toán:
Tên trạm INGRES phân tán R*
Trạm 1 125 ms 140 ms
Trạm 2 140 ms 156 ms

Số hóa bởi Trung tâm Học liệu - ĐHTN


http://www.lrc.tnu.edu.vn
27

Trạm 3 187 ms 130 ms


3.5. Kết luận chương 3
Chương 3 trình bày về bài toán quản lý nhận sự và chương trình cài
đặt 2 thuật toán INGRES phân tán và R* bao gồm: Thiết kế CSDL
phân tán, lựa chọn ngôn ngữ lập trình, hệ quản trị CSDL và
kết quả thực nghiệm chạy một câu truy vấn để so sánh thời gian chạy
khi truy vấn tối ưu sử dụng 2 thuật toán trên các trạm khác nhau. Qua
kết quả thực nghiệm ta thấy các giải pháp thực hiện trên các trạm là
như nhau với cả hai thuật toán nhưng thời gian thực hiện là khác nhau.
Cụ thể, thời gian thực hiện truy vấn ở trạm 1 nhanh hơn trạm 2 và trạm
3 với cả hai thuật toán. Trong trường hợp câu truy vấn này, thuật toán
R* và thuật toán INGRES phân tán có thời gian thực hiện chênh lệch
không đáng kể và tùy thuộc vào tốc độ CPU của mỗi trạm. Thuật toán
INGRES phân tán và R* đều có ưu, nhược điểm riêng, thuật toán R*
không hỗ trợ hệ thống phân tán theo kiểu phân mảnh và bản sao, thuật
toán INGRES phân tán có hỗ trợ phân mảnh nhưng chỉ với phân mảnh
ngang. Do đó, tùy vào cách thiết kế hệ thống phân tán mà ta lựa chọn
thuật toán áp dụng cho phù hợp.
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
1. Kết luận
Hệ thống phân tán là một hệ thống CSDL phức tạp hơn, đòi hỏi
việc tổ chức vật lý, mô hình mạng phức tạp, việc tìm hiểu và lựa chọn
giải pháp thiết kế CSDL phân tán phù hợp với yêu cầu thực tế, tối ưu
hóa truy vấn phân tán có ý nghĩa quan trọng quyết định đến hiệu năng
hệ thống và hiệu quả kinh tế mang lại.
Với đề tài “Một số thuật toán tối ưu hóa trong cơ sở dữ liệu phân
tán”, luận văn đã đạt được một số kết quả sau:
- Trình bày khái quát về cơ sở dữ liệu phân tán, hệ quản trị CSDL
Số hóa bởi Trung tâm Học liệu - ĐHTN
http://www.lrc.tnu.edu.vn
28

phân tán, phân tích các đặc điểm của CSDL phân tán và một số
phương pháp thiết kế CSDL phân tán.
- Giới thiệu các bước trong quá trình xử lý câu truy vấn, xác định
thời điểm tối ưu và các phương pháp, thuật toán tối ưu hóa truy vấn
phân tán, phân tích ưu nhược điểm của từng phương pháp để lựa chọn
cho phù hợp với yêu cầu thực tế của từng hệ thống.
- Cài đặt, đánh giá tính hiệu quả của hai thuật toán: INGRES
phân tán và R*.
2. Hướng phát triển của luận văn
Tiếp tục nghiên cứu các phương pháp tối ưu hóa truy vấn CSDL
phân tán khác như phương pháp dựa trên phép nửa kết nối, kết hợp
giữa thuật toán tối ưu đàn kiến với một số thuật toán khác như thuật
toán di truyền, thuật toán tối ưu bầy đàn, ... trên cơ sở đó đưa ra đánh
giá ưu nhược điểm của từng phương pháp để áp dụng cho từng bài
toán cụ thể trong thực tế.
TÀI LIỆU THAM KHẢO

Tài liệu tiếng Việt


1. Nguyễn Văn Huân - Phạm Việt Bình(2009), “Giáo trình hệ cơ sở
dữ liệu phân tán & suy diễn: Lý thuyết và thực hành”, NXB Khoa
học và kỹ thuật.
2. Phạm Thế Quế (2009) “Giáo trình Cơ sở dữ liệu phân tán”, NXB
thông tin và truyền thông.
3. Nguyễn Bá Tường (2005), “Nhập môn cơ sở dữ liệu dữ liệu phân
tán”, NXB Khoa học và kỹ thuật.
Tài liệu tiếng Anh
4. Alaa Aljanaby, Emad Abuelrub, and Mohammed Odeh (2005), “A
Survey of Distributed Query Optimization”, The International Arab
Journal of Information Technology, Vol. 2, No. 1.
Số hóa bởi Trung tâm Học liệu - ĐHTN
http://www.lrc.tnu.edu.vn
29

5. Tansel Dokeroglu, Ahmet Cosar (2011), “Dynamic Programming


with Ant Colony Optimization Metaheuristic for optimization of
Distributed Database Queries”, ISCIS:26th International
Symposium on Computer and Information Sciences, IEEE, Vol 2,
pp.107-113.
6. Marco Dorigo, Thomas Stutzle (2003), The Ant Colony
Optimization Metaheuristic, Algorithms, Applications, and
Advances - Handbook of Metaheuristics, Springer US, pp 250- 285.
7. Marco Dorigo, Thomas Stutzle (2004), Ant Colony Optimization,
MIT Press.
8. Chhanda Ray (2009), Distributed Database Systems, Pearson
Education India.
9. Sacco, M.P, and Yao, S.B (1982), “Query Optimization in
Distributed Database Systems,” Advances in Computers, Vol. 21,
Academic Press.
10. Preeti Tiwari, Swati V. Chande (2013), “Optimization of
Distributed Database Queries Using Hybrids of Ant Colony
Optimization Algorithm”, International Journal of Advanced
Research in Computer Science and Software Engineering 3(6), pp.
609-614.
11. M. Tamer Ồzsu, Patrick Valduriez (2011), Principles of
Distributed Database Systems third edition, Springer.
12. Preeti Tiwari, Swati V. Chande (2013), “Query Optimization
Strategies in Distributed Databases”, International Journal of
Advances in Engineering Sciences Vol.3.
13. Yasmeen R. M. Umar, Amit R. Welekar (2014), “Query
Optimization in Distributed Database: A Review”, Query
Optimization in Distributed Database: A Review, Vol. 4, No. 6.

Số hóa bởi Trung tâm Học liệu - ĐHTN


http://www.lrc.tnu.edu.vn

You might also like