Xử lý và tối ưu hóa truy vấn trong cơ sở dữ liệu hướng đối tượng phân tán (tt)

27 510 0
Xử lý và tối ưu hóa truy vấn trong cơ sở dữ liệu hướng đối tượng phân tán (tt)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BỘ GIÁO DỤC VÀ ĐÀO TẠO VIỆN HÀN LÂM KHCN VIỆT NAM HỌC VIỆN KHOA HỌC VÀ CÔNG NGHỆ …… ….***………… MAI THÚY NGA XỬ LÝ VÀ TỐI ƯU HÓA TRUY VẤN TRONG CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG PHÂN TÁN Chuyên ngành: Cơ sở Toán học cho Tin học Mã số: 62 46 01 10 TÓM TẮT LUẬN ÁN TIẾN SĨ TOÁN HỌC HÀ NỘI – 2017 Công trình hoàn thành tại: Học viện Khoa học công nghệ - Viện Hàn lâm Khoa học công nghệ Việt Nam Người hướng dẫn khoa học 1: PGS TS Đoàn Văn Ban Người hướng dẫn khoa học 2: TS Nguyễn Mạnh Hùng Phản biện 1: TS Nguyễn Long Giang Phản biện 2: PGS TS Bùi Thu Lâm Phản biện 3: PGS TS Trần Đăng Hưng Luận án bảo vệ trước Hội đồng chấm luận án tiến sĩ, họp Học viện Khoa học Công nghệ - Viện Hàn lâm Khoa học công nghệ Việt Nam vào hồi … …’, ngày … tháng … năm 2017 Có thể tìm hiểu luận án tại: MỞ ĐẦU Đối với số lĩnh vực chuyên sâu Cơ sở liệu Multimedia, địa lí, CAD/CAM/CIM hệ thống tài phức tạp, CSDL quan hệ bộc lộ hạn chế Cơ sở liệu hướng đối tượng (CSDL HĐT) đời để khắc phục hạn chế CSDL HĐT xây dựng với mục đích tích hợp với ngôn ngữ lập trình hướng đối tượng, loại ngôn ngữ lập trình phổ biến ứng dụng ngày Trong CSDL HĐT, “đối tượng” đơn vị trung tâm, đối tượng lưu trữ không liệu mà thao tác chúng CSDL HĐT có đặc trưng tính đóng gói, kế thừa, đa hình Ngoài vấn đề chức độ phù hợp với toán, hệ thống CSDL HĐT cần đánh giá hiệu Trong tiêu chuẩn đánh giá hiệu CSDL HĐT, OO7 coi tiêu chuẩn thư viện phổ biến, cung cấp đầy đủ kịch kiểm thử để đánh giá loại CSDL HĐT từ nhiều góc độ khác Để đáp ứng nhu cầu doanh nghiệp lớn với liệu phân tán nhiều trạm vị trí địa lý khác nhau, CSDL phát triển môi trường mạng tạo thành mô hình sở liệu phân tán (CSDL PT) Một số mục tiêu việc phát triển hệ thống CSDL PT tăng độ tin cậy tính sẵn sàng, đáp ứng tính phân tán tổ chức, có khả mở rộng, … Thiết kế phân tán CSDL ban đầu phát triển ngữ cảnh mô hình liệu quan hệ, sau mở rộng mô hình liệu hướng đối tương tạo thành mô hình sở liệu hướng đối tượng phân tán (CSDL HĐT PT) Trong CSDL HĐT PT nhiều vần đề cần nghiên cứu, có việc xử lý truy vấn đối tượng phân tán Xử lý truy vấn liên quan đến vấn đề thiết kế phân tán tối ưu hóa phân tán Bài toán thiết kế phân tán nhằm mục tiêu nâng cao hiệu hệ thống, chia thành hai giai đoạn phân mảnh cấp phát Cả hai toán phân mảnh cấp phát toán NP-khó với không gian tìm kiếm lớn Trong CSDL HĐT PT phân mảnh cấp phát thực lớp đối tượng Phân mảnh dọc nhằm mục đích chia lớp thành phần nhỏ hơn, phần gồm số thuộc tính phương thức Phân mảnh ngang chia đối tượng lớp thành phần khác nhau, phần gồm số đối tượng Các thuật toán phân mảnh lớp thực nghiên cứu khác theo hướng khác dựa thuật toán lượng nối, phân mảnh dựa thuộc tính, dựa phương thức, dựa heuristic, dựa tác tử, dựa lý thuyết mờ, Cấp phát định vị mảnh đối tượng vào trạm tương ứng mạng liên kết Không nhiều nghiên cứu đề cập đến vấn đề cấp phát CSDL HĐT PT, có thuật toán đồ thị, giải thuật di truyền, heuristic Luận án tập trung vào vấn đề tối ưu hóa truy vấn thảo luận toán thực thi biểu thức đường dẫn Biểu thức đường dẫn dãy tham chiếu để truy xuất đến đối tượng theo thuộc tính phương thức Mục tiêu tối ưu hóa biểu thức đường dẫn tìm chiến lược thực thi biểu thức đường dẫn cách hợp lý nhằm tối thiểu hóa chi phí Chi phí tính toán chi phí theo thao tác xuất nhập, chi phí tính toán chi phí truyền liệu, chi phí đáng kể chi phí truyền liệu Mục tiêu nghiên cứu luận án nghiên cứu vấn đề xử lý truy vấn để nâng cao hiệu hệ thống Với mục tiêu này, nội dung nghiên cứu luận án là: - Nghiên cứu hệ thống đánh giá hiệu CSDL HĐT môi trường tập trung phân tán - Nghiên cứu thuật toán phân mảnh cấp phát đối tượng Đề xuất thuật toán phân mảnh cấp phát đối tượng phân tán - Nghiên cứu thuật toán tối ưu hóa truy vấn có chứa biểu thức đường dẫn CSDL HĐT Đề xuất thuật toán tối ưu hóa biểu thức đường dẫn CSDL HĐT PT Đối tượng nghiên cứu luận án CSDL HĐT PT, thư viện đánh giá hiệu năng, thuật toán phân mảnh, cấp phát tối ưu hóa truy vấn có Phạm vi nghiên cứu luận án toán phân mảnh cấp phát lớp, tối ưu hóa biểu thức đường dẫn Phương pháp nghiên cứu nghiên cứu lý thuyết, xây dựng thuật toán đánh giá độ phức tạp thuật toán, cài đặt thực nghiệm thuật toán, kiểm tra liệu để so sánh đánh giá Các đóng góp luận án bao gồm:  Đánh giá hiệu số CSDL HĐT phổ biến Versant thông qua thư viện OO7 tiêu chí chính: Tốc độ xử lí việc duyệt đối tượng, mức độ hiệu việc thay đổi đối tượng (tạo, xóa cập nhật), hiệu việc xử lý loại câu truy vấn đối tượng  Đề xuất hai thuật toán cho việc phân mảnh cấp phát CSDL HĐT: (1) Thuật toán phân mảnh dọc lớp đối tượng dựa tương quan thuộc tính (2) Thuật toán heuristic thực phân mảnh dọc cấp phát đồng thời lớp đối tượng dựa chi phí  Đề xuất thuật toán truyền liệu để thực truy vấn biểu thức đường dẫn CSDL HĐT PT lọc Bloom Đề xuất thuật toán tối ưu hóa biểu thức đường dẫn CSDL HĐT PT quy hoạch động sử dụng chế sinh cảm sinh chế truyền liệu lọc Bloom Luận án tổ chức thành phần mở đầu, ba chương nội dung kết luận Chương I giới thiệu khái niệm CSDL HĐT CSDL HĐT PT Phần cuối chương tập trung phân tích thư viện OO7, cài đặt thư viện để đánh giá hiệu hệ quản trị CSDL HĐT PT Chương II trình bày thông tin đầu vào cách biến đổi tham số đầu vào toán phân mảnh cấp phát theo quan hệ CSDL HĐT PT Tiếp theo, đề xuất thuật toán phân mảnh dựa tương quan thuộc tính thuật toán heuristic để phân mảnh dọc cấp phát lớp cách đồng thời Chương III nghiên cứu vấn đề liên quan đến tối ưu hóa truy vấn Luận án đề xuất thuật toán tối ưu biểu thức đường dẫn CSDL HĐT PT sử dụng phương pháp liệt kê cảm sinh đồ thị chế lọc Bloom để giảm chi phí truyền liệu hai trạm Phần kết luận cuối nêu đóng góp luận án, hướng nghiên cứu đặt từ kết luận án CHƯƠNG - CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG PHÂN TÁN 1.1 Cơ sở liệu hướng đối tượng Các ứng dụng phức tạp thiết kế sản xuất công nghiệp (CAD/CAM CIM), thí nghiệm khoa học, viễn thông, hệ đồ CSDL đa phương tiện, đòi hỏi cấu trúc liệu phải mềm dẻo linh hoạt Mô hình CSDL hướng đối tượng (CSDL HĐT) đề xuất để giải vấn đề CSDL HĐT có số đặc điểm sau: - Cung cấp khả lưu trữ thao tác với kiểu liệu trừu tượng (như hình ảnh, đồ) khả cho phép người dùng định nghĩa kiểu cho ứng dụng - Cung cấp khả biểu diễn quan hệ đối tượng liệu theo quan hệ tự nhiên giới thực Ví dụ đối tượng tài liệu có chứa đối tượng video đối tượng văn có đề mục - Có khả tích hợp trực tiếp với ngôn ngữ lập trình hướng đối tượng, ngôn ngữ mà ngày sử dụng phần lớn ứng dụng 1.1.1 Đối tượng Khái niệm CSDL hướng đối tượng đối tượng (object) Đối tượng biểu diễn thực thể có thực hệ thống mô hình hóa Mỗi đối tượng biểu diễn (OID, trạng thái, giao diện), OID (Object Identifier) định danh đối tượng trạng thái (state) tương ứng biểu diễn trạng thái cho trạng thái đối tượng, giao diện (interface) định nghĩa hành vi đối tượng Trạng thái đối tượng giá trị nguyên tử giá trị xây dựng Gọi D tập miền hệ thống định nghĩa miền kiểu liệu trừu tượng người dùng định nghĩa, gọi I miền định danh dùng để đặt tên đối tượng, A miền tên thuộc tính Một giá trị định nghĩa sau: Một phần tử D giá trị gọi giá trị nguyên tử (atomic value) [a1: v1,…, an: vn] gọi giá trị (tuple value), phần tử A vi giá trị phần tử I [ ] gọi toán tử tạo lập (tuple constructor) {v1,…, vn} gọi giá trị tập hợp trị tập (set value), với vi giá trị phần tử I { } gọi toán tử tạo lập tập (set constructor) Ví dụ 1.1: Xem xét đối tượng sau (i1, 230) (i2,”Sinh viên”) (i3, {i6, i11}) (i4, {1, 6, 9}) (i5, [LF: i7, RF: i8, LR: i9, RR: i10]) 1.1.2 Lớp Một lớp mẫu cho nhóm đối tượng, định nghĩa kiểu chung cho đối tượng tạo nên từ mẫu Một lớp mô tả kiểu liệu cách cung cấp miền liệu với cấu trúc, với phương thức áp dụng lên phần tử miền Khả trừu tượng hóa lớp, đề cập tính đóng gói, dấu cài đặt chi tiết phương thức, tương tác với bên thông qua giao diện Ví dụ 1.2: Mô hình hóa ô tô với nhiều phận (động cơ, giảm sóc, bánh xe) lưu thông tin khác hãng sản xuất, số seri, … type XeHoi attributes dongCo: DongCo cacGiamSoc: {GiamSoc} cacBanhXe: [traiTruoc: BanhXe, phaiTruoc: BanhXe, traiSau: BanhXe, phaiSau: BanhXe] hangSanXuat: HangSanXuat methods tuoi: Real() thayBanh(diaDiem,banhXe) Cấu trúc liệu giao diện lớp phức tạp lớn tùy ý Lớp cung cấp hai ưu điểm chính: Dễ dàng mở rộng từ kiểu nguyên thủy hệ thống sang kiểu người dùng định nghĩa 1.1.3 Hợp phần Trong ví dụ 1.2, số thuộc tính dựa đối tượng, chẳng hạn thuộc tính hangSanXuat với miền tập đối tượng có kiểu HangSanXuat Trong trường hợp này, kiểu XeHoi kiểu hợp phần (composite type) thể gọi đối tượng hợp phần (composite object) Hợp phần cho phép chia sẻ đối tượng Ví dụ 1.3: Giả sử x1 thể kiểu XeHoi Nếu điều sau chứng tỏ Hung Nam có chung xe (i2, [ten: Hung, soHuuXe: x1]) (i3, [ten: Nam, soHuuXe: x1]) 1.1.4 Phân lớp tính kế thừa Các hệ đối tượng cung cấp khả mở rộng kiểu, lớp từ kiểu, lớp có Điều thực thông qua định nghĩa lớp nhờ toán tử tạo lập kiểu định nghĩa lớp dựa vào lớp có sẵn bổ sung thành phần để tạo lớp Sinh lớp dựa vào mối liên hệ chuyên biệt hóa lớp Một lớp chuyên biệt (lớp con) định nghĩa chi tiết so với lớp mà từ chuyên biệt (lớp cha) Ví dụ 1.4: Xe định nghĩa tính chất chung tất kiểu xe type Xe as Object attributes dongCo: DongCo hangSanXuat: HangSanXuat methods tuoi(): Real; Định nghĩa XeHoi kế thừa từ kiểu Xe thêm số thuộc tính type XeHoi as Xe attributes cacGiamSoc: {GiamSoc} cacBanhXe: [traiTruoc: BanhXe, phaiTruoc: BanhXe, traiSau: BanhXe, phaiSau: BanhXe] soCho: Integer Khai báo kiểu kiểu kiểu khác tạo kế thừa (inheritance), kế thừa cho phép tái sử dụng Nếu kiểu kế thừa từ kiểu khác gọi đơn kế thừa, kiểu kế thừa từ nhiều kiểu khác gọi đa kế thừa 1.2 Cơ sở liệu hướng đối tượng phân tán 1.2.1 Mô hình sở liệu hướng đối tượng phân tán Một Cơ sở liệu (CSDL) phân tán tập hợp nhiều CSDL có liên quan logic phân bố mạng máy tính, biểu diễn Hình 1.1 Có hai đặc điểm quan trọng định nghĩa CSDL phân tán:  Liên quan logic: Dữ liệu hệ phân tán có số thuộc tính ràng buộc chúng với  Phân tán: Dữ liệu không cư trú vị trí mà phân bố rộng khắp nhiều máy tính đặt nhiều vị trí khác Trạm Trạm Trạm Mạng truyền liệu Trạm Trạm Hình 1.1: Môi trường hệ CSDL phân tán Với lợi công nghệ mạng truyền thông, mô hình CSDL phân tán phù hợp với phân tán mặt tổ chức công ty, đặc biệt công ty toàn cầu Sự phân bố sở liệu hướng đối tượng theo mô hình sở liệu phân tán gọi sở liệu hướng đối tượng phân tán (CSDL HĐT PT) 1.2.2 Các ưu điểm CSDL phân tán - Quản lý liệu phân tán với mức suốt khác - Tăng độ tin cậy giao dịch phân tán - Cải thiện hiệu Dễ mở rộng 1.2.3 Các vấn đề cần giải CSDL phân tán Các vấn đề cần giải CSDL PT mối quan hệ chúng biểu diễn Hình 1.2 Thiết kế CSDL phân tán trung tâm ảnh hưởng đến vấn đề khác Chẳng hạn thiết kế ảnh hưởng đến việc quản lý thư mục định nghĩa mảnh vị trí chứa chúng xác định nội dung thư mục Những thông tin mảnh vị trí xử lý truy vấn dùng để xác định chiến lược truy vấn Ngược lai, thông tin truy vấn sử dụng cho thuật toán phân mảnh Quản lý thư mục Xử lý truy vấn Thiết kế CSDL phân tán Độ tin cậy Sao chép Điều khiển tương tranh Quản lý khóa gài Hình 1.2: Mối liên hệ vấn đề CSDL PT 1.2.4 Kiến trúc sở liệu hướng đối tượng phân tán Kiến trúc hệ CSDL HĐT PT theo kiến trúc client/server Trong vấn đề cần nghiên cứu CSDL HĐT PT luận án tập trung giải ba vấn đề: Đánh giá hiệu năng, thiết kế phân tán (phân mảnh cấp phát), tối ưu hóa truy vấn phân tán Thiết kế CSDL HĐT PT phức tạp hơn, chẳng hạn: - - Do tính đóng gói, cấu trúc đối tượng bao gồm phương thức trạng thái Vấn đề cần đặt có nên phân mảnh thuộc tính nhân các phương thức cho mảnh hay phân mảnh phương thức Mỗi thuộc tính phương thức lại có kiểu đơn giản phức hợp Khi phân mảnh thuộc tính phương thức phức hợp phải xét đến lớp liên quan thuộc tính phương thức Tối ưu hóa truy vấn phân tán có số khó khăn nảy sinh như: - Các hệ đối tượng có hệ thống kiểu phong phú Kết phép toán đại số đối tượng thường tập đối tượng thuộc kiểu khác Đóng gói phương thức liệu đối tượng khả truy cập thông tin đánh giá chi phi khó - Các đối tượng thường có cấu trúc phức tạp có phân cấp kế thừa, việc tối ưu hóa phức tạp 1.3 Đánh giá hiệu CSDL HĐT với thư viện OO7 1.3.1 Giới thiệu OO7 thư viện xây dựng để đánh giá hiệu hệ thống CSDL HĐT dựa tiêu chí sau: - Tốc độ xử lý việc duyệt (traversal) đối tượng, kể sử dụng nhớ đệm hay duyệt trực tiếp ổ đĩa Mức độ hiệu việc thay đổi đối tượng (tạo, xóa cập nhật), kể đối tượng sử dụng index không sử dụng index, liệu lặp liệu dư thừa Hiệu việc xử lý loại câu truy vấn đối tượng 1.3.2 Thiết kế CSDL OO7 Hai thành phần thiết kế liệu OO7 tập “Đối tượng nguyên tố” (atomic object) “Đối tượng phức hợp” (composite object) Tập hợp đối tượng nguyên tố theo số kết nối theo mô hình đồ thị cấu thành đối tượng phức hợp, thành phần phức hợp tương ứng với thiết kế ứng dụng thực tế Đồ thị kết nối đối tượng Atomic đối tượng Comp Hình 1.5 Mỗi thiết kế CSDL gồm nhiều module module bao gồm nhiều assembly mà assembly đóng gói nhiều đối tượng phức hợp nguyên thủy với đóng gói assembly Các assembly lại đóng gói để hình thành assemply phức hợp assembly liên kết theo hình Mỗi module thiết kế gồm đối tượng liệu kích thước lớn để mô việc đánh giá hiệu với đối tượng cực lớn Mô hình hóa thiết kế CSDL OO7 minh họa Hình 1.6 Các tham số cho phép cấu hình CSDL mức nhỏ, vừa lớn Ví dụ cấu hình tham số Bảng 1.1 Mọi đối tượng thuộc tính thiết kế OO7 đưa nhằm mục đích mô tốt toán hướng đối tượng thực tế Kể với dạng hướng đối tượng phân tán, thiết kế mô đối tượng địa điểm cục phân tán khác mà module minh họa trạm xử lý hệ phân tán Bảng 1.1: Các tham số CSDL OO7 Tham số Mô tả NumModule Số lượng module NumCompPerModule NumAtomicPerComp Small Medium Large 1 10 Số lượng đối tượng phức hợp module 500 500 500 Số lượng đối tượng nguyên thủy đối tượng phức hợp 200 200 200 1.3.3 Kịch đánh giá hiệu Kịch đánh giá gồm mười kịch duyệt đối tượng tám kịch truy vấn Kịch duyệt thực hai dạng Hot Cold Dạng Cold hoàn toàn không sử dụng nhớ cache, với dạng duyệt Hot bước chuẩn bị chạy giống Cold sau chạy lại ba lần thao tác duyệt Cold sử dụng lại cache có từ lần chạy 1.3.4 Kết thực nghiệm Một số tham số CSDL thay đổi để kiểm tra nhiều góc độ: - Sử dụng cấu hình CSDL dạng nhỏ (small) với cấu hình client/server dạng tệp trực tiếp ổ đĩa (embedded file) Sử dụng index (index on) không sử dụng index (index off) Tải liệu dạng đầy đủ (eager load) dạng không đầy đủ (lazy load) Chương trình bổ sung dạng CSDL vừa (medium) thiết lập sẵn index on eager load 1.3.4.1 Kết duyệt dạng COLD Hình 1.7: Biểu đồ thao tác duyệt dạng COLD - Khi sử dụng index kết có tốt khoảng 5% thời gian xử lý, kết không thực phản ánh tốt tính index phần lớn thao tác duyệt có xử lý update liệu (index phù hợp cho việc đọc update liệu) CHƯƠNG - THIẾT KẾ TRONG CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG PHÂN TÁN Bài toán thiết kế liệu phân tán chia thành hai toán chính: phân mảnh cấp phát Phân mảnh chia nhỏ liệu thành phần nhỏ Cấp phát định vị mảnh vào trạm Với mô hình đối tượng việc phân mảnh nảy sinh vấn đề phức tạp đặc tính hướng đối tượng, tính đóng gói, kế thừa, phân cấp lớp Chương luận án trình bày thuật toán phân mảnh cấp phát cho CSDL HĐT PT Những kết đăng báo (1), (3), (4) 2.1 Các thông tin đầu vào toán phân mảnh dọc cấp phát lớp 2.1.1 Thông tin CSDL Dữ liệu CSDL HĐT bao gồm tập đối tượng đóng gói, đối tượng bao gồm thuộc tính phương thức Định nghĩa 2.1 [24]: Một lớp thứ i CSDL HĐT biểu diễn Ci = (Ki, Ai, Mi, Ii) đó: Ki tập định danh, Ai tập thuộc tính, Mi tập phương thức Ii tập đối tượng định nghĩa Ai Mi Thuộc tính lớp chia thành hai kiểu đơn giản phức tạp: Thuộc tính đơn giản thuộc tính có miền giá trị lớp nguyên thủy Thuộc tính phức tạp thuộc tính có miền giá trị lớp nguyên thủy, giá trị thuộc tính định danh đối tượng khác Phương thức lớp chia thành hai kiểu đơn giản phức tạp: Phương thức đơn giản phương thức thực không gọi phương thức khác Phương thức phức tạp phương thức thực gọi phức thức khác lớp phương thức lớp khác Định nghĩa 2.2: Một phương án phân mảnh dọc lớp Ci cách chia Ci thành tập mảnh {𝑓1𝑖 , 𝑓2𝑖 , , 𝑓𝑛𝑖 }, mảnh 𝑓𝑣𝑖 = {Ki, 𝐴𝑖𝑣 , 𝑀𝑣𝑖 , Ii}, (v = 1, , n) , 𝐴𝑖𝑣 tập Ai, 𝑀𝑣𝑖 tập Mi Cũng CSDL quan hệ, phân mảnh dọc phải đảm bảo ba luật phân mảnh, cụ thể CSDL HĐT ba luật thể sau: - Tính đầy đủ (completeness): Mỗi thuộc tính phương thức lớp Ci phải tìm thấy mảnh 𝑓𝑗𝑖 - Tính tái cấu trúc (reconstruction): Có khả tái cấu trúc lại lớp Ci từ mảnh tương ứng phân chia Tính tách biệt (disjointness): Chỉ định danh phương thức truy cập định danh lặp lại mảnh, thuộc tính phương thức khác lớp Ci thuộc mảnh 𝑓j𝑖 Định nghĩa 2.3: Một phương án cấp phát cho lớp Ci định vị tập mảnh {𝑓1𝑖 , 𝑓2𝑖 , , 𝑓𝑛𝑖 } lớp Ci vào tập trạm S = {s1, s2, …, sk} mạng liên kết cho tổng kích thước 12 mảnh trạm không vượt kích thước trạm Nếu khả lưu trữ trạm không hạn chế bỏ qua tham số kích thước trạm Định nghĩa 2.4: Với phương thức 𝑚𝑗𝑖 thuộc tính 𝑎𝑙𝑖 lớp Ci, giá trị MAU(𝑚𝑗𝑖 , 𝑎𝑙𝑖 ) định nghĩa sau: MAU(𝑚𝑗𝑖 , 𝑎𝑙𝑖 ) 𝑚𝑗𝑖 sử dụng 𝑎𝑙𝑖 ={ ngược lại Thiết lập tất giá trị MAU(𝑚𝑗𝑖 , 𝑎𝑙𝑖 ) cho tất phương thức thuộc tính lớp Ci nhận ma trận phương thức sử dụng thuộc tính MAUi Định nghĩa 2.5: Với phương thức 𝑚𝑗𝑖 của lớp Ci phương thức 𝑚𝑙ℎ lớp Ch, giá trị MMU(𝑚𝑗𝑖 , 𝑚𝑙ℎ ) định nghĩa sau: MMU(𝑚𝑗𝑖 , 𝑚𝑙ℎ ) = { 𝑚𝑗𝑖 sử dụng 𝑚𝑙ℎ ngược lại 2.1.2 Thông tin ứng dụng Với tính đóng gói đối tượng, truy vấn ứng dụng truy cập đối tượng thông qua phương thức Định nghĩa 2.6: Với truy vấn 𝑞𝑗𝑖 truy cập vào lớp Ci phương thức 𝑚𝑙𝑖 lớp Ci, giá trị 𝑄𝑀𝑈(𝑞𝑗𝑖 , 𝑚𝑙𝑖 ) định nghĩa sau: 𝑄𝑀𝑈(𝑞𝑗𝑖 , 𝑚𝑙𝑖 ) = { 𝑞𝑗𝑖 sử dụng 𝑚𝑙𝑖 ngược lại Thiết lập tất giá trị 𝑄𝑀𝑈(𝑞𝑗𝑖 , 𝑚𝑙𝑖 ) cho tất truy vấn vào lớp Ci với phương thức lớp Ci nhận ma trận truy vấn sử dụng phương thức QMUi Định nghĩa 2.7: Với truy vấn 𝑞𝑗𝑖 truy cập vào lớp Ci trạm sk mạng kết nối, giá trị tần suất truy cập truy vấn vào trạm 𝑄𝑆𝐹(𝑞𝑗𝑖 , 𝑠𝑘 ) số lần truy cập truy vấn 𝑞𝑗𝑖 vào trạm sk Thiết lập tất giá trị 𝑄𝑆𝐹(𝑞𝑗𝑖 , 𝑠𝑘 ) cho tất truy vấn vào lớp Ci với tất trạm sk nhận ma trận tần suất truy cập truy vấn vào trạm QSFi 2.1.3 Thông tin mạng Ma trận chi phí giao tiếp trạm kí hiệu SSC (Site Site Cost) biểu diễn chi phí giao tiếp trạm 2.1.4 Bảng tóm tắt kí hiệu đầu vào Bảng 2.1: Tóm tắt kí hiệu sử dụng Kí hiệu Mô tả ý nghĩa Ci Lớp thứ i CSDL HĐT PT Ai Tập thuộc tính lớp Ci 13 a i j Thuộc tính thứ j lớp Ci Mi Tập phương thức lớp Ci m ij Phương thức thứ j lớp Ci Qi Tập truy vấn vào lớp Ci q ij Truy vấn thứ j vào lớp Ci S Tập trạm sk Trạm thứ k MAUi Ma trận biểu diễn sử dụng thuộc tính phương thức lớp Ci QMUi Ma trận biểu diễn sử dụng phương thức truy vấn lớp Ci QSFi Ma trận biểu diễn tần suất truy cập vào trạm truy vấn lớp Ci SSC Ma trận chi phí giao tiếp trạm Fi Tập mảnh lớp Ci f ji Mảnh thứ j lớp Ci MSizei Mảng kích thước phương thức lớp Ci MSitei Mảng chứa thông tin trạm phương thức (sau phân mảnh cấp phát) 2.2 Hàm mục tiêu phân mảnh cấp phát Mục tiêu phân phân mảnh cấp phát tối thiểu hóa chi phí xử lý truy vấn, chi phí bao gồm chi phí lưu trữ liệu, chi phí truyền liệu, chi phí đọc liệu Trong môi trường phân tán, chi phí truyền liệu chi phí quan trọng nhất, thuật toán đề xuất luận án tập trung vào việc giảm chi phí truyền liệu Tổng chi phí truyền liệu xác định sau: 𝑇𝐶 = ∑ ∑ ∑ 𝑄𝑀𝑈 𝑖 (𝑞𝑙𝑖 , 𝑚𝑗𝑖 ) ∗ 𝑆𝑆𝐶(𝑀𝑆𝑖𝑡𝑒(𝑚𝑗𝑖 ), 𝑠𝑘 ) ∗ 𝑀𝑆ize(𝑚𝑗𝑖 ) ∗ 𝑄𝑆𝐹 𝑖 (𝑞𝑙𝑖 , 𝑠𝑘 ) qil  Qi 𝑠𝑘  S 𝑚𝑗𝑖  𝑀𝑖 (2.1) Trong công thức 2.1 chi phí tính tổng chi phí thức tất truy vấn Với truy vấn tính chi phí thực truy vấn trạm, truy vấn có sử dụng phương thức lớp mà phương thức không trạm với truy vấn phải tính chi phí chuyển phương thức từ trạm định vị sang trạm mà truy vấn thực 2.3 Biến đổi sử dụng phương thức tần suất truy cập Trước hết phải biến đổi ma trận sử dụng phương thức ma trận tần suất truy cập trạm theo quan hệ CSDL HĐT quan hệ ảnh hưởng đến phân mảnh cấp phát Các mối quan hệ xem xét theo ba kiểu: quan hệ kế thừa, quan hệ bao gồm (thuộc tính phức), 14 phương thức phức Các thông tin truy vấn theo quan hệ bổ sung vào ma trận QMU QSF Thuật toán 2.1 - Modify_1(Ci) //Biến đổi QMUi QSFi theo quan hệ kế thừa Đầu vào: - CSDL gồm tập C lớp có lớp Ci cần phân mảnh Các ma trận QMU and QSF lớp Đầu ra: - QMUi QSFi sau biến đổi Các bước thực hiện: for (each Ch  C) if (Ch inherited from class Ci) then//Ch kế thừa Ci for (each q hk  Qh) //mỗi truy vấn lớp Ch h if ( q k uses methods m ij of class Ci) then begin h //Thêm dòng tương ứng q k vào QMUi QSFi; h AddRow( q k , QMUi, QSFi); h end {if q k } h end {for q k } end {for Ch} end {Thuật toán 2.1} Thuật toán 2.2: Biến đổi QMUi QSFi theo quan hệ bao gồm Thuật toán 2.3: Biến đổi QMUi QSFi theo phương thức phức tạp 2.4 Thuật toán AttrFrag phân mảnh dựa thuộc tính Phân mảnh đựa tương quan thuộc tính phương pháp kinh điển CSDL phân tán quan hệ Trong CSDL HĐT PT Ezeife đề nghị thuật toán phân mảnh dựa tương quan phương thức Theo thuật toán Ezeife có trường hơp liệu sử dụng cho phương thức phương thức không mảnh Điều dẫn đến việc thực phương thức phải có chi phí truyền liệu Do đề nghị thuật toán phân mảnh dựa thuộc tính, sau phân mảnh xong thuộc tính nhóm phương thức sử dụng thuộc tính nhóm với nhau, phương thức nhân vài mảnh thuộc tính mảnh sử dụng phương thức 2.4.1 Xây dựng ma trận truy vấn sử dụng thuộc tính Định nghĩa 2.8: Với truy vấn 𝑞𝑗𝑖 truy cập vào lớp Ci thuộc tính 𝑎𝑙𝑖 lớp Ci, giá trị 𝑄𝐴𝑈(𝑞𝑗𝑖 , 𝑎𝑙𝑖 ) định nghĩa sau: 𝑄𝐴𝑈(𝑞𝑗𝑖 , 𝑎𝑙𝑖 ) = { 𝑞𝑗𝑖 sử dụng 𝑎𝑙𝑖 ngược lại 15 Giá trị 𝑄𝐴𝑈 tính thông qua QMU MAU: Sau biến đổi ma trận truy vấn sử dụng phương thức (QMU) ma trận tần suất truy câp truy vấn vào trạm (QSF), nhân ma trận QMU với ma trận MAU ma trận truy vấn sử dụng thuộc tính QAU 2.4.2 Xây dựng ma trận tương quan thuộc tính Tương quan thuộc tính (Attribute Affinity) hai thuộc tính 𝑎𝑗𝑖 𝑎𝑙𝑖 lớp Ci tổng số tần suất truy cập tất truy vấn vào hai thuộc tính site: 𝐴𝐴(𝑎𝑗𝑖 , 𝑎𝑙𝑖 ) = ∑ 𝑖 ,𝑎 𝑖 )=1&𝑄𝐴𝑈(𝑞 𝑖 ,𝑎 𝑖 )=1 𝑚|𝑄𝐴𝑈(𝑞𝑚 𝑚 𝑙 𝑗 𝑖 𝑖 ∑ 𝑟𝑒𝑓(𝑞𝑚 , 𝑠𝑘 )𝑄𝑆𝐹(𝑞𝑚 , 𝑠𝑘 ) (2.2) 𝑘 Trong đó: 𝑖 𝑖  𝑟𝑒𝑓(𝑞𝑚 , 𝑠𝑘 ) số truy cập thuộc tính 𝑎𝑗𝑖 𝑎𝑙𝑖 cho truy vấn 𝑞𝑚 site sk 𝑖 𝑖  𝑄𝑆𝐹 (𝑞𝑚 , 𝑠𝑘 ) tần suất truy cập 𝑞𝑚 site sk Xây dựng tương quan thuộc tính tất cặp thuộc tính lớp Ci cho ta ma trận tương quan thuộc tính AA (Attributes Affinity matrix) Ma trận tương quan thuộc tính dùng cho thuật toán phân mảnh nói chung thuật toán phân mảnh dọc nói riêng 2.4.3 Sử dụng thuật toán BEA để phân mảnh Thuật toán BEA (Bond Energy Algorithm) sử dụng thuật toán phân mảnh dọc theo tương quan thuộc tính Thuật toán nhận đầu vào ma trận tương quan thuộc tính, hoán vị hàng cột sinh ma trận tương quan thuộc tính phân nhóm CA (Clustered Affinity matrix) Hoán vị thực cho số đo tương quan chung AM (global affinity measure) lớn Mục đích việc phân nhóm kết hợp giá trị gần lại với Sự phân đoạn thuộc tính dọc theo đường chéo ma trận CA 2.4.4 Bổ sung phương thức vào mảnh Sau thực phân hoạch thuộc tính theo thuật toán BEA, bổ sung thuộc tính định danh vào tất mảnh Tiếp theo dựa vào ma trận phương thức sử dụng thuộc tính MAU, bổ sung phương thức vào mảnh với thuộc tính mà sử dụng Như phương thức nhân nhiều mảnh, điều làm chi phí lưu trữ tăng lên giúp cho chi phí xử lý truy vấn giảm 2.5 Thuật toán FragAlloS phân mảnh đồng thời cấp phát Trong đa số hướng tiếp cận phân mảnh cấp phát lớp đối tượng, việc phân mảnh cấp phát thực hai giai đoạn riêng biệt, phân mảnh thực trước, sau định vị mảnh vào trạm Thông tin mạng dùng cấp phát mà không dùng phân mảnh Luận án đề nghị hướng tiếp cận phân mảnh cấp phát đồng thời, sử dụng thông tin mạng cho phân mảnh cấp phát để tăng tính hiệu việc phân mảnh cấp phát CSDL HĐT 16 2.5.1 Mô hình chi phí m ij Chi phí truy cập phương thức trạm sk tổng tần suất truy cập truy vấn m ij có sử dụng phương thức trạm sk, chi phí kí hiệu request thiết lập sau: request i (s k , m ij )   q il  Q i QSFi (q il , s k ) * QMUi (q il , m ij ) (2.7) Để thiết lập chi phí truy cập phương thức lớp Ci từ trạm xây dựng ma trận requesti, ma trận tích hai ma trận SQFi (là ma trận chuyển vị SQFi) QMUi i m Chi phí định vị phương thức j vào trạm sk chi phí truy cập vào phương thức m từ tất trạm sl ≠ sk, chi phí kí hiệu pay thiết lập sau: i j payi (s k , m ij )   request i (s k , m ij ) * SSC (s k , s l ) sl  S (2.8) Để thiết lập chi phí định vị phương thức lớp Ci vào trạm xây dựng ma trận payi, ma trận tích ma trận requesti SSC Dựa vào ma trận payi để xác định phương án cấp phát phương thức Ci Thuật m ij toán đềi nghịi thuật toán heuristic, mục tiêu thuật toán định vị vào trạm sk mà giá pay (s k , m j ) trị bé 2.5.2 Xây dựng thuật toán Thuật toán phân mảnh cấpi phát đề xuất theo hướng tiếp cận heuristic sau: Dựa vào ma m trận payi, định vị phương thức j vào trạm sk mà chi phí giao tiếp bé Thiết lập phương án định vị, sau gom cụm phương thức trạm vào mảnh Trong mảnh, với phương thức xác định thuộc tính mà phương thức sử dụng để đưa vào mảnh Thuật toán 2.6 - FragAlloS(Ci): Phân mảnh cấp phát Đầu vào: - CSDL gồm tập lớp C có lớp Ci cần phân mảnh - Các ma trận QMU and QSF, MAU lớp - Ma trận chi phí trạm SSC Đầu ra: - Phương án phân mảnh cấp phát cho lớp Ci Các bước thuật toán: //Bước 1: Biến đổi QMU QSF theo thuật toán biến đổi Modify_1(Ci); Modify_2(Ci); Modify_3(Ci); //Bước 2: Xây dựng ma trận requesti requesti = Nhan2matran(SQFi, QMUi); //Bước 3: Xây dựng ma trận payi payi = Nhan2matran(requesti, SSC); //Bước 4: Xác định phương án cấp phát dựa vào ma trận payi for (each 𝑚𝑗𝑖 ) begin 17 Chọn sk mà giá trị 𝑝𝑎𝑦 𝑖 (𝑠𝑘 , 𝑚𝑗𝑖 ) bé nhất; Cấp phát 𝑚𝑗𝑖 vào trạm sk; Thêm 𝑚𝑗𝑖 vào Fk; end {for 𝑚𝑗𝑖 } Thêm vào mảnh phương thức truy cập định danh //Bước 5: Dựa vào MAU thêm thuộc tính vào mảnh for (each 𝑚𝑗𝑖 ) for (each 𝑎𝑙𝑖 ) if (MAU(𝑚𝑗𝑖 ,𝑎𝑙𝑖 )=1) then begin Thêm 𝑎𝑙𝑖 vào mảnh có 𝑚𝑗𝑖 ; Định vị 𝑎𝑙𝑖 vào trạm mà 𝑚𝑗𝑖 định vị; end; {if} end; {for 𝑎𝑙𝑖 } end; {for 𝑚𝑗𝑖 } end; {Thuật toán 2.6} 2.5.3 Đánh giá thuật toán Thuật toán phân mảnh xác thoả mãn ba nguyên tắc phân mảnh Nếu lớp cần phân mảnh có tập thuộc tính A, tập phương thức M, tập truy vấn Q, mạng kết nối gồm tâp trạm S độ phức tạp thuật toán xác định (|C|*|M|*|Q|+|M|*|Q|*|S|) Hơn nữa, độ phức tạp thuật toán nhân hai ma trận N*N cải tiến đạt đến độ phức tạp N2.38 , độ phức tạp bước thuật toán 2.6 N2.38 với N giá trị lớn ba giá trị |M|, |Q| |S| Có thể liệt kê ưu điểm hướng tiếp cận heuristic thuật toán này: - Chỉ phương thức truy cập định danh lặp lại tất mảnh Các thông tin mạng sử dụng hai giai đoạn phân mảnh cấp phát Độ phức tạp thuật toán thấp Số lượng tối đa mảnh số lượng trạm 2.5.4 Thực nghiệm thuật toán FragAlloS OO7 Thuật toán sinh ngẫu nhiên liệu gồm có mã trận liệu SSC, QMU, QSF Mô liệu chạy thử với OO7 thực sau: - Sử dụng đối tượng Module trạm Lớp cần đánh giá mở rộng từ đối tượng AtomicPart sẵn có OO7 cách bổ sung phương thức thiết lập ma trận Với cách thiết kế lược đồ CSDL nói trên, toán đánh giá thực theo phương án phân mảnh sau: - Phương án 1: Phương án phân mảnh cấp phát sinh theo thuật toán FragAlloS Phương án 2: Cấp phát tất phương thức mi vào trạm s1 (hoặc s2, s3, s4) Phương án 3: Cấp phát ngẫu nhiên 18 Chi phí phương án biểu diễn theo biểu đồ Hình 2.1, kết thử nghiệm cho thấy phương án sinh thuật toán FragAlloS (phương án 1) có chi phí thấp 10000000,0 9000000,0 8000000,0 7000000,0 6000000,0 5000000,0 4000000,0 3000000,0 2000000,0 1000000,0 ,0 Phương án Phương án Phương án Phương án Phương án Phương án 2/s1 2/s2 2/s3 2/s4 Hình 2.1: Biểu đồ so sánh chi phí phương án 2.6 So sánh thuật toán So sánh độ phức tạp: Thuật toán FragAlloS thực cấp phát phân mảnh với độ phức tạp tương đương thuật toán Ezeife mà Ezeife thực giai đoạn phân mảnh Cài đặt thử nghiệm: - Cài đặt thuật toán đầu Lấy kết phân mảnh AttrFrag thuật toán Ezeife kiểm tra tất phương án cấp phát so sánh với phương án FragAlloS - Sinh ngẫu nhiên liệu QSF, QMU, MAU, SSC, kích thước phương thức thuộc tính Kết quả: o AttrFrag Ezeife: 20% liệu cho kết thuật toán AttrFrag có chi phí nhỏ Ezeife 80% liệu cho kết thuật toán AttrFrag có chi phí Ezeife o FragAlloS Ezeife: 70% liệu cho kết thuật toán FragAlloS có chi phí nhỏ Ezeife 30% liệu cho kết thuật toán FragAlloS có chi phí Ezeife 2.7 Kết luận chương Phân mảnh cấp phát kỹ thuật thiết kế CSDL mức logic nhằm giảm bớt truy xuất không cần thiết đến liệu, cho phép thực song song truy vấn mảnh, nhờ hiệu hệ thống cải thiện Trong CSDL HĐT PT có hai kiểu phân mảnh phân mảnh ngang phân mảnh dọc Tuy nhiên, mô hình CSDL hướng đối tượng có đặc trưng riêng nên để áp dụng phương pháp phân mảnh từ mô hình quan hệ sang mô hình đối tượng phải biến đổi tham số đầu vào theo cấu trúc lớp mối quan hệ lớp CSDL HĐT Luận án đề xuất thuật toán AttrFrag phân mảnh dựa tương quan thuộc tính, thuật toán có hiệu tương đương thuật toán phân mảnh dựa tương quan phương thức Ezeife Thuật toán đề xuất chương thuật toán heuristic FragAlloS, thuật toán FragAlloS thực phân mảnh cấp phát đồng thời, thuật toán FragAlloS đánh giá tốt độ phức tạp kết thực nghiệm 19 CHƯƠNG - TỐI ƯU HÓA BIỂU THỨC ĐƯỜNG DẪN TRONG CSDL HĐT PT Để hạn chế việc truyền liệu đề xuất thuật toán BloomOpt để lọc liệu không cần thiết Tiếp đến đề xuất thuật toán quy hoạch động ExpPathOpt để tối ưu hóa truy vấn có biểu thức truy vấn kết hợp với qua toán tử AND Thuật toán ExpPathOpt xây dựng phương án tối ưu từ phương án tối ưu truy vấn con, tương ứng với việc tách đồ thị truy vấn thành đồ thị Các kết trình bày báo (2) (5) 3.1 Tối ưu hóa truyền liệu biểu thức đường dẫn - Thuật toán BloomOpt 3.1.1 Truy vấn có biểu thức đường dẫn Khi thực truy vấn CSDL HĐT, lớp có thuộc tính phức tạp dẫn dắt truy vấn tới đối tượng lồng theo biểu thức đường dẫn Giả sử truy vấn liệt kê họ tên cán nghiên cứu thành phố Hà nội viết dạng: SELECT c.ten FROM CanBoNghienCuu as c WHERE c.coQuan.diaChi.thanhPho =”Hà nội” c.coQuan.diaChi.thanhPho biểu thức đường dẫn hay gọi kết nối ẩn Mỗi đối tượng lớp có định danh (OID) hệ thống khởi tạo, kết nối ẩn thực thông qua định danh 3.1.2 Bộ lọc Bloom Bộ lọc Bloom cấu trúc liệu xác suất để kiểm tra xem phần tử có nằm tập hợp hay không Cấu trúc lọc Bloom bao gồm: - Một dãy gồm n bit, khởi tạo tất giá trị Một tập hàm băm h1, h2, hk Mỗi hàm băm ánh xạ giá trị khóa vào giá trị khoảng từ đến n, tương ứng bit lọc Một tập S gồm m giá trị khóa Với giá trị khóa k S: băm theo hàm băm, hàm băm thứ i có giá trị hi(k), thiết lập bit thứ hi(k) lọc Bloom thành giá trị Chức của bô ̣ lo ̣c Bloom là xác đinh ̣ mô ̣t phầ n tử x có thuô ̣c tâ ̣p S hay không Nó đươ ̣c dùng là bước tiề n xử lý của quá trình tìm kiế m Nế u sau lo ̣c qua bô ̣ lo ̣c Bloom trả về kế t quả “không” thì không cầ n thực hiê ̣n viê ̣c tìm kiế m nữa, nế u trả về kế t quả “có thể có” thì thực hiê ̣n tìm kiế m Với lọc Bloom khả xảy lỗi false negative mà gặp phải lỗi false positive với xác suất nhỏ Xác xuất false positive giảm xuống chọn giá trị n, k, 𝑛 m thích hợp Trong trường hợp tốt nhất, giá trị k tối ưu 𝑘 = 𝑙𝑛2 , xác suất false 𝑚 𝑚𝑙𝑛𝑝 positive cực tiểu hóa theo k 𝑝 = 2−𝑘 = 2−𝑛𝑙𝑛2/𝑚 => 𝑛 = − (𝑙𝑛2) 20 3.1.3 Thuật toán tối ưu hóa biểu thức đường dẫn 3.1.3.1 Sử dụng lọc Bloom để giảm chi phí giao tiếp Giả sử lớp Ci có thuộc tính ak đối tượng lớp Cj, lớp Ci đặt trạm S, lớp Cj đặt trạm R Giả sử có truy vấn chứa biểu thức đường dẫn từ lớp Ci sang lớp Cj Ý tưởng thay truyền toàn đối tượng Cj từ S đến R đề kết hợp với Ci (hoặc ngược lại), lọc số đối tượng Cj mà cần thiết cho việc kết nối với Ci Cơ chế lọc thực lọc Bloom Trường hợp 1: Truy vấn trạm S - Xây dựng lọc Bloom cho tất đối tượng thuộc lớp Ci theo giá trị thuộc tính ak, gọi BF(Ci) - Gửi BF(Ci) đến R (trạm chứa Cj), BF(Ci) sử dụng để lọc đối tượng Cj - Gửi đối tượng Cj mà thỏa mãn điều kiện lọc đến S - Thực việc truy vấn từ đối tượng Ci Cj S Trường hợp 2: Truy vấn trạm R - Xây dựng lọc Bloom cho tất đối tượng thuộc lớp Cj theo giá trị thuộc tính định danh, gọi BF(Cj) - Gửi BF(Cj) đến S (trạm chứa Ci), BF(Cj) sử dụng để lọc đối tượng Ci - Gửi đối tượng Ci mà thỏa mãn điều kiện lọc đến R - Thực việc truy vấn từ đối tượng Ci Cj R Trường hợp 3: Truy vấn trạm không chứa Ci Cj, giả sử trạm P (P ≠ S, P ≠ R) - So sánh chi phí để truyền liệu trạm chọn trường hợp tốt để thực hiện, sử dụng lọc Bloom để giảm truyền liệu 3.1.3.2 Thảo luận tham số 𝑚𝑙𝑛𝑝 Trong phần trước phân tích sai số có công thức 𝑛 = − Khi chọn p (𝑙𝑛2)2 sai số cố định có giá trị đủ bé kích thước lọc Bloom n tuyến tính với số lượng giá trị khóa, trường hợp số lượng đối tượng lớp cần xây dựng lọc Bloom (Ci Cj) Bộ lọc Bloom xây dựng lần cho lớp sử dụng nhiều lần có nhiều kết nối với lớp khác 3.2 Tối ưu hóa biểu thức đường dẫn – Thuật toán PathExpOt 3.2.1 Đồ thị biểu diễn truy vấn dạng biểu thức đường dẫn Giả sử truy vấn liệt kê mã số tên đề tài mà chủ nhiệm đề tài cán quan thuộc thành phố Hà nội có viết sách thuộc thể loại CNTT Truy vấn viết dạng: SELECT d.maSo, d.ten FROM DeTai as d WHERE d.chuNhiem.coQuan.diaChi.thanhPho=”Hà nội” AND d.chuNhiem.tacGiaSach.theLoai.ten=”CNTT” 21 Truy vấn biểu diễn dạng đồ thị có hướng gọi đồ thị truy vấn Ví dụ đồ thị Hình 3.5 DeTai (1) chuNhiem CanBo (2) ToChuc (3) coQuan tacGiaSach Sach (4) diaChi theLoai DiaChi (1) LoaiSach (4) Hình 3.5 Đồ thị truy vấn 3.2.2 Thuật toán tối ưu hóa 3.2.2.1 Mô hình tối ưu hoá truy vấn Thiết kế tối ưu hoá chia thành ba thành phần: - Không gian thực thi tập hợp tất kế hoạch thực thi Mô hình chi phí dự đoán chi phí kế hoạch thực thi Chiến lược tìm kiếm để đạt kế hoạch có chi phí tối thiểu Chi phí cho phép nối tính theo thuật toán nối với lọc Bloom Chiến lược tìm kiếm sử dụng báo kỹ thuật lập trình động 3.2.2.2 Tách truy vấn thành cảm sinh Nguyên lí tối ưu hóa đặt vấn đề kế hoạch thực thi tối ưu cho truy vấn tạo từ kế hoạch thưc thi tối ưu cho truy vấn Gọi truy vấn ban đầu truy vấn n-lớp, truy vấn i-lớp truy vấn truy vấn ban đầu Để tạo kế hoạch tối ưu cho truy vấn i-lớp lập trình động, kế hoạch tối ưu hóa cho truy vấn từ 1-lớp đến (i-1)-lớp phải tạo trước Một truy vấn i-lớp tách thành cặp truy vấn r-lớp (i-r)-lớp Đồ thị tương ứng với truy vấn i-lớp bị chia thành hai đồ thị liên thông có r đỉnh (i-r) đỉnh Trong cây, việc loại bỏ cạnh sinh hai đồ thị cây, hai cảm sinh ban đầu Cạnh loại bỏ bao hàm phép nối ẩn cạnh đồ thị truy vấn mang nghĩa tham chiếu đối tượng Kết truy vấn i-lớp sinh thực phép nối ẩn kết truy vấn r-lớp (i-r)-lớp Trước thực phép nối ẩn, việc truyền liệu phải thực kết truy vấn không trạm Do đó, chi phí môt truy vấn i-lớp tính tổng chi phí truy vấn r-lớp (i-r)-lớp, chi phí thực phép nối ẩn kết truy vấn con, chi phí cho việc truyền liệu cần Thuật toán tối ưu hoá sử dụng cảm sinh truy vấn làm đầu vào Do việc liệt kê cảm sinh Các cảm sinh sinh kí hiệu Ti, j i số đỉnh cây, j số thứ tự cảm sinh i đỉnh 3.2.2.3 Thuật toán tối ưu hóa Thuật toán bao gồm ba bước 22 - Khởi tạo: Rút gọn lớp (hoặc mảnh lớp) phép chiếu thuộc tính cần để lại (OID, thuộc tính nối, thuôc tính cần hiển thị sau truy vấn) - Tìm phương án tối ưu cho cảm sinh, từ có đỉnh đến có n đỉnh - Thực thi phương án tối ưu tìm Thuật toán tìm phương án tối ưu - Bước 1: Khởi tạo chi phí có đỉnh, chi phí đỉnh trạm chi phí truyền từ trạm đến trạm - Bước 2: Xây dựng phương án tối ưu cho từ đỉnh o Bước 2.1: Tìm phương án tối ưu thực Ti,j qua phép nối (Find_JoinPlan) Với Ti, j duyệt tất cách tách thành cảm sinh Tr ,p Ti-r, q, tìm cách tách mà chi phí Ti, j nhỏ Chi phí Ti, j trạm t tính tổng chi phí Tr ,p Ti-r, q trạm t chi phí nối trạm t Lưu lại phương án thực tối ưu o Bước 2.2: Tìm phương án tối ưu thực Ti, j qua phép truyền (Find_TransPlan) Chi phí Ti, j trạm t tính lại chi phí lớn tổng chi phí Ti, j trạm x chi phí truyền Ti, j từ trạm x tới trạm t Lưu lại phương án thực tối ưu Thuật toán 3.5 PathExpOpt Đầu vào: - G =(V, E); V={F1, F2,…, Fn}; fragSize: Mảng lưu kích thước mảnh fragSite: Mảng lưu trạm mà mảnh định vị transCost: Mảng lưu chi phí trạm T: Các cảm sinh truy vấn ban đầu treeSize: Mảng kích thước con, tính sinh Đầu ra: Optimal Solution (result) Các bước thuật toán: //Bước 1: Khởi tạo chi phí đỉnh for (u=1; u

Ngày đăng: 04/05/2017, 09:43

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan