phần mở đầu, ba chƣơng nội dung và phần kết luận. Chƣơng 1: Giới thiệu các khái niệm, định nghĩa cơ bản nhƣ: lớp, đối tƣợng, định danh đối tƣợng trong mô hình CSDL hƣớng đối tƣợng; kế đến, trình bày sự mở rộng ngữ nghĩa của mô hình nhƣ hệ thống phân cấp và quan hệ kế thừa. Tìm hiểu kỹ thuật xử lý truy vấn và các thay đổi so với kỹ thuật xử lý truy vấn quan hệ. Để thực hiện đƣợc các câu truy vấn đối tƣợng một cách hiệu quả và tiếp tục nghiên cứu các vấn đề về tối ƣu hoá truy vấn trong các CSDL hƣớng đối tƣợng, ngôn ngữ truy vấn OQL là ngôn ngữ truy vấn đƣợc chọn giới thiệu trong chƣơng này.
Chƣơng 2: 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ị trong các trƣờng hợp truy vấn đối tƣợng đơn và lồng. Đƣa ra giải thuật ƣớc lƣợng siêu cạnh cho các trƣờng hợp tách biệt hay liên thông của các siêu đồ thị con hợp thành siêu đồ thị mà biểu diễn cho một truy vấn đối tƣợng lồng.
Cuối chƣơng, là mở rộng thuật toán tối ƣu hóa truy vấn trên cơ sở xây dựng danh sách các bƣớc thực thi câu truy vấn theo quy tắc có thứ tự loại bỏ siêu cạnh. Chƣơng 3: Giới thiệu về hệ quản trị CSDL đối tƣợng DB4O. Phát biểu bài toán quản lý nhân sự trong công ty, đó là bài toán đƣợc áp dụng trong các ví dụ cho thuật toán tối ƣu hóa truy vấn. Đƣa ra kết quả thực nghiệm cho bài toán tối ƣu hóa truy vấn CSDL hƣớng đối tƣợng dựa trên siêu đồ thị.
Cuối cùng là kết luận và hƣớng phát triển của đề tài. Nội dung cơ bản của luận văn đã đƣợc trình bày, thảo luận tại xêmina khoa học ở Bộ môn Hệ thống thông tin, khoa Công nghệ Thông tin, trƣờng Đại học Công nghệ - Đại học Quốc gia Hà nội. z 12 Chƣơng 1 MÔ HÌNH CƠ SỞ DỮ LIỆU HƢỚNG ĐỐI TƢỢNG 1. Tổng quan về hệ thống dữ liệu hƣớng đối tƣợng 1.
Mô hình dữ liệu Các hệ thống quản trị cơ sở dữ liệu (CSDL) đầu tiên xuất hiện trƣớc những năm 1970. Những hệ thống này đƣợc phát triển từ hệ thống các tệp tin (File Systems) để hỗ trợ cho việc lƣu trữ và xử lý số lƣợng lớn các dữ liệu. Tuy nhiên, các nhà nghiên cứu trong lĩnh vực CSDL nhận thấy giá trị của dữ liệu cần đƣợc lƣu trữ để xử lý, và các mô hình dựa trên dữ liệu cần đƣợc nghiên cứu để cải thiện độ tin cậy, đảm bảo an ninh, an toàn dữ liệu và nâng cao hiệu quả của việc truy cập vào hệ thống. Mô hình dữ liệu cung cấp cách thức tổ chức các dữ liệu đƣợc lƣu trữ theo cấu trúc đặc biệt hoặc theo các mối quan hệ sao cho việc truy cập và quản lý nhanh chóng, hiệu quả.
Nhiều mô hình CSDL nhƣ mô hình phân cấp (Hierarchical model), mô hình mạng (Network model), mô hình quan hệ (Relational model), mô hình hƣớng đối tƣợng (Object-Oriented model) nhƣ Hình 1.1 đã xuất hiện và đóng vai trò quan trọng trong việc nghiên cứu phát triển các hệ thống quản trị CSDL (DataBase Management System). File Systems Network Hierarchical Relational Object-Oriented Semantic Data Complex Object System Model (ERD) Model Object-Oriented Databases Hình 1. Sự phát triển của các mô hình dữ liệu [1] 1. Những hạn chế của cơ sở dữ liệu quan hệ Mô hình CSDL quan hệ truyền thống đƣợc sử dụng nhiều nhƣng chƣa đáp ứng đƣợc hết các yêu cầu của thực tế.
Mô hình quan hệ chỉ phù hợp cho những bài toán có bộ dữ liệu nhỏ và không đáp ứng đƣợc cho những bài toán ở lĩnh vực ứng dụng mới, nhiều kiểu dữ liệu phức tạp. Ví dụ, khi cần lƣu trữ và xử lý một số lƣợng lớn dữ liệu, dữ liệu hình ảnh, âm thanh hay video, … thì việc sử dụng mô hình quan hệ sẽ không đạt hiệu quả. Nhƣng đa phần những ứng dụng mới hiện nay đòi hỏi hệ thống cơ sở dữ z 13 liệu phải xử lý đƣợc các tính năng nhƣ: các kiểu dữ liệu phức tạp, đóng gói dữ liệu (Data Encapsulation) và cấu trúc dữ liệu trừu tƣợng, cùng với những phƣơng pháp mới để lập chỉ mục và truy vấn thông tin. Phần lớn các hệ quản trị CSDL phổ biến hiện nay trên thị trƣờng là các hệ quản trị dữ liệu theo mô hình quan hệ.
Tuy nhiên, các hệ quản trị CSDL quan hệ có những hạn chế nhƣ sau [13,19]: Hạn chế trong vấn đề biểu diễn thế giới thực (Real world): Các quan hệ (relations) không đủ mạnh để thể hiện các thực thể (entities) trong thế giới thực. Rất khó để mà biểu diễn đƣợc mối quan hệ kế thừa, mối quan hệ thành viên (IS-A relationships). Ví dụ nhân viên là một ngƣời, trong ví dụ này, hệ quản trị CSDL quan hệ phải định nghĩa 2 bảng là bảng Nguoi và bảng NhanVien, trong đó bảng NhanVien nhận đƣợc những thông tin từ lớp cha (superclass) Nguoi để kết nối lại. Hạn chế về nạp chồng ngữ nghĩa (Semantic overloading): Thành phần chuẩn trong mô hình quan hệ là quan hệ (relation) không đủ mạnh để biểu diễn cho dữ liệu và các mối quan hệ phức tạp của dữ liệu.
Nó thƣờng phải chia một đối tƣợng thành một số các quan hệ (bảng) và truy vấn tin thì phải thực hiện các phép: chiếu, chọn và kết nối để tái cấu trúc các đối tƣợng đó. Chỉ biểu diễn những dữ liệu thuần nhất: Những hạn chế về kiểu dữ liệu trong mô hình quan hệ làm nó không thể biểu diễn đƣợc các đối tƣợng trong thế giới thực. Một mục (item) bất kỳ trong một bộ dữ liệu (tuple) thực chất là phần giao nhau của hàng với cột, nó phải là dữ liệu của một kiểu dữ liệu nguyên tố, bởi vì theo giả thuyết, cả chiều ngang và chiều dọc đều phải có kiểu thuần nhất. Hệ thống khép kín: Những lĩnh vực ứng dụng còn tồn tại không thể bổ sung đƣợc vào hệ thống sau khi phát triển hệ quản trị CSDL, nhƣ không thể bổ sung các kiểu dữ liệu mới vào hệ thống.
Nhƣng thực tế đòi hỏi các hệ quản trị CSDL phải hỗ trợ để xử lý những kiểu dữ liệu mới nhƣ kiểu hình ảnh (images), video, audio, … Giới hạn các phép toán: Mô hình quan hệ có một tập cố định các phép toán trong SQL. Ngoài ra, không cho phép mở rộng hay bổ sung thêm những phép toán mới. Khó thực hiện truy vấn đệ qui: Các câu truy vấn đệ qui cực kỳ khó đặc tả và cài đặt trong mô hình quan hệ. Đây cũng chính là điểm yếu làm cho SQL không thực hiện đƣợc đầy đủ trong tính toán.
Những trở ngại trong đối sánh: Mô hình quan hệ sử dụng những mô thức lập trình hỗn hợp khác nhau, trong đó cho phép các dữ liệu với kiểu khác nhau và nhiều vị trí khác nhau có thể đƣợc xử lý trong cùng một thời điểm. Mô hình dữ liệu hƣớng đối tƣợng Trong số các mô hình dữ liệu hiện nay, mô hình dữ liệu đối tƣợng là mô hình đảm bảo tính mềm dẻo, tính linh hoạt, và tính “mở” của hệ thống. Mô hình dữ liệu z 14 hƣớng đối tƣợng đang đƣợc phát triển một cách phổ dụng trong lĩnh vực phát triển CSDL. Đƣợc xây dựng theo cách tiếp cận hƣớng đối tƣợng nhằm khắc phục những hạn chế của những mô hình dữ liệu truyền thống.
Mô hình dữ liệu hƣớng đối tƣợng có các đặc trƣng cơ bản sau [6, 13]: - Thông tin đƣợc biểu diễn thành các đối tƣợng giống nhƣ các đối tƣợng trong lập trình hƣớng đối tƣợng. Lớp bao gồm các thông tin: + Dữ liệu thuộc tính mô tả các đặc trƣng của các thực thể (đối tƣợng) + Các phƣơng thức mô tả hành vi ứng xử của đối tƣợng + Mối quan hệ giữa các lớp với nhau. - Mỗi đối tƣợng (thực thể) có một định danh ID để xác định duy nhất trong hệ CSDL. - Các CSDL hƣớng đối tƣợng đƣợc thiết kế để làm việc tốt đối với những ngôn ngữ lập trình hƣớng đối tƣợng nhƣ: Java, C++, C#, Smalltalk,….
Mục đích của CSDL hƣớng đối tƣợng là để quản trị hiệu quả những kiểu dữ liệu phức hợp, dữ liệu đa phƣơng tiện nhƣ âm thanh, hình ảnh,. , nhằm khắc phục những hạn chế của CSDL quan hệ. Hình vẽ sau đây giới thiệu về mô hình dữ liệu hƣớng đối tƣợng nguyên mẫu. Hệ thống CSDL Lập trình hướng đối truyền thống tượng - Sự bền vững - Nhận dạng đối tƣợng - Tính chia sẻ Ngữ nghĩa mô - Sự đóng gói - Các giao dịch hình dữ liệu - Sự kế thừa - Kiểm soát trùng lặp - Sự tổng quát hoá - Kiểu và các lớp - Kiểm soát phục hồi - Sự kết nhập - Phƣơng thức - Tính bảo mật - Đối tƣợng phức Các chức năng đặc - Tính toàn vẹn - Tính đa hình thái biệt - Truy vấn - Tính mở - Phiên bản - Sự tiến hoá lƣợc đồ MÔ HÌNH DỮ LIỆU HƢỚNG ĐỐI TƢỢNG Hình 1.
Mô hình dữ liệu hướng đối tượng nguyên mẫu [13] Trên cơ sở kế thừa và phát triển các điểm mạnh của CSDL quan hệ thì CSDL đối tƣợng đã bổ sung các tính chất mà CSDL quan hệ vẫn còn thiếu sót. Cũng nhƣ hệ thống CSDL truyền thống, hệ thống CSDL hƣớng đối tƣợng có tính bền vững, tính chia sẻ dữ liệu, tính bảo mật, tính toàn vẹn và truy vấn dữ liệu. Ngoài ra, CSDL hƣớng đối tƣợng còn có những ƣu điểm khác nhƣ [13]: z 15 Hỗ trợ những kiểu dữ liệu được định nghĩa bởi người sử dụng: CSDL hƣớng đối tƣợng có khả năng lƣu trữ các kiểu phức hợp, kiểu đƣợc định nghĩa bởi ngƣời sử dụng, cho phép thao tác trong kiểu dữ liệu một cách dễ dàng. Cải tiến đáng kể về chất lượng dữ liệu: Ta có thể đƣa ra nhiều ràng buộc vào cấu trúc dữ liệu.
Mô hình còn cho phép thể hiện đƣợc cả những ràng buộc không có cấu trúc mà chƣơng trình phải thoả mãn khi nó thực hiện trong hệ CSDL. Một CSDL quan hệ đƣợc chuẩn hóa có thể xem nhƣ một trƣờng hợp đặc biệt của CSDL hƣớng đối tƣợng. Tốc độ phát triển phần mềm nhanh hơn: Cấu trúc CSDL nhất quán và rõ ràng giúp cho lập trình ứng dụng trở nên đơn giản và nhanh hơn. Những ngƣời phát triển ứng dụng có kinh nghiệm thƣờng sử dụng những câu lệnh rất mạnh của các hệ quản trị CSDL thay cho những đoạn chƣơng trình của ngƣời sử dụng.
Tích hợp dữ liệu dễ dàng và tiện lợi: Việc tích hợp nhiều hệ thống độc lập có thể làm giảm bớt sự sao chép dữ liệu của con ngƣời và mở rộng những câu truy vấn có thể trả lời đƣợc.