Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 60 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
60
Dung lượng
885,28 KB
Nội dung
ĐẠI HỌC THÁI NGUYÊN KHOA CÔNG NGHỆ THÔNG TIN Phạm Thị Huệ TỐI ƯU HÓA TRUY VẤN ĐỐI VỚI CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Số hóa Trung tâm Học liệu – Đại học Thái Nguyên Thái Nguyên - 2010 http://www.lrc-tnu.edu.vn ĐẠI HỌC THÁI NGUYÊN KHOA CÔNG NGHỆ THƠNG TIN Phạm Thị Huệ TỐI ƯU HĨA TRUY VẤN ĐỐI VỚI CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG Chuyên ngành: Khoa học máy tính Mã số: 604801 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS Đoàn Văn Ban Thái Nguyên - 2010 Số hóa Trung tâm Học liệu – Đại học Thái Ngun http://www.lrc-tnu.edu.vn LỜI NĨI ĐẦU Hiện cơng nghệ thông tin trở thành lĩnh vực thiếu cho sống người Từ đời công nghệ thông tin không ngừng phát triển, bước thể vai ngành nghề: Y tế, quân sự, giáo dục, văn hoá … Cơ sở liệu lĩnh vực quan trọng Cơng nghệ thơng tin Việc tìm kiếm xây dựng phần mềm ứng dụng phục vụ nhu cầu xã hội nhà chuyên môn hướng tới mục đích đáp ứng được tốn phức tạp CSDL cho WebCSDL multimedia, CSDL phân tán… đồng thời tốc độ xử lý phải nhanh xác Xuất phát từ nhu cầu đó, nhà nghiên cứu khơng ngừng tìm tịi, cải tiến đưa mơ hình liệu với khả ứng dụng cho đối tượng phức, khả mở rộng kế thừa Mơ hình CSDL hướng đối tượng, với cách tiếp cận giải pháp tốt cho CSDL ứng dụng phức tạp Trong năm gần đây, việc phát triển ngôn ngữ CSDL hệ thống CSDL hướng đối tượng xem hướng nghiên cứu quan trọng Các ngơn ngữ CSDL mở rộng theo hướng tích hợp với ngơn ngữ lập trình hướng đối tượng, điều tạo điều kiện cho hệ thống tăng khả tính tốn phức tạp xây dựng giao diện lập trình hướng đối tượng Một hướng nghiên cứu quan trọng đề cập hệ thống CSDL hướng đối tượng tối ưu hoá truy vấn hướng đối tượng Với truy vấn tồn nhiều phương án mà hệ thống CSDL cho phép xử lý đưa kết theo yêu cầu Việc tối ưu hoá truy vấn cho lựa chọn phương án có tổng thời gian thực truy vấn hiệu Hiện có nhiều kết nghiên cứu phát triển ngôn ngữ hướng đối Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn tượng biên dịch truy vấn tương đương từ truy vấn hướng đối tượng sang quy vấn quan hệ Xuất phát từ nhu cầu cấp thiết việc nghiên, mở rộng ngôn ngữ hướng đối tượng, biên dịch truy vấn tối ưu hoá truy vấn quan hệ kết nghiên cứu nhiều tác giả Đoàn Văn Ban, Hoàng Bảo Hùng, Lê Mạnh Thạnh… chọn đề tài luận văn: “Tối ưu hoá truy vấn CSDL hướng đối tượng” Nội dung luận văn bao gồm phần mở đầu, kết luận bốn chương Chương trình bày kiến thức tảng mơ hình liệu hướng đối tượng định danh đối tượng, kiểu, lớp, lược đồ mối quan hệ kế thừa phương thức Chương Tìm hiểu Ngôn ngữ truy vấn OQL đại số đối tượng tương ứng chọn làm sở cho nghiên cứu, mở rộng thuật toán tối ưu hoá truy vấn đối tượng công cụ minh hoạ cho thuật toán tối ưu hoá truy vấn đề xuất chương Chương giới thiệu trình bày khái niệm siêu đồ thị kết nối đối tượng Sau sử dụng ký pháp siêu đồ thị để biểu diễn truy vấn OQL Xây dựng giải thuật khởi tạo siêu đồ thị trường hợp truy vấn đối tượng đơn lồng Đưa giải thuật ước lượng siêu cạnh cho trường hợp tách biệt hay liên thông siêu đồ thị hợp thành siêu đồ thị mà biểu diễn cho truy vấn đối tượng lồng Chương cài đăt mô thuật toán chuyển đổi lược đồ đối tượng sang lược đồ quan hệ nhúng Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Chƣơng 1: CÁC KHÁI NIỆM CƠ BẢN VỀ CƠ SỞ DỮ LIỆU HƢỚNG ĐỐI TƢỢNG 1.1 Đối tƣợng, lớp định danh đối tƣợng 1.1.1 Đối tƣợng định danh đối tƣợng Khái niệm mơ hình hướng đối tượng (HĐT) đối tượng Đối tượng [1], [2] khái niệm, trừu tượng hoá, hay vật có nghĩa tốn khảo sát Đó mục mà ta nghiên cứu, thảo luận chúng Đối tượng thực thể hệ thống, CSDL xác định thông qua định danh chúng Thông thường đối tượng mô tả danh từ riêng tham chiếu tới mơ tả tốn hay thảo luận với người sử dụng Có đối tượng thực thể có giới thực người, vật cụ thể, khái niệm công thức, hay khái niệm trừu tượng, v.v… Có đối tượng bổ sung vào hệ thống với lý phục vụ cho việc cài đặt khơng có thực tế Mỗi đối tượng biểu thị ba (oid, class_name, value) Trong oid giá trị thuộc tính định danh OID đối tượng class_name tên lớp chứa đối tượng value giá trị đối tượng 1.1.2 Lớp đối tƣợng Đối tượng thể hiện, đại biểu lớp Lớp mơ tả nhóm đối tượng có tính chất (thuộc tính) giống nhau, có chung hành vi ứng xử (thao tác gần nhau) có mối liên quan với đối tượng khác có chung ngữ nghĩa hệ thống Lớp thường xuất dạng danh từ chung tài liệu mơ tả tốn hay thảo luận với người sử dụng Cũng đối tượng, lớp Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn nhóm thực thể có giới thực, có lớp khái niệm trừu tượng có lớp đưa thiết kế phục vụ cho vài đặt hệ thống vv… Một cách hình thức, ta có số ký hiệu qui ước sau: Alloid: Tập tất định danh đối tượng C: Tập tên lớp A: Tập tên thuộc tính Interger, Real, Boolean, String: Tập kiểu nguyên tố (kiểu sở) có miền trị tương ứng D1, D2, D3, D4 D: Tập giá trị nguyên tố D= D1 D2 D3 D4 0: Tập đối tượng 1.1.3 Giá trị kiểu Các giá trị tập đối tượng (0) định nghĩa sau: Một phần tử thuộc D thuộc Alloid giá trị gọi giá trị nguyên tố Nếu v1, v2, …, giá trị a1, a2, …, an tên thuộc tính, [a1: v1, a2 : v2, …, an : vn] giá trị gọi giá trị Nếu v1, v2,…, giá trị phân biệt {v1, v2, …, vn} giá trị gọi giá trị tập Khái niệm kiểu tập lớp (C) định nghĩa sau: Interger, Real, String, Boolean kiểu gọi kiểu nguyên tố Các lớp C kiểu Nếu T1, T2,…, Tn kiểu a1, a2, , an tên thuộc tính phân biệt C [a1: T1, a2: T2, , an: Tn ] kiểu cịn gọi kiểu Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Nếu T biểu thức kiểu, {T} Set(T) kiểu gọi kiểu tập Formatted: cap2, Left, Line spacing: single, No bullets or numbering 1.1.2 1.1.4 Thuộc tính thao tác phƣơng thức Mỗi thuộc tính thuộc tính đơn trị thuộc tính đa trị Trái với thuộc tính đơn trị, thể thuộc tính đa trị tương ứng với tập giá trị Ví dụ.1.1: Về thuộc tính đơn đa trị Class HoSo Type tuple (mahs: int, hoten: char, thanhpho: char, ngaysinh: tuple(ngay, thang, nam)) Class NhanVien inherits HoSo Type tuple (manv: int, luong: float, thuong: float, tenphong: Phong) Class Phong Type tuple(maphong: int, tenphong: char, diadiem: char) NhanVien lớp kế thừa từ lớp HoSo, có thuộc tính tenphong thuộc tính tham chiếu đối tượng đến lớp Phong, ngaysinh thuộc tính đa trị, thuộc tính cịn lại đơn trị Set (tập hợp): Các phần tử khơng có thứ tự, không lặp, không cố định số phần tử List (danh sách): Các phần tử có thứ tự, có lặp, khơng cố định số phần tử (i) Array (mảng): Các phần tử có thứ tự, có lặp, cố định số phần tử Formatted: Bulleted + Level: + Aligned at: 0.25" + Tab after: 0.5" + Indent at: 0.5" tối đa Một thuộc tính có lớp cịn thuộc tính phức hợp, thuộc tính xây dựng tập thuộc tính khác Việc khai báo thuộc tính phức hợp thực tốn tử xây dựng tuple (bộ) Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Formatted: Indent: First line: 0.5" Thao tác (operation) hàm hay thủ tục áp dụng (gọi hàm) cho đối tượng lớp Khi nói tới thao tác ngầm định nói tới đối tượng đích để thực thao tác Ví dụ, thao tác (hàm) hienthi() lớp MonHoc gọi để hiển thị sinh viên học mơn học cụ thể Lập trình hƣớng đối tƣợng chẳng hạn Một phương thức cách thức cài đặt thao tác lớp Một số thao tác đa xạ, nạp chồng, nghĩa áp dụng cho nhiều lớp khác với nội dung thực khác nhau, tên gọi Ví dụ lớp ThietBi có hàm tinhgia() Hàm nạp chồng (đa xạ) có nhiều phương thức (cơng thức) tính giá bán khác tuỳ thuộc loại thiết bị Tất phương thức thực nhiệm vụ tinhgia(), cài đặt với nội dung (các đoạn chương trình) khác Hệ thống hướng đối tượng tự động chọn phương thức tương ứng với ngữ cảnh đối tượng để thực Việc khai báo toán tử hay phương thức sử dụng từ khoá operations đối tượng thuộc lớp đối tượng nhằm phản ánh hành vi thực đối tượng thuộc lớp Mỗi phương thức nhằm đặc tả tên phương thức, tham số kèm kiểu liệu chúng, kiểu phương thức phần thân phần chứa mã lệnh phương thức Dưới mẫu đặc tả cho lớp thường xây dựng sau: Class Properties {Các thuộc tính} Operations {Các phương thức} End < class name> Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Các đối tượng đóng gói Có nghĩa cấu trúc bên Formatted: Indent: First line: 0.5" đối tượng che giấu, người dùng biết phương thức thực đối tượng Các thao tác giá trị đối tượng thực thông qua phương thức định nghĩa đối tượng Đây tính đóng gói thơng tin mơ hình liệu hướng đối tượng Việc đóng gói thơng tin độc lập với liệu vật lý Các phương thức gọi thông điệp Một thông điệp lời gọi đến phương thức đó, tham số đích phân biệt có cách xử lý riêng cú pháp 1.2 1.2 Các mối quan hệ lớp Formatted: cap1, Left, Line spacing: single, No bullets or numbering Formatted: cap2, Left, Line spacing: single 1.2.1 Sự phân cấp lớp Các lớp mô hình hướng đối tượng tổ chức theo phân cấp lớp (Class hierarchy) Ta nói lớp C2 tập thuộc tính phương thức tập tập thuộc tính phương thức C2 đồng thời tập đối tượng thuộc C2 tập tập đối tượng thuộc C1 Điều có nghĩa lớp kế thừa tất đặc tính cho phép lớp cha, ngồi lớp cịn bổ sung đặc tính khác, bổ sung hàm hay viết để số hàm kế thừa Nguyên tắc tạo thuận lợi việc tái sử dụng thuộc tính phương thức lớp cha bên lớp con, cho phép tạo hệ thống hiệu tin cậy Formatted: cap2, Left, Line spacing: single, No bullets or numbering 1.2.2 1.2.2 Sự kế thừa Trong mơ hình hệ thống hướng đối tượng, số hệ thống cho phép lớp có tối đa lớp cha, hệ thống khác cho phép lớp có nhiều lớp cha Một lớp kế thừa thuộc tính phương thức từ lớp cho gọi kế thừa đơn, ngược lại Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn lớp kế thừa thuộc tính phương thức từ nhiều lớp cha gọi kế thừa bội Việc khai báo mối quan hệ kế thừa lớp lớp cha thực cách sử dụng từ khoá inherits kèm tên lớp cha định nghĩa lớp Ví dụ 1.2 Để định nghĩa lớp GiaoVien lớp lớp Nguoi, theo cách này, ta cần khai báo thuộc tính phương thức bổ sung cho lớp GiaoVien Class GiaoVien Inherits: Nguoi Properties Luong: Real ; Tdo_Ngoaingu: Char ; Chunhiem: String ; Giang: String ; Operations ………… End GiaoVien ; Thông thường, hệ thống quy định lớp lớp cho xem lớp lớp Object định nghĩa hệ thống Quan hệ kế thừa tồn số vấn đề sau: Vấn đề thứ tồn xung đột tên lớp lớp cha nó, lớp cha lớp Nếu tên thuộc tính hay phương thức xung đột lớp lớp cha tên dùng lớp ưu tiên trước, tức thuộc tính phương thức lớp cha không kế thừa Đối với trường hợp xung đột Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn Formatted: Indent: First line: 0.5" 44 Với bước thực câu truy vấn bảng 3.1, thấy phép chọn k.diadiem = “ĐHKH” làm nhỏ đối tượng KHOA H tạo bước khởi đầu cho O(KHOA):= (k.diadiem = “ĐHKH”)(KHOA) Các nút s.hoten s.gvhd nút đặc trưng H = {SINH_VIEN, GIANG_VIEN, SINH_VIEN} nhờ mệnh đề select, trình bày Vì vậy, giai đoạn 2, loại bỏ siêu cạnh KHOA trước tiên, tạo siêu đồ thị G = {SINH_VIEN, GIANG_VIEN} Với lý ưu tiên chọn quan hệ nhỏ pha 2b Các nút đặc trưng cho G s.hotens.gvhd k.tenkhoa đề cập bước (2) tạo từ trường hợp ước lượng siêu cạnh đối tượng thuật toán 3.3 kết O(GIANG_VIEN) xem quan hệ nhỏ G Bây ưu tiên loại bỏ đối tượng GIANG_VIEN khỏi G, cho siêu đồ thị G1 có siêu cạnh SINH_VIEN nút đặc trưng s.hoten s.gvhd Trong trường hợp này, đối tượng G1 SINH_VIEN, dùng trường hợp đặc biệt thuật tốn 3.3, phép nối đối tượng giao lược bỏ bước (3) tạo lại bước (4): Lopdanxuat(G) = Lopdanxuat(SINH_VIEN, GIANG_VIEN) = = (s.hoten, s.gvhd, k.tenkh)(v(tuple_cat(SINH_VIENO(GIANG_VIEN)))) Tổng quát, hoàn tất thủ tục ước lượng G cách tạo câu lệnh: Lopdanxuat(H) = Lopdanxuat(SINH_VIEN, GIANG_VIEN, KHOA) = = (s.hoten, s.gvhd)(tuple_cat(lopdanxuat(G), O(KHOA))) Tuy nhiên ngoại lệ pha xảy ra, lược bỏ O(KHOA) khỏi phép nối khơng có nút đặc trưng (k.tenkh đặc trưng G) Trong giai đoạn 3, chiếu bỏ thuộc tính khơng cần thiết tổ hợp lại thành phép chiếu Vậy ta xét lại ví dụ 3.4 trường Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 45 hợp thực tối ưu hoá câu truy vấn phương pháp siêu đồ thị có trật tự bước ước lượng siêu cạnh sau: Bảng 3.2 Kết ƣớc lƣợng áp dụng thuật toán 3.4 ví dụ 3.4 Biểu thức đại số đối tƣợng Bƣớc (1) O(KHOA) = k.diadiem = “ĐHKH”(KHOA) (2) O(GIANG_VIEN) = Tuple_cat(GIANG_VIEN(GIANG_VIENO(KHOA))(V(O(KHOA)))) (3) Lopdanxuat(SINH_VIENGIANG_VIEN) = Tuple_cat(O(GIANG_VIEN)O(SINH_VIEN)) (4) Lopdanxuat(SINH_VIENGIANG_VIENKHOA) = (s.hoten,s.gvhd)(v(Lopdanxuat(SINH_VIEN,GIAN_VIEN,KHOA))) Quan sát Bảng 3.1 Bảng 3.2, nhận thấy số bước ước lượng Bảng 3.2 hai bước so với Bảng 3.1, cụ thể Bảng 3.2 giảm hai phép nối: phép nối đối tượng giao bước (3) Bảng 3.1 phép nối bước (5) Bảng 3.1 Tương tự ta xét ví dụ 3.5 ví dụ 3.6 sau: Xét ví dụ 3.5: Trong trường hợp chưa thực tối ưu hoá câu truy vấn phương pháp siêu đồ thị, với lược đồ đối tượng S = (SINH_VIENSINH_VIEN), ta có trật tự bước ước lượng siêu cạnh sau: Bảng 3.3 Kết ƣớc lƣợng siêu cạnh ví dụ 3.5 Biểu thức đại số đối tƣợng Bƣớc (1) O(SINH_VIEN) = (s.tenkhoa = “CNTT”)(SINH_VIEN) (2) O(SINH_VIEN) = Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 46 Tuple_cat(SINH_VIEN, (SINH_VIENO(SINH_VIEN))(V(O(SINH_VIEN)))) Lopdanxuat(SINH_VIEN) = (3) (v.tenkhoa,s.hoten,s.dtb)(v(tuple_cat(O(SINH_VIEN),O(SINH_VIEN))) Lopdanxuat(SINH_VIENSINH_VIEN ) = (4) (s.hoten,s.dtb)(v((s.dtb=max(v.dtb)) (SINH_VIEN))) Và trường hợp thực tối ưu hoá câu truy vấn phương pháp siêu đồ thịta có trật tự bước lượng siêu cạnh sau: Bảng 3.4 kết ƣớc lƣợng áp dụng thuật tốn 3.4 ví dụ 3.5 Biểu thức đại số đối tƣợng Bƣớc (1) O(SINH_VIEN) = (s.tenkhoa = “CNTT”)(SINH_VIEN) (2) Lopdanxuat(SINH_VIENSINH_VIEN) = = (s.hoten,s.dtb)(v((s.dtb=max(v.dtb)) (tuple_cat(O(SINH_VIEN), (O(SINH_VIEN) SINH_VIEN)(V(SINH_VIEN)))))) Phân tích tương tự, nhận thấy số bước ước lượng Bảng 3.4 hai bước so với Bảng 3.3, cụ thể Bảng 3.4 giảm hai phép nối bước (2) bước (3) Xét ví dụ 3.6: Trong trường hợp chưa thực tối ưu hoá câu truy vấn phương pháp siêu đồ thị, với lược đồ đối tượng S = (GIANG_VIEN, KHOA) ta có trật tự bước ước lượng siêu cạnh sau: Bảng 3.5 Kết ƣớc lƣợng siêu cạnh ví dụ 3.6 Bƣớc Biểu thức đại số đối tƣợng (1) O(GIANG_VIEN) = (g.chucvu = “Phó trưởng khoa”)(GIANG_VIEN) (2) Lopdanxuat(GIANG_VIEN) = (g.luong >=3.2)(O(GIANG_VIEN)) Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 47 (3) O(KHOA) = (k.tenkhoa)((k.ngansach >250)(KHOA) (4) Lopdanxuat(GIANG_VIENKHOA) = tuple_cat(O(KHOA), Lopdanxuat(GIANG_VIEN)) (5) Lopdanxuat(GIANG_VIENKHOA) = = (g.hotenk.tenkhoa)((g.tenkhoa IS IN k.tenkhoa)(Lopdanxuat(GIANG_VIEN, KHOA))) (6) Lopdanxuat(GIANG_VIEN, KHOA) = = (g.hoten)Lopdanxuat(GIANG_VIEN, KHOA)) Và trường hợp thực tối ưu hoá câu truy vấn phương pháp siêu đồ thị, ta có trật tự bước ước lượng siêu cạnh sau: Bảng 3.6 kết ƣớc lƣợng áp dụng thuật tốn 3.4 ví dụ 3.6 Biểu thức đại số đối tượng Bước (1) O(GIANG_VIEN) = (g.chucvu = “Phó trưởng khoa”)(GIANG_VIEN) (2) Lopdanxuat(GIANG_VIEN) = (g.luong>=3.2)(O(GIANG_VIEN)) (3) O(KHOA) = (k.tenkhoa)(v((k.ngansach >250)(KHOA))) (4) Lopdanxuat(GIANG_VIENKHOA) = (g.hoten)(v((g.tenkhoa IS IN k.tenkhoa)(tuple_cat(Lopdanxuat(GIANG_VIEN), O(KHOA)))) Tương tự, Bảng 3.6 giảm hai bước thực so với Bảng 3.5 3.3 Kết luận chƣơng Chúng ta tập trung nghiên cứu phương pháp biểu diễn câu truy vấn lồng CSDL hướng đối tượng (với ngôn ngữ truy vấn OQL) siêu đồ thị kết nối mở rộng giải thuật ước lượng siêu cạnh việc rút gọn siêu Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 48 đồ thị nhằm xác định lớp kết công việc mà truy vấn tối ưu phải thực Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 49 Chƣơng 4: CHƢƠNG TRÌNH MƠ PHỎNG Chương trình viết ngơn ngữ lập trình C# Dựa hỗ trợ đối tượng ngơn ngữ lớp, thuộc tính phức, hàm, đối tượng, kế thừa Các thao tác chương trình truy vấn xây dựng sở phép toán đối tượng: Khởi tạo siêu đồ thị không lồng; khởi tạo siêu đồ thị lồng; kiểm tra siêu đồ thị (chỉ có siêu cạnh đối tượng); Kiểm tra siêu đồ thị có tách biệt (các siêu cạnh tạo nên siêu đồ thị không giao nhau); Kiểm tra siêu cạnh siêu cạnh hay không? Nếu siêu cạnh điều kiện thiết lập phép tốn ưu tiên chọn siêu cạnh điều kiện trước để loại Ngược lại, siêu cạnh đối tượng thiết lập phép toán ưu tiên chọn siêu cạnh đối tượng Và thuật tốn tinh chỉnh chương trình làm cho số bước thực giảm tối ưu Đầu vào chương trình xâu liệu có từ khối SFW Siêu đồ thị xây dựng dựa lớp, thuộc tính biểu thức mà thuộc tính tham gia Từ mệnh đề Select ta thiết lập R tập đỉnh siêu đồ thị Mệnh đề From xác định lớp lược đồ liệu siêu đồ thị Từ mệnh đề Where có mối quan hệ lớp tham gia siêu đồ thị Đầu chương trình danh sách bước thực tham chiếu câu truy vấn Tổng chi phí cho phép nối, tích Đề các, phép giao, phép chiếu, chọn kết cần tối ưu Chương trình chia làm hai phần để xác định tối ưu sử dụng Thuật toán 3.4 rút gọn siêu đồ thị: Sử dụng thuật toán 3.3 ước lượng siêu cạnh siêu đồ thị Sử dụng thuật tốn rút gọn Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 50 KẾT LUẬN CSDL hướng đối tượng lĩnh vực khả mẻ với việc nghiên cứu ban đầu thời gian ngắn, có nhiều kết tác giả việc xây dựng mơ hình chuẩn mơ hình CSDL hướng đối tượng dạng chuẩn lược đồ CSDL hướng đối tượng Nhưng với tính phức tạp cấu trúc phi tuyến mơ hình CSDL hướng đối tượng, việc đặc tả đối tượng phức, dẫn đến việc kết nghiên cứu kỹ thuật tối ưu hóa truy vấn đối tượng cịn khiêm tốn Vì vậy, phạm vi luận văn, nghiên cứu mơ hình tổng quát CSDL hướng đối tượng, ngôn ngữ truy vấn đối tượng OQL kỹ thuật tối ưu hóa truy vấn đối tượng CSDL hướng đối tượng Các kết luận văn đạt là: - Giới thiệu mơ hình CSDL hướng đối tượng, ngơn ngữ truy vấn đối tượng OQL đại số đối tượng - Nghiên cứu siêu đồ thị kết nối đối tượng, sử dụng ký pháp siêu đồ thị, mở rộng thuật toán rút gọn siêu đồ thị kết nối - Cài đặt thuật toán rút gọn siêu đồ thị cho trường hợp truy vấn lồng Hƣớng phát triển luận văn - Sử dụng mơ hình ước lượng chi phí truy vấn để xác định phương án thực thi tối ưu truy vấn - Nghiên cứu kỹ thuật tối ưu hóa truy vấn đối tượng ước lượng chi phí biểu thức đường dẫn Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 51 TÀI LIỆU THAM KHẢO [1] Đoàn Văn Ban, Giáo trình sở liệu hướng đối tượng, Hà Nội, 2005 [2] Đồn Văn Ban, Phân tích thiết kế lập trình hướng đối tượng, NXB Thống kê, 1997 [3] Đồn Văn Ban (1999), “Một số tính chất q trình thừa kế kiểu mơ hình sở liệu hướng đối tượng”, Tạp chí Tin học điều khiển học, 15(3) [4] Hoàng Bảo Hùng (2007), Truy vấn tối ưu hoá truy vấn sở liệu hướng đối tượng, Luận án Tiến sĩ Toán học, Viện Công nghệ Thông Tin, Viện Khoa học Công nghệ Việt Nam, Hà Nội [5] Hoàng Bảo Hùng (2001), Một vài vấn đề tối ưu hóa truy vấn sở liệu hướng đối tượng, Luận văn tốt nghiệp Thạc sĩ chuyên ngành Công nghệ thông tin, Đại học Bách khoa Hà Nội [6] Hoàng Quang (2004), Về cách tiếp cận việc chuyển đổi mơ hình quan hệ sang mơ hình hướng đối tượng, Luận văn Tiến sĩ, Viện công nghệ thông tin, Viện Khoa học Công nghệ Việt Nam, Hà nội, tr.44 [7] Lê Mạnh Thạnh, Hồng Bảo Hùng, “Mơ hình ước lượng chi phí xử lý truy vấn đối tượng sở liệu hướng đối tượng”, Kỷ yếu Hội thảo Quốc gia lần thứ VIII, Một số vấn đề chọn lọc CNTT truyền thông, chủ đề “Mã nguồn mở”, 25/8-27/8/2005, Hải Phòng, Nhà xuất Khoa học Kỹ thuật, Hà nội, tr 568-5792006 [8] Lê Mạnh Thạnh, Hoàng Bảo Hùng, “Một phương pháp chuyển đổi dư liệu từ sở liệu quan hệ sang sở liệu hướng đối tượng”, Tạp chí khoa học(11), Đại học Huế, tr.35-44, 2002 [9] Lê Mạnh Thạnh, Hoàng Bảo Hùng, “Ngơn ngữ truy vấn đối tượng tối ưu hố truy vấn CSDL hướng đối tượng phương pháp biến đổi đại Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 52 số”, Kỷ yếu Hội nghị khoa học kỷ niệm 25 năm thành lập Viện Công Nghệ Thông TinHà Nội, tr 175-1852001 [10] Ullman, Jeffrey D (1999), Nguyên lý hệ sở liệu sở tri thức, Tập 1, 2, Trần Đức Quang biên dịch, Nhà xuất Thống kê [11] Fong J and Chitson P.“Query Translation from SQL to OQL for Database Reengineering”, International Journal of Information Technology3(1)pp 83-1011997 [12] Fong J.“Converting Relational to Object – Oriented Databases”, SIGMOD Record26(1), pp 53-641997 [13] Francois Bancilhon, Guy Ferran (2007), ODMG-93: “The Object Database Standard, O2 Technology”, 2685 Marine Way – Suite 1220, Mountain View, California 94043 [14] Cattel R.G.G, Barry D.K (2000), The Object Database Standard: ODMG 3.0, Morrgan Kaufmann Publishers [15] Han, Jia Liang (1998), “Optimizing Relational Queries in Connection Hypergraph: Nested Queries, Views, and Binding Propagations”, The VLDB Journal, 7, pp.1-11 [16] Bierman G.M and Trigoni A (2000), Towards A Formal Type System For ODMG OQL Technical Report 497, University of Cambridge, Computer Laboratory Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn i MỤC LỤC LỜI NÓI ĐẦU Chƣơng 1: CÁC KHÁI NIỆM CƠ BẢN VỀ CƠ SỞ DỮ LIỆU HƢỚNG ĐỐI TƢỢNG .3 1.1 Đối tƣợng, lớp định danh đối tƣợng 1.1.1 Đối tượng định danh đối tượng 1.1.2 Lớp đối tượng 1.1.3 Giá trị kiểu 1.1.4 Thuộc tính thao tác phương thức 1.2 Các mối quan hệ lớp 1.2.1 Sự phân cấp lớp 1.2.2 Sự kế thừa 1.3 Kết luận 10 Chƣơng 2: NGÔN NGỮ TRUY VẤN OQL VÀ ĐẠI SỐ ĐỐI TƢỢNG 11 2.1 Ngôn ngữ truy vấn OQL 11 2.1.1 Khái niệm 11 2.1.2 Kiểu lược đồ suy dẫn ngôn ngữ truy vấn OQL .12 2.1.3 Thuộc tính lượng từ 13 2.1.4 Biến tham chiếu 15 2.1.5 Phương thức tham chiếu .15 2.2 Đại số đối tƣợng 15 2.2.1 Phép toán đối tượng .16 2.2.2 Phép toán .16 2.2.3 Phép toán tập hợp 16 2.2.4 Phép toán kiểu “túi” 17 2.2.5 Phép toán danh sách 18 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn ii 2.2.6 Phép toán mảng .18 2.3 Kết luận 18 Chƣơng 3: TỐI ƢU HOÁ TRUY VẤN TRONG CƠ SỞ DỮ LIỆU HƢỚNG ĐỐI TƢỢNG .19 3.1 Giới thiệu .19 3.1.1 Siêu đồ thị kết nối đối tượng 20 3.1.2 Ví dụ 21 3.2 Tối ƣu hoá truy vấn hƣớng đối tƣợng siêu đồ thị kết nối 22 3.2.1 Siêu đồ thị kết nối [7], [6], [15] 22 3.2.2 Phương pháp ước lượng truy vấn lồng siêu đồ thị 32 3.3 Kết luận chƣơng 47 Chƣơng 4: CHƢƠNG TRÌNH MƠ PHỎNG 49 KẾT LUẬN .50 TÀI LIỆU THAM KHẢO .51 MỤC LỤC i DANH MỤC CÁC BẢNG iii DANH MỤC CÁC HÌNH VẼ iv DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT v Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn iii DANH MỤC CÁC BẢNG Bảng 3.1 Kết ƣớc lƣợng siêu cạnh ví dụ 3.4 36 Bảng 3.2 Kết ƣớc lƣợng áp dụng thuật toán 3.4 ví dụ 3.4 45 Bảng 3.3 Kết ƣớc lƣợng siêu cạnh ví dụ 3.5 45 Bảng 3.4 kết ƣớc lƣợng áp dụng thuật tốn 3.4 ví dụ 3.5 46 Bảng 3.5 Kết ƣớc lƣợng siêu cạnh ví dụ 3.6 46 Bảng 3.6 kết ƣớc lƣợng áp dụng thuật tốn 3.4 ví dụ 3.6 47 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn iv DANH MỤC CÁC HÌNH VẼ Hình 2.1 Sự phân cấp kiểu CSDL 12 Hình 3.1 Siêu đồ thị H 20 Hình 3.2 Siêu đồ thị kết nối đối tƣợng ví dụ 3.1 22 Hình 3.3 Siêu đồ thị kết nối ví dụ 3.3 28 Hình 3.4 Siêu đồ thị kết nối ví dụ 3.4 29 Hình 3.5 Siêu đồ thị kết nối ví dụ 3.5 30 Hình 3.6 Siêu đồ thị kết nối ví dụ 3.6 32 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn v DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT Các ký hiệu E Siêu cạnh Oid OID đối tượng O (Object) Đối tượng V (Value) Giá trị D Tập đối tượng H (HyperGraph) Siêu đồ thị P (power) Lực lượng Mid (Method Identify) Định danh phương thức Odb (object database) Cơ sở liệu hướng đối tượng Attrs (Attributes) Tập thuộc tính R Tập thuộc tính mệnh đề Select Các chữ viết tắt CSDL (Database) Cơ sở liệu OID (Object Identifier) Định danh đối tượng OODB (Object Oriented Database) Cơ sở liệu hướng đối tượng OQL (Object Query Language) Ngôn ngữ truy vấn SQL (Structured Query Language) Ngôn ngữ truy vấn quan hệ TID (Tuple Indentifier) Định danh UML (Unified Modeling Language) Ngơn ngữ mơ hình hợp B (Boolean) Kiểu Boolean F (float) Kiểu Float c (Char) Kiểu Char Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn vi i (Integer) Kiểu Integer s (String) Kiểu String OO (Object Orented) Hướng đối tượng SFW (Select…From…Where) Khối lệnh trọng tâm ngôn ngữ truy vấn đối tượng OQL ODMG (Object Database Managemnet Group) Nhóm quản trị CSDL đối tượng, tổ chức đề xuất mơ hình ODMG (ver 3.0) ngơn ngữ OQL Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn ... tạp xây dựng giao diện lập trình hướng đối tượng Một hướng nghiên cứu quan trọng đề cập hệ thống CSDL hướng đối tượng tối ưu hoá truy vấn hướng đối tượng Với truy vấn tồn nhiều phương án mà hệ thống... CÁC KHÁI NIỆM CƠ BẢN VỀ CƠ SỞ DỮ LIỆU HƢỚNG ĐỐI TƢỢNG 1.1 Đối tƣợng, lớp định danh đối tƣợng 1.1.1 Đối tƣợng định danh đối tƣợng Khái niệm mơ hình hướng đối tượng (HĐT) đối tượng Đối tượng [1],... Ngôn ngữ truy vấn đối tượng OQL đại số đối tượng tương ứng chọn làm sở cho nghiên cứu, mở rộng thuật toán tối ưu hoá truy vấn đối tượng công cụ minh hoạ cho thuật toán tối ưu hoá truy vấn đề xuất