Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 80 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
80
Dung lượng
1,53 MB
Nội dung
i LỜI CAM ĐOAN Tôi xin cam đoan, kết luận văn hoàn toàn kết tự thân tìm hiểu, nghiên cứu Các tài liệu tham khảo trích dẫn thích đầy đủ Thái Nguyên, ngày 11 tháng năm 2016 Học viên Vũ Đức Mạnh ii MỤC LỤC MỞ ĐẦU 1 Lý chọn đề tài Mục đích đề tài .1 Đối tượng phạm vi nghiên cứu .1 Phương pháp nghiên cứu .2 Các kết dự kiến đạt Chương 1: KHÁI QUÁT VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN 1.1 Cơ sở liệu phân tán 1.1.1 Khái niệm 1.1.2 Hệ quản trị sở liệu phân tán 1.1.3 Ưu điểm CSDL phân tán 1.1.4 Nhược điểm CSDL phân tán .5 1.2 Đặc điểm sở liệu phân tán .5 1.2.1 Chia sẻ tài nguyên .5 1.2.2 Tính mở 1.2.3 Khả song song 1.2.5 Khả thứ lỗi 1.2.6 Tính suốt 1.2.7 Đảm bảo tin cậy quán 1.3 Các đặc trưng suốt sở 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 tính không .9 1.4 Kiến trúc sở liệu phân tán 1.5 Các kĩ thuật xây dựng sở liệu phân tán 10 1.5.1 Phân mảnh liệu 11 iii 1.5.1.1 Phương pháp phân mảnh ngang .11 1.5.1.2 Phương pháp phân mảnh dọc 15 1.5.1.3 Phương pháp phân mảnh hỗn hợp .16 1.5.2 Nhân liệu 18 1.5.3 Định vị liệu 18 1.6 Kết luận chương 19 Chương 2: TỐI ƯU HÓA TRUY VẤN CƠ SỞ DỮ LIỆU PHÂN TÁN 20 2.1 Vấn đề tối ưu hóa xử lý truy vấn 20 2.1.1 Bài toán xử lý truy vấn 20 2.1.2 Các quy tắc biến đổi đại số quan hệ .22 2.1.2.1 Tính chất giao hoán phép toán hai 22 2.1.2.3 Tính lũy đẳng phép toán đơn .23 2.1.2.4 Giao hoán phép chọn với phép chiếu .23 2.1.2.5 Giao hoán phép chọn với phép toán hai .23 2.1.2.6 Giao hoán phép chiếu với phép toán hai 23 2.2 Quá trình xử lý truy vấn 23 2.2.1 Phân rã truy vấn .24 2.2.1.1 Chuẩn hóa câu truy vấn .25 2.2.1.2 Phân tích 26 2.2.1.3 Loại bỏ dư thừa 28 2.2.1.4 Viết lại 29 2.2.2 Cục hóa liệu phân tán 31 2.2.2.1 Rút gọn cho phân mảnh ngang nguyên thủy .32 2.2.2.2 Rút gọn cho phân mảnh ngang dẫn xuất 34 2.2.2.3 Rút gọn cho phân mảnh dọc 36 2.2.2.4 Rút gọn cho phân mảnh hỗn hợp .37 2.2.3 Tối ưu hóa toàn cục 38 2.2.4 Tối ưu hóa cục 38 iv 2.3 Tối ưu hóa truy vấn phân tán 38 2.3.1 Không gian tìm kiếm .39 2.3.2 Chiến lược tìm kiếm 40 2.3.3 Mô hình chi phí .41 2.3.4 Thứ tự kết nối 45 2.4 Các thuật toán tối ưu hóa truy vấn phân tán .47 2.4.1 Thuật toán INGRES phân tán 48 2.4.2 Thuật toán R* 53 2.4.3 Thuật toán DP - ACO 57 2.4.3.1 Thuật toán tối ưu đàn kiến (ACO Metaheuristic)[10] .57 2.4.3.2 Quy hoạch động (DP)[5] 59 2.4.3.3 Kết hợp thuật toán tối ưu đàn kiến quy hoạch động để tối ưu hóa truy vấn CSDL phân tán [5] 60 2.5 Kết luận chương 62 Chương 3: ỨNG DỤNG CÁC THUẬT TOÁN TỐI ƯU HÓA TRUY VẤN TRONG CƠ SỞ DỮ LIỆU PHÂN TÁN 63 3.1 Giới thiệu toán quản lý nhân .63 3.2 Thiết kế sở liệu .63 3.3 Mô hình phân tán CSDL, công cụ, ngôn ngữ lập trình .66 3.4 Cài đặt thuật toán 66 3.5 Kết thực nghiệm .67 3.6 Kết luận chương 72 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 73 Kết luận 73 Hướng phát triển luận văn 73 TÀI LIỆU THAM KHẢO 74 v DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT Ký hiệu STT Diễn giải CSDL Cơ sở liệu DBMS (Database Management System) Hệ quản trị sở liệu DDBMS (Distributed Database Management System) Hệ quản trị sở liệu phân tán DP (Dynamic Programming) Quy hoạch động ACO (Ant Colony Optimization) Tối ưu đàn kiến PT (Processing tree) Cây xử lý SSL (Search Space Limit) Giới hạn không gian tìm kiếm CPU (Central Processing Unit ) Bộ xử lý trung tâm I/O (Input/Output) Vào/Ra vi DANH MỤC CÁC HÌNH VẼ Hình 1.1 Mô hình CSDL phân tán Hình 1.2 Mô hình kiến trúc CSDL phân tán 10 Hình 1.3 Phân mảnh hỗn hợp 16 Hình 1.4 Cây phân tách quan hệ 17 Hình 1.5 Tái xây dựng phân mảnh hỗn hợp 18 Hình 2.1 Các giải pháp truy vấn tương đương 22 Hình 2.2 Sơ đồ truy trình xử lý truy vấn 24 Hình 2.3 Đồ thị truy vấn Đồ thị nối 27 Hình 2.4 Đồ thị truy vấn Đồ thị nối với câu truy vấn sai ngữ nghĩa 28 Hình 2.5 Cây đại số quan hệ 30 Hình 2.6 Cây đại số quan hệ sau tái cấu trúc 31 Hình 2.7 Câu truy vấn gốc 33 Hình 2.8 Câu truy vấn rút gọn 33 Hình 2.9 Rút gọn phân mảnh ngang với phép nối 34 Hình 2.10 Rút gọn cho phân mảnh ngang dẫn xuất 36 Hình 2.11 Rút gọn phân mảnh dọc 37 Hình 2.12 Rút gọn phân mảnh hỗn hợp 38 Hình 2.13 Quá trình xử lý truy vấn tối ưu 39 Hình 2.14 Các nối 40 Hình 2.15 Đồ thị minh họa tổng chi phí thời gian trả lời 42 Hình 2.16 Truyền toán hạng phép toán hai 46 Hình 2.17 Đồ thị nối truy vấn phân tán 46 Hình 2.18 Đồ thị nối truy vấn q1 55 Hình 2.19 Các thứ tự kết nối 57 Hình 2.20 Quá trình định đường đàn kiến 58 Hình 3.1 Mối quan hệ bảng liệu 66 Hình 3.2 Kết thực câu truy vấn trạm 68 Hình 3.3 Kết thực câu truy vấn trạm 69 Hình 3.4 Kết thực câu truy vấn trạm 71 MỞ ĐẦU Lý chọn đề tài Sở Giáo dục Đào tạo (GD&ĐT) tỉnh Yên Bái quản lý trực tiếp phòng GD&ĐT, 24 trường Trung học phổ thông, trung tâm, trường chuyên nghiệp, với đội ngũ cán quản lý, giáo viên nhân viên lên tới hàng trăm nghìn người Hiện tất đơn vị sử dụng mạng internet Do năm học, việc thống kê tình hình nhân Sở GD&ĐT đơn vị thực cố định theo định kì đầu, cuối năm học; thời điểm năm học, số đơn vị có thay đổi nhân thay đổi thông tin khác số liệu thời điểm thống kê trước Sở GD&ĐT không xác để có liệu xác phải thực qua nhiều bước trung gian, nhiều thời gian Mặt khác, từ thực tế công việc nhiều Bộ GD&ĐT hay UBND tỉnh yêu cầu báo cáo đột xuất tình hình nhân thật xác việc cập nhật gặp nhiều khó khăn chậm tiến độ Xuất phát từ thực tế nhu cầu công việc, nhận thấy ứng dụng sở liệu phân tán để giải khó khăn trên; chọn nghiên cứu đề tài "Một số thuật toán tối ưu hóa truy vấn sở liệu phân tán” làm luận văn tốt nghiệp Mục đích đề tài Nghiên cứu phương pháp thiết kế sở liệu phân tán, kỹ thuật tối ưu hóa câu truy vấn sở liệu phân tán, cài đặt thử nghiệm số thuật toán tối ưu hóa câu truy vấn sở liệu phân tán, từ đưa nhận xét, đánh giá ưu điểm, nhược điểm thuật toán tối ưu để có lựa chọn phù hợp với toán thực tế Đối tượng phạm vi nghiên cứu - Đối tượng nghiên cứu sở liệu phân tán, câu truy vấn phân tán, thuật toán tối ưu hóa ứng dụng - Phạm vi nghiên cứu kỹ thuật đồng tối ưu truy vấn sở liệu Phương pháp nghiên cứu - Nghiên cứu lý thuyết: tìm hiểu nghiên cứu từ tài liệu sách, tạp chí viết mạng internet… tổng hợp so sánh để viết thành luận văn; - Nghiên cứu thực nghiệm: Cài đặt thử nghiệm Các kết dự kiến đạt - Giới thiệu tổng quan CSDL phân tán; - Trình bày phương pháp tối ưu hóa truy vấn; - Cài đặt thử nghiệm thuật toán tối ưu hóa truy vấn Ý nghĩa khoa học đề tài Việc tối ưu hóa sở liệu phân tán giúp cho việc nghiên cứu, khai thác ứng dụng hệ thống phân tán, chủ yếu qua môi trường mạng thuận lợi phát triển nhờ ưu điểm sau: - Giảm thiểu thời gian xử lý; - Giảm vùng nhớ trung gian; - Giảm chi phí truyền thông trạm; - Sử dụng tài nguyên Bố cục luận văn Bố cục luận văn gồm: phần mở đầu, ba chương nội dung phần kết luận Chương 1: Khái quát sở liệu phân tán Giới thiệu tổng quan sở liệu phân tán, phân biệt sở liệu tập trung với sở liệu phân tán để thấy khác biệt hai sở liệu lợi ích sở liệu phân tán; Tìm hiểu phương pháp thiết kế sở liệu phân tán, tập trung nghiên cứu kỹ thuật phân mảnh: phân mảnh ngang, phân mảnh dọc phân mảnh hỗn hợp Chương 2: Tối ưu hóa truy vấn sở liệu phân tán Trong chương trình bày chi tiết bước quy trình xử lý câu truy vấn; trình bày thuật toán tối ưu hóa câu truy vấn sở liệu phân tán như: INGRES phân tán, R*, DP-ACO Chương 3: Cài đặt thử nghiệm thuật toán: Trình bày mô hình cài đặt hệ thống Cài đặt thuật toán INGRES phân tán, R* so sánh, đánh giá kết thực nghiệm cho toán tối ưu hóa truy vấn Cuối kết luận hướng phát triển đề tài Chương KHÁI QUÁT VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN 1.1 Cơ sở liệu phân tán 1.1.1 Khái niệm Cơ sở liệu (CSDL) phân tán tập liệu có quan hệ logic với nhau, phân bố máy tính mạng máy tính [1] Trong mô hình sở liệu phân tán, quan hệ cài đặt nhiều vị trí (site) khác Như vậy, đặc trưng CSDL phân tán CSDL phân tán mạng máy tính có mối quan hệ với mặt logic Khái niệm CSDL phân tán nhấn mạnh hai khía cạnh: - Tính chất phân tán: Toàn liệu CSDL phân tán không nằm nơi mà nằm nhiều trạm thuộc mạng máy tính Vì phân biệt CSDL phân tán với CSDL tập trung - Quan hệ logic: Dữ liệu có tính chất phụ thuộc, ràng buộc lẫn Như phân biệt CSDL phân tán với CSDL địa phương (Local) tệp liệu lưu trữ vị trí khác Ở mức phần cứng vật lý, nhân tố sau để phân biệt hệ CSDL phân tán với hệ CSDL tập trung: - Có nhiều máy tính gọi trạm hay nút - Các trạm phải kết nối kiểu mạng truyền thông để truyền liệu câu lệnh trạm với nhau, Hình 1.1 Trạm Trạm DB DB Mạng truyền thông DB DB Trạm Trạm Hình 1.1 Mô hình hệ CSDL phân tán 1.1.2 Hệ quản trị sở liệu phân tán Hệ quản trị CSDL phân tán (DDBMS) hệ thống phần mềm cho phép quản lý CSDL phân tán (tạo lập điều khiển truy nhập cho hệ CSDL phân tán) làm cho việc phân tán trở nên suốt với người sử dụng [11] DDBMS gồm tập chương trình sau đây: - Các chương trình quản trị liệu phân tán; - Các chương trình quản trị việc truyền thông liệu; - Các chương trình quản trị CSDL cục bộ; - Các chương trình quản trị từ điển liệu: Thông tin phân tán liệu mạng; DDBMS phân làm loại: - DDBMS đồng nhất: Là DBMS mà tất nút sử dụng loại DBMS - DDBMS không đồng nhất: Là DBMS mà có nút không loại DBMS với DBMS nút lại 1.1.3 Ưu điểm CSDL phân tán Lợi ích CSDL phân tán liệu CSDL vật lý riêng biệt tích hợp logic với làm cho nhiều người sử dụng mạng truy nhập Cho phép quản lý liệu theo nhiều mức suốt: DBMS phải 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í liệu không cần biết phức tạp truy cập qua mạng Tăng độ tin cậy khả sẵn sàng: Độ tin cậy khả hệ thống làm việc (không bị ngừng) thời điểm đó, tính sẵn sàng khả hệ thống tiếp tục làm việc khoảng thời gian Khi CSDL phân tán vài trạm, trạm có cố trạm khác hoạt động sử dụng thành phần khác CSDL, trạm bị cố, liệu ứng dụng truy cập Để nâng cao độ tin cậy tính sẵn sàng, áp dụng chế tạo nhiều trạm [2] 60 thị truy vấn bao gồm tất quan hệ kết nối nút PT nhị phân đơn giản Lá tương ứng với quan hệ nút tương ứng bên tham gia phép kết nối Các cạnh thể luồng kết thành phần từ nút gốc Mỗi kế hoạch có chi phí thực Mục đích tối ưu hóa tìm kế hoạch với chi phí thấp Nếu quan hệ kết nối quan hệ bản, PT đc gọi left-deep tree Sẽ có n! cách để phân bổ n quan hệ tới loại PT Nếu ko có hạn chế PT gọi bushy tree Trong nghiên cứu này, sử dụng left-deep tree Mô hình chi phí dựa tổng thời gian xử lý (CPU time + I/O time) sử dụng Chi phí kế hoạch tính toán từ lên Mức bao gồm kết nối chiều (2-way join) Tất cặp n quan hệ đánh giá cho tất trạm Nếu hai quan hệ trạm, chi phí bao gồm CPU + I/O để thực phép kết nối sử dụng thuật toán kết nối nested-loop Nếu quan hệ, gọi A trạm kết nối, chi phí tổng chi phí truy cập B từ trạm nó, chi phí chuyển B tới trạm kết nối thông qua mạng truyền thông, chi phí kết nối quan hệ A với quan hệ B ghi kết (A,B) kết nối ổ đĩa cục Nếu quan hệ lưu trữ trạm nối, tổng chi phí chi phí quét A B, chuyển chúng qua mạng truyền thông, thực phép kết nối ghi kết lên ổ đĩa Đối với mức PT, kết kết nối trung gian coi bảng sở 2.4.3.3 Kết hợp thuật toán tối ưu đàn kiến quy hoạch động để tối ưu hóa truy vấn CSDL phân tán [5] Cơ chế phản hồi tích cực tính toán phân tán ACO làm cho mạnh ACO có khả xử lý song song tìm kiếm toàn cầu, có khả phân tán thấp tốc độ hội tụ cao ACO có số hạn chế hình thành ban đầu ACO cách bắt đầu cách có hệ thống Tốc độ hội tụ ACO thấp giai đoạn đầu lượng pheromone đường khác tốc độ hội tụ tăng câu trả lời tối ưu chế phản hồi tích cực Từ đó, kết hợp ACO với thuật toán khác quy hoạch động, thuật toán di truyền thuật toán tối ưu hóa bầy đàn đề xuất để cung cấp kết tốt xử lý truy vấn CSDL 61 Khi kết hợp với quy hoạch động, mô hoạt động kiến đồ thị PT Mỗi trình tính toán thời gian chạy kế hoạch thực coi kiến thuật toán Các giải pháp đại diện cho thức ăn Kiến có thức ăn sớm lượng pheromone chúng tiết đường giải pháp nhiều Càng cần nhiều thời gian cho kiến theo đường thời gian bay nhiều Kiến kiếm ăn liên tục tìm kiếm kế hoạch thực tốt Các đường lựa chọn thay tổ hợp cho kế hoạch DP mức Nếu có trạm phép kết nối (A đường khác A B C), có B truy vấn kế hoạch Với trạm, phải kiểm tra thời gian trả lời trạm Nếu tìm giải pháp tối ưu trạm tăng pheromone giải pháp khác (A B) bị giảm pheromone bị bay Thuật toán sử dụng 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 không gian thuật toán Không gian tìm kiếm thu gọn cách sử dụng pheromone kế hoạch Nếu ko có trình thu gọn (cắt tỉa) DP-ACO hoạt động giống DP Tăng giá trị SSL làm tăng theo cấp số nhân yêu cầu thời gian không gian thuật toán Pheromone đường đánh giá theo phương trình: SSL Pheromone (k) = ( ∑ Best_time (i) x (1/ Response_time (k))) i Đường định tính toán theo công thức sau: α pkij = ∑ ij ηβij ταil ηβil l ϵ subsolutions Trong pkij xác suất dịch chuyển kiến thứ k chuyển từ giải pháp thứ i sang giải pháp thứ j l thành phần giải pháp Các giải pháp đặt câu lệnh SQL, α β kiểm soát quan trọng tương đối pheromone τij với thông tin heuristic ηij Các giải pháp cho kết nối đa chiều tính toán pheromone cập nhật phụ thuộc vào lực lượng quan hệ Lượng tỉa kiểm soát tham số SSL 62 2.5 Kết luận chương Chương trình bày vấn đề xử lý câu truy vấn, thành phần tối ưu hóa truy vấn, bao gồm không gian tìm kiếm, mô hình chi phí chiến lược tìm kiếm; minh họa việc sử dụng kỹ thuật kết nối nửa kết nối thuật toán tối ưu INGRES phân tán, System R* thuật toán ACO Mỗi phương pháp tối ưu có ưu điểm, nhược điểm Phương pháp tối ưu phân tán tĩnh, động có ưu nhược điểm giống hệ thống tập trung, phương pháp tối ưu dựa phép nửa kết nối sử dụng tốt với mạng chậm, phương pháp hỗn hợp tốt môi trường động ngày trì hoãn định quan trọng lựa chọn chép phân phối truy vấn đến trạm thời điểm khởi động truy vấn Vì vậy, tăng tính sẵn sàng cân tải hệ thống tốt 63 Chương ỨNG DỤNG CÁC THUẬT TOÁN TỐI ƯU HÓA TRUY VẤN TRONG CƠ SỞ DỮ LIỆU PHÂN TÁN 3.1 Giới thiệu toán quản lý nhân Quản lý nhân nhiệm vụ quan trọng Ngành giáo dục đào tạo, thông qua số liệu hàng năm, Sở Giáo dục Đào tạo Yên Bái nắm số lượng trình độ cán bộ, giáo viên nhân viên toàn ngành, tình hình cán bộ, giáo viên nhân viên thừa thiếu, số nghỉ hưu, số chuyển công tác để từ tham mưu với Ủy ban nhân dân tỉnh bổ sung, chuyển điều động từ nơi thừa đến nơi thiếu Để quản lý tốt vấn đề nhân sự, Sở Giáo dục Đào tạo tỉnh Yên Bái sử dụng số phần mềm PMIS, EMIS, VEMIS; nhiên phần mềm quản lý dạng ofline nên khó khăn việc cập nhật thường xuyên Do vậy, cần có ứng dụng dạng online để quản lý hiệu quả, thông tin cập nhật thường xuyên liên tục Trong phần mềm quản lý nhân cần quản lý thông tin nhân như: thông tin hành chính, thông tin lương, thông tin chức vụ, thông tin lịch sử thân, trình công tác, diễn biến lương, nghạch bậc Trong phạm vi luận văn, demo phần CSDL quản lý nhân Sở Giáo dục Đào tạo tỉnh Yên Bái 3.2 Thiết kế sở liệu Cơ sở liệu gồm bảng sau: - CanBo: Lưu thông tin cán Tên trường [ID] [CoQuanQuanLyID] [SoHieu] [CoQuanSuDungID] [HoTen] [NgaySinh] [GioiTinh] [NoiSinhID] [QueQuanID] [DanTocID] [TonGiaoID] Kiểu liệu [int] IDENTITY(1,1), [int] , [varchar](50) , [int] , [nvarchar](100) , [smalldatetime] , [bit] , [int] , [nvarchar](500) , [int] , [int] , Ghi Khóa Cơ quan quản lý Số hiệu Cơ quan sử dụng Họ tên Ngày sinh Giới tính Nơi sinh Quê quán Dân tộc Tôn giáo 64 [HKTT] [NoiO] [NgheNghiepID] [NgayTD] [CoQuanTD] [CongViecChinh] [ChucVuKNID] [ChucVuID] [BacLuong] [NgachID] [HeSo] [NgayHuong] [PhuCapChucVu] [PhuCapKhac] [TDPhoThongID] [TrinhDoID] [ChuyenNganhID] [LyLuanChinhTriID] [QuanLyNNID] [NgoaiNguID] [NgoaiNguKhacID] [TinHocID] [NgayVaoDang] [NgayChinhThuc] [RegionID] [DonViID] [HinhThucTDID] [ChucDanhKhoaHocID] [KhenThuong] [KyLuat] [SucKhoeID] [CMTND] [NgayThamGiaBHXH] [NgayCapCMT] [NoiCapCMT] [SoBHXH] [SoBHYT] [NoiDKBHYT] [LichSuBanThan] [KieuCanBo] [nvarchar](300) , [nvarchar](300) , [int] , [smalldatetime] , [nvarchar](100) , [nvarchar](250) , [int] , [int] , [int] , [int] , [float] , [smalldatetime] , [float] , [int] , [int] , [int] , [int] , [int] , [int] , [int] , [int] , [int] , [smalldatetime] , [smalldatetime] , [nvarchar](150) , [int] , [int] , [int] , [nvarchar](max) , [nvarchar](250) , [int] , [nvarchar](15) , [smalldatetime] , [smalldatetime] , [nvarchar](30) , [nvarchar](30) , [nvarchar](30) , [nvarchar](250) , [nvarchar](2000) , [int] , Hộ thường trú Nơi Nghề nghiệp Ngày tuyển dụng Cơ quan tuyển dụng Công việc Chức vụ kiêm nhiệm Chức vụ Bậc lương Ngạch Hệ số Ngày hưởng Phụ cấp chức vụ Phụ cấp khác Trình độ phổ thông Trình độ học vấn Chuyên ngành Lý luận trị Quản lý nhà nước Ngoại ngữ Ngoại ngữ khác Tin học Ngày vào Đảng Ngày thức Vùng giá trị Đơn vị Hình thức tuyển dụng Chức danh khoa học Khen thưởng Kỷ luật Sức khỏe Chứng minh thư Ngày tham gia BHXH Ngày cấp CMT Nơi cấp CMT Sổ bảo hiểm xã hội Sổ bảo hiểm y tế Nơi đăng ký BHYT Lịch sử than Kiểu cán 65 - Bảng DienBienNgachBac: Lưu thông tin diễn biến ngạch bậc cán Tên trường liệu [ID] [CanBoID] [NgachID] [BacLuong] [NgayHuong] [NgayKetThuc] [ThoiHanNangBac] [DaVuotKhung] [HSCLBL] [HeSo] [PhuCapVuotKhung] [PhuCapKhac] [LuongCoBan] [Kieu] [Curent] [NgachCuID] Kiểu liệu [int] [int] [int] [int] [datetime] [datetime] [int] [bit] [float] [real] [int] [real] [int] [int] [bit] [int] Mô tả Khóa Cán Ngạch Bậc lương Ngày hưởng Ngày kết thúc Thời hạn nâng ngạch Đã vượt khung Hệ số chênh lệch bảo lưu Hệ số Phụ cấp vượt khung Phụ cấp khác Lương Kiểu Hoạt động Ngạch cũ - Bảng DienBienChucVu: Lưu thông tin diễn biến chức vụ cán Tên trường liệu [ID] [CanBoID] [TuNgay] [DenNgay] [ChucVuID] [PhuCapChucVu] [Curent] [isLeader] [NgayBoNhiem] [SoQuyetDinh] Kiểu liệu [int] IDENTITY(1,1) [int] [datetime] [datetime] [int] [real] [bit] [bit] [smalldatetime] [nvarchar](250) Mô tả Khóa Cán Từ ngày Đến ngày Chức vụ Phụ cấp chức vụ Hoạt động Là lãnh đạo Ngày bổ nhiệm Số định - Bảng dmNgach: Lưu thông tin ngạch cán Tên trường liệu [ID] [NhomNgachID] [MaNgach] [TenNgach] [LoaiNgach] [PCVK] Kiểu liệu [int] IDENTITY(1,1) [int] [nvarchar](10) [nvarchar](200) [varchar](5) [tinyint] - Mô hình quan hệ bảng sau: Mô tả Khóa Nhóm ngạch Mã ngạch Tên ngạch Loại ngạch Phụ cấp vượt khung 66 Hình 3.1 Mối quan hệ bảng liệu 3.3 Mô hình phân tán CSDL, công cụ, ngôn ngữ lập trình - CSDL phân tán trạm, sử dụng DBMS SQL Server 2008 + Trạm chứa bảng CanBo (20.005 ghi) + Trạm chứa bảng: DienBienNgachBac (101.627 ghi) dmNgach (105.183 ghi) + Trạm chứa bảng DienBienChucVu (2.273 ghi) - Chương trình viết ngôn ngữ lập trình C# 3.4 Cài đặt thuật toán Chương trình cài đặt thử nghiệm thuật toán INGRES phân tán R* trình bày mục 2.4.1 2.4.2 Từ so sánh kết thời gian hai thuật toán tối ưu trạm 67 3.5 Kết 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 = DienBienNgachBac.CanBoID AND dbo.DienBienNgachBac.NgachID = dbo.dmNgach.ID - Kết thực trạm 1: 68 Hình 3.2 Kết thực câu truy vấn trạm + Tổng số ghi kết quả: 3379 + Thời gian thực truy vấn áp dụng INGRES phân tán: 125 ms Câu truy vấn ban đầu tách thành câu truy vấn rút gọn q1 q2 q3 sau: q1: SELECT dbo.DienBienNgachBac.BacLuong, dbo.DienBienNgachBac.NgayHuong, dbo.DienBienNgachBac.NgayKetThuc, dbo.DienBienNgachBac.ThoiHanNangBac, dbo.DienBienNgachBac.DaVuotKhung, dbo.DienBienNgachBac.HSCLBL, dbo.DienBienNgachBac.HeSo, dbo.DienBienNgachBac.NgachID, dbo.DienBienNgachBac.CanBoID, dbo.DienBienNgachBac.PhuCapVuotKhung, dbo.DienBienNgachBac.PhuCapKhac, dbo.DienBienNgachBac.LuongCoBan, dbo.DienBienNgachBac.Kieu, dbo.DienBienNgachBac.Curent, dbo.dmNgach.MaNgach, dbo.dmNgach.TenNgach, dbo.dmNgach.LoaiNgach, dbo.dmNgach.PCVK into tmp FROM dbo.DienBienNgachBac INNER JOIN dbo.dmNgach ON dbo.DienBienNgachBac.ID = dbo.dmNgach.ID q2: SELECT tmp.*, 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 into tmp2 FROM dbo.CanBo, tmp WHERE tmp CanBo _ID = dbo.DienBienChucVu.CanBoID 69 q3: SELECT tmp2.*, ChucVuID, TuNgay, DenNgay, PhuCapChucVu, NgayBoNhiem, SoQuyetDinh FROM dbo.CanBo, tmp WHERE tmp2 CanBo_ID = DienBienChucVu CanBo_ID q1 thực trạm 2, q2 thực trạm 1,q3 thực máy trạm + Thời gian thực truy vấn áp dụng Thuật toán R*: 140 ms Chiến lược thực hiện: (dmNgach DienBienNgachBac) CanBo DienBienChucVu Ban đầu, thực kết nối quan hệ trạm (dmNgach DienBienNgachBac) truyền liệu kết tới trạm kết nối với quan hệ CanBo kết nối với quan hệ DienBienChucVu - Kết thực trạm 2: Hình 3.3 Kết thực câu truy vấn trạm 70 + Tổng số ghi kết quả: 3379 + Thời gian thực truy vấn áp dụng INGRES phân tán: 140 ms Câu truy vấn ban đầu tách thành câu truy vấn rút gọn q1 q2q3 sau: q1: SELECT dbo.DienBienNgachBac.BacLuong, dbo.DienBienNgachBac.NgayHuong, dbo.DienBienNgachBac.NgayKetThuc, dbo.DienBienNgachBac.ThoiHanNangBac, dbo.DienBienNgachBac.DaVuotKhung, dbo.DienBienNgachBac.HSCLBL, dbo.DienBienNgachBac.HeSo, dbo.DienBienNgachBac.NgachID, dbo.DienBienNgachBac.CanBoID, dbo.DienBienNgachBac.PhuCapVuotKhung, dbo.DienBienNgachBac.PhuCapKhac, dbo.DienBienNgachBac.LuongCoBan, dbo.DienBienNgachBac.Kieu, dbo.DienBienNgachBac.Curent, dbo.dmNgach.MaNgach, dbo.dmNgach.TenNgach, dbo.dmNgach.LoaiNgach, dbo.dmNgach.PCVK into tmp FROM dbo.DienBienNgachBac INNER JOIN dbo.dmNgach ON dbo.DienBienNgachBac.ID = dbo.dmNgach.ID q2: SELECT tmp.*, 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 into tmp2 FROM dbo.CanBo, tmp WHERE tmp CanBo _ID = dbo.DienBienChucVu.CanBoID q3: SELECT tmp2.*, ChucVuID, TuNgay, DenNgay, PhuCapChucVu, NgayBoNhiem, SoQuyetDinh FROM dbo.CanBo, tmp WHERE tmp2 CanBo_ID = DienBienChucVu CanBo_ID q1 thực trạm 1, q2 thực trạm 2, q3 thực máy trạm + Thời gian thực truy vấn áp dụng Thuật toán R*: 156 ms Chiến lược thực hiện: ((dmNgach DienBienNgachBac) CanBo) DienBienChucVu Ban đầu, thực kết nối quan hệ trạm (dmNgach DienBienNgachBac) truyền liệu kết tới trạm kết nối với quan hệ CanBo truyền từ trạm sang trạm 2 sau truyền liệu kết tới trạm 71 - Kết thực trạm 3: Hình 3.4 Kết thực câu truy vấn trạm + Tổng số ghi kết quả: 3379 + Thời gian thực truy vấn áp dụng INGRES phân tán: 187 ms Câu truy vấn ban đầu tách thành câu truy vấn rút gọn q1 q2q3 sau: q1: SELECT dbo.DienBienNgachBac.BacLuong, dbo.DienBienNgachBac.NgayHuong, dbo.DienBienNgachBac.NgayKetThuc, dbo.DienBienNgachBac.ThoiHanNangBac, dbo.DienBienNgachBac.DaVuotKhung, dbo.DienBienNgachBac.HSCLBL, dbo.DienBienNgachBac.HeSo, dbo.DienBienNgachBac.NgachID, dbo.DienBienNgachBac.CanBoID, dbo.DienBienNgachBac.PhuCapVuotKhung, dbo.DienBienNgachBac.PhuCapKhac, dbo.DienBienNgachBac.LuongCoBan, dbo.DienBienNgachBac.Kieu, dbo.DienBienNgachBac.Curent, dbo.dmNgach.MaNgach, dbo.dmNgach.TenNgach, dbo.dmNgach.LoaiNgach, dbo.dmNgach.PCVK 72 into tmp FROM dbo.DienBienNgachBac INNER JOIN dbo.dmNgach ON dbo.DienBienNgachBac.ID = dbo.dmNgach.ID q2: SELECT tmp.*, 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 into tmp2 FROM dbo.CanBo, tmp WHERE tmp CanBo _ID = dbo.DienBienChucVu.CanBoID q3: SELECT tmp2.*, ChucVuID, TuNgay, DenNgay, PhuCapChucVu, NgayBoNhiem, SoQuyetDinh FROM dbo.CanBo, tmp WHERE tmp2 CanBo_ID = DienBienChucVu CanBo_ID q1 thực trạm 3, q2 thực trạm 2, q3 thực máy trạm + Thời gian thực truy vấn áp dụng Thuật toán R*: 130 ms Chiến lược thực hiện: (dmNgach DienBienNgachBac) CanBo DienBienChucVu Ban đầu, thực kết nối quan hệ trạm (dmNgach DienBienNgachBac) truyền liệu kết tới trạm kết nối với quan hệ CanBo máy trạm 2 sau truyền liệu kết tới trạm 3.6 Kết luận chương Chương trình bày toán quản lý nhận chương trình cài đặt thuật toán INGRES phân tán 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 kết thực nghiệm chạy câu truy vấn để so sánh thời gian chạy truy vấn tối ưu sử dụng thuật toán trạm khác Qua kết thực nghiệm ta thấy giải pháp thực trạm với hai thuật toán thời gian thực khác Cụ thể, thời gian thực truy vấn trạm nhanh trạm trạm với hai thuật toán Trong trường hợp câu truy vấn này, thuật toán R* thuật toán INGRES phân tán có thời gian thực chênh lệch không đáng kể tùy thuộc vào tốc độ CPU trạm Thuật toán INGRES phân tán R* 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 sao, thuật toán INGRES phân tán có hỗ trợ phân mảnh 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 73 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Kết luận Hệ thống phân tán 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 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 định đến hiệu hệ thống hiệu kinh tế mang lại Với đề tài “Một số thuật toán tối ưu hóa sở liệu phân tán”, luận văn đạt số kết sau: - Trình bày khái quát sở liệu phân tán, hệ quản trị CSDL phân tán, phân tích đặc điểm CSDL phân tán số phương pháp thiết kế CSDL phân tán - Giới thiệu bước trình xử lý câu truy vấn, xác định thời điểm tối ưu 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 phương pháp để lựa chọn cho phù hợp với yêu cầu thực tế hệ thống - Cài đặt, đánh giá tính hiệu hai thuật toán: INGRES phân tán R* hệ thống quản lý nhân Hướng phát triển luận văn Tiếp tục nghiên cứu phương pháp tối ưu hóa truy vấn CSDL phân tán khác phương pháp dựa phép nửa kết nối, kết hợp thuật toán tối ưu đàn kiến với số thuật toán khác thuật toán di truyền, thuật toán tối ưu bầy đàn, sở đưa đánh giá ưu nhược điểm phương pháp để áp dụng cho toán cụ thể thực tế 74 TÀI LIỆU THAM KHẢO Tiếng Việt: Nguyễn Văn Huân - Phạm Việt Bình (2009), “Giáo trình hệ sở liệu phân tán & suy diễn: Lý thuyết thực hành”, NXB Khoa học kỹ thuật Phạm Thế Quế (2009) “Giáo trình Cơ sở liệu phân tán”, NXB thông tin truyền thông Nguyễn Bá Tường (2005), Nhập môn sở liệu liệu phân tán, NXB Khoa học kỹ thuật Tiếng Anh: Alaa Aljanaby, Emad Abuelrub, and Mohammed Odeh (2005), “A Survey of Distributed Query Optimization”, The International Arab Journal of Information Technology, Vol 2, No 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 Marco Dorigo, Thomas Stutzle (2003), The Ant Colony Optimization Metaheuristic, Algorithms, Applications, and Advances - Handbook of Metaheuristics, Springer US, pp 250-285 Marco Dorigo, Thomas Stutzle (2004), Ant Colony Optimization, MIT Press Chhanda Ray (2009), Distributed Database Systems, Pearson Education India 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 [...]... 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ộ (xem Hình 2.2) [2] 24 Các phép tính truy vấn trên các quan hệ phân tán Phân rã truy vấn Vị trí điều khiển Lược đồ toàn cục Truy vấn dạng đại số trên các quan hệ phân tán Cục bộ hóa dữ liệu Lược đồ mảnh Truy vấn theo mảnh Tối ưu hóa toàn cục Số liệu trên các mảnh Truy vấn. .. cho người lập trình ứng dụng không biết được sự phân tán dữ liệu 20 Chương 2 TỐI ƯU HÓA TRUY VẤN CƠ SỞ DỮ LIỆU PHÂN TÁN 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 [1] Có nhiều giải pháp chuyển... hiện trong việc không được có mâu thuẫn trong nội dung dữ liệu 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 - Cho phép xử lý dữ liệu trên hệ CSDL phân tán giống như đối với CSDL tập trung 8 - Người sử dụng không cần biết dữ liệu đã được phân mảnh 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 - Trong suốt phân tán thể hiện: + Trong. .. n Hình 1.2 Mô hình kiến trúc của cơ sở dữ liệu phân tán 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 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 mảnh dữ liệu được đưa đến các trạm thích hợp để sử dụng Sao lặp dữ liệu: CSDL được nhân thành nhiều... liệu trên các mảnh Truy vấn theo mảnh đã tối ưu Với các phép toán truy n Các vị trí cục bộ Tối ưu hóa cục bộ Lược đồ cục bộ Truy vấn cục bộ đã tối ưu Hình 2.2 Sơ đồ quy trình xử lý truy vấn 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ả... 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 11 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 và phân mảnh hỗn hợp [2] Một sự phân mảnh là đúng đắn nếu tuân thủ 3 quy tắc sau: - Tính đầy đủ: Tất cả dữ liệu của quan hệ... pháp truy vấn tương đương Hai giải pháp A và B thực hiện truy vấn là tương đương Trong đó: Giải pháp A sử dụng các quan hệ PC và NV được phân mảnh theo cùng một cách để thực hiện song song các phép chọn và phép nối Chiến lược B thì tập trung tất cả các dữ liệu tại vị trí lưu kết quả trước khi xử lý truy vấn 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. .. cuối cùng của phân rã câu truy vấn là viết lại câu truy vấn dưới dạng đại số quan hệ Có thể được chia làm hai bước sau: - Chuyển đổi câu truy vấn phép tính quan hệ sang đại số quan hệ - Xây dựng lại câu truy vấn đại số quan hệ để cải tiến hiệu năng Để cho dễ hiểu, thông thường người ta biểu diễn câu truy vấn đại số quan hệ bởi một cây đại số quan hệ Một cây đại số quan hệ là một cây trong đó một nút lá... dụng các thông tin về dữ liệu đã được phân tán trên các vị trí Vì 25 thế, phân rã truy vấn đều giống nhau trong cả hệ thống tập trung và phân tán, câu truy vấn sẽ đúng về ngữ nghĩa và đạt chất lượng theo nghĩa là đã loại bỏ các hành động không cần thiết Phân rã truy vấn bao gồm bốn bước liên tiếp: 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âu truy vấn Mục đích của chuẩn... tác phân tán trên toàn hệ thống 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ộ (xem Hình 1.2) [2] - Lược đồ tổng thể: Định nghĩa tất cả các dữ liệu sẽ được lưu trữ trong CSDL phân tán Trong mô hình quan hệ, lược đồ tổng thể bao gồm định nghĩa của các tập quan hệ tổng thể - Lược đồ phân ... sở liệu phân tán, kỹ thuật tối ưu hóa câu truy vấn sở liệu phân tán, cài đặt thử nghiệm số thuật toán tối ưu hóa câu truy vấn sở liệu phân tán, từ đưa nhận xét, đánh giá ưu điểm, nhược điểm thuật. .. Chương TỐI ƯU HÓA TRUY VẤN CƠ SỞ DỮ LIỆU PHÂN TÁN 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 xử lý truy vấn chuyển đổi truy vấn mức cao (phép tính quan hệ) sang truy vấn. .. tổng quan CSDL phân tán; - Trình bày phương pháp tối ưu hóa truy vấn; - Cài đặt thử nghiệm thuật toán tối ưu hóa truy vấn Ý nghĩa khoa học đề tài Việc tối ưu hóa sở liệu phân tán giúp cho việc