Professional Documents
Culture Documents
VŨ ĐỨC MẠNH
VŨ ĐỨC MẠNH
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).
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.
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
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
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].
- 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
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.
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*.
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);
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
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.
p ij
V' —a „p
E T ii • n ii p
l € subsolutions
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.
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
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
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,
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
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