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 hệ quản trị CSDL SQL Server 2008.
+ Trạm 1 chứa bảng BenhNhan (20005 bản ghi).
+ Trạm 2 chứa 2 bảng: KhamBenh (101627 bản ghi) và LichSuPhongKham (105179 bản ghi).
+ Trạm 3 chứa 2 bảng: CLS (57 bản ghi) và CLSKhamBenh (697118 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.3.1 và 2.3.2.
3.4. Kết quả thực nghiệm
Thử nghiệm 1: Xét câu truy vấn
SELECT BenhNhan.*, KhamBenh.ngaydontiep, LichSuPhongKham.phong_id, LichSuPhongKham.Ketluan,CLSKhamBenh.CLS_ID, CLSKhamBenh.KetLuan, CLS.TenChuyenMon
FROM BenhNhan, KhamBenh, LichSuPhongKham, CLSKhamBenh, CLS WHERE BenhNhan.benhnhan_ID = KhamBenh.benhnhan_ID
and KhamBenh.khambenh_ID = LichSuPhongKham.khambenh_id
and LichSuPhongKham.lichsuphongkham_ID = CLSKhamBenh.lichsuphongkham_id and CLS.CLS_ID=CLSKhamBenh.CLS_ID
Hình 3.2: Kết quả thực hiện câu truy vấn tại trạm 1.
+ Tổng số bản ghi kết quả: 697118
+ Tổng thời gian thực hiện truy vấn áp dụng Thuật toán INGRES phân tán: 26301 ms
+ Tổng thời gian thực hiện truy vấn khi áp dụng Thuật toán R*: 28818 ms - Kết quả thực hiện tại trạm 2:
Hình 3.3: Kết quả thực hiện câu truy vấn trên trạm 2
+ Tổng số bản ghi kết quả: 697118
+ Tổng thời gian thực hiện truy vấn áp dụng Thuật toán INGRES phân tán: 25702 ms
+ Tổng thời gian thực hiện truy vấn khi áp dụng Thuật toán R*: 28655 ms - Kết quả thực hiện tại trạm 3:
Hình 3.4: Kết quả thực hiện truy vấn tại trạm 3
+ Tổng số bản ghi kết quả: 697118
+ Tổng thời gian thực hiện truy vấn áp dụng Thuật toán INGRES phân tán: 17875 ms
+ Tổng thời gian thực hiện truy vấn khi áp dụng Thuật toán R*:19788 ms
Các kết quả trên cho thấy: Tổng thời gian thực hiện truy vấn trên trạm 3 là ngắn nhất trong ba trạm với cả hai thuật toán. Do lượng dữ liệu tại trạm 3 lớn hơn nhiều so với dữ liệu ở trạm 1 và trạm 2 nên khi thực hiện truy vấn trên trạm 3, chi phí truyền thông sẽ ít hơn so với 2 trạm còn lại. Trong thử nghiệm này, sử dụng thuật toán INGRES phân tán sẽ hiệu quả hơn.
Thử nghiệm 2: Xét câu truy vấn
SELECT Benhnhan.*, KhamBenh.ngaydontiep, LichSuPhongKham.phong_id, LichSuPhongKham.ketluan
FROM BenhNhan, KhamBenh, LichSuPhongKham
WHERE BenhNhan.benhnhan_ID= KhamBenh.benhnhan_ID and KhamBenh.khambenh_ID = LichSuPhongKham.khambenh_id
- Kết quả thực hiện tại trạm 1:
Hình 3.5: Kết quả thực hiện câu truy vấn tại trạm 1
+ Tổng thời gian thực hiện truy vấn áp dụng Thuật toán INGRES phân tán: 2603 ms
+ Tổng thời gian thực hiện truy vấn khi áp dụng Thuật toán R*: 2605 ms - Kết quả thực hiện trên trạm 2:
Hình 3.6: Kết quả thực hiện truy vấn trên trạm 2.
+ Tổng số bản ghi kết quả: 105179
+ Tổng thời gian thực hiện truy vấn áp dụng Thuật toán INGRES phân tán: 2515 ms
+ Tổng thời gian thực hiện truy vấn khi áp dụng Thuật toán R*: 2537 ms
Kết quả thực nghiệm cho thấy: Thời gian thực hiện truy vấn ở trạm 2 nhanh hơn trạm 1 với cả hai thuật toán và tổng thời gian xử lý truy vấn khi áp dụng thuật toán INGRES phân tán nhanh hơn so với thuật toán R* nhưng không đáng kể.
3.5. Kết luận
Chương 3 trình bày 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 số 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, với câu truy vấn có 3 quan hệ tham gia kết nối trong thử nghiệm 2, thời gian thực hiện khá nhanh với cả hai thuật toán (trung bình 2.5 giây). Nhưng với câu truy vấn có 5 quan hệ tham gia kết nối trong thử nghiệm 1, thời gian thực hiện chậm với cả 2 thuật toán (trung bình khoảng 26 giây). Do đó, với những câu truy vấn có nhiều quan hệ tham gia kết nối nên sử dụng thuật toán tối ưu truy vấn khác như thuật toán DP-ACO trình bày ở mục 2.3.4 để rút ngắn thời gian thực hiện.
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
Hệ thống phân tán là một hệ thống cơ sở dữ liệu 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 ”Tối ưu hóa 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, phân tích các đặc điểm của CSDL phân tán, hệ quản trị 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*. 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 Nhuậ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.
[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.