MỞ ĐẦU Hệ quản trị cơ sở dữ liệu với mô hình quan hệ (RDBMS – Relation DataBase Management System) đã có nhiều đóng góp đáng kể trong việc quản lý các hệ thông tin. Chúng đƣợc nghiên cứu, ứng dụng, phát triển rộng rãi và có nhiều sản phẩm đã đƣợc thƣơng mại hóa. Tuy nhiên, các hệ quản trị cơ sở dữ liệu quan hệ không phù hợp cho các ứng dụng có các cấu trúc dữ liệu phức tạp, các đối tƣợng không có cấu trúc, ví dụ nhƣ CAD/CAM, các hệ thống thông tin địa lý, các cơ sở dữ liệu đa phƣơng tiện, các hình ảnh, âm thanh,… Các hệ quản trị cơ sở dữ liệu không cho phép ngƣời dùng mở rộng các kiểu hệ thống, thêm các kiểu dữ liệu mới. Bên cạnh đó, việc sử dụng ngôn ngữ lập trình hƣớng đối tƣợng để thao tác các cơ sở dữ liệu quan hệ có những bất cập.
Các hệ quản trị cơ sở dữ liệu quan hệ không hỗ trợ các khái niệm trong ngôn ngữ lập trình hƣớng đối tƣợng. Cho nên chúng ta cần phải ánh xạ qua lại giữa ngôn ngữ lập trình hƣớng đối tƣợng với cơ sở dữ liệu quan hệ. Với mong muốn kiểm soát đƣợc các dữ liệu phức tạp cũng nhƣ mở rộng đƣợc hệ thống trong những ứng dụng đa dạng hơn, mô hình hƣớng đối tƣợng đã ra đời và đƣợc áp dụng vào các ngôn ngữ lập trình, các giao diện ngƣời dùng, các kỹ thuật thiết kế, các hệ điều hành, cấu trúc phần cứng và các hệ CSDL. Các ứng dụng “thế hệ tiếp theo này” gồm thiết kế phần mềm có máy tính hỗ trợ (CASE), sản xuất tích hợp qua máy tính (CIM), và các ứng dụng khác,… Cho đến nay chƣa có một chuẩn chính thức và chƣa đƣợc chấp nhận bởi các tổ chức ISO, ANSI, nhƣng đã có nhiều hệ thƣơng mại theo mô hình quản trị cơ sở dữ liệu hƣớng đối tƣợng (OODBMS) đƣợc tung ra thị trƣờng nhƣ DB4O, OBJECTSTORE,… Do đó, có thể nói rằng mô hình OODBMS đã xuất hiện nhƣ một giải pháp nhằm giải quyết sự phức tạp trong việc mô hình hoá thế giới thực ngày càng tổng quát hơn.
Phạm vi của luận văn này tập trung nghiên cứu những vấn đề sau: Một số vấn đề cơ bản về cơ sở dữ liệu hƣớng đối tƣợng Hệ quản trị cơ sở dữ liệu hƣớng đối tƣợng DB4O Xây dựng ứng dụng mô phỏng việc sử dụng cơ sở dữ liệu hƣớng đối tƣợng với hệ quản trị DB4O. Luận văn đƣợc chia thành 3 chƣơng. Chƣơng 1 trình bày khái quát các vấn cơ bản liên quan đến cơ sở dữ liệu hƣớng đối tƣợng và hệ quản trị cơ sở dữ liệu hƣớng đối tƣợng. Chƣơng 2 giới thiệu cách làm việc với hệ quản trị cơ sở dữ liệu hƣớng đối tƣợng DB4O.
Chƣơng 3 xây dựng chƣơng trình quản lý sinh viên sử dụng cơ sở dữ liệu hƣớng đối tƣợng với hệ quản trị DB4O. z 6 Chƣơng 1 CƠ SỞ DỮ LIỆU VÀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU HƢỚNG ĐỐI TƢỢNG 1.Cơ sở dữ liệu hướng đối tượng 1. Mô hình hƣớng đối tƣợng Một cơ sở dữ liệu hƣớng đối tƣợng đƣợc xem nhƣ là một kho bền vững các đối tƣợng đƣợc tạo ra bởi ngôn ngữ lập trình hƣớng đối tƣợng. Với một ngôn ngữ lập trình bất kỳ, các đối tƣợng sẽ ngừng tồn tại (kết thúc) khi chƣơng trình ứng dụng kết thúc, nhƣng trong cơ sở dữ liệu hƣớng đối tƣợng, các đối tƣợng đƣợc duy trì ở bên ngoài phạm vi thực hiện của chƣơng trình.
Hệ quản trị cơ sở dữ liệu hƣớng đối tƣợng (OODBMS) quản lý dữ liệu, mã chƣơng trình và các cấu trúc kết hợp nhằm thiết lập một cơ sở dữ liệu hƣớng đối tƣợng. Khác với các hệ quản trị cơ sở dữ liệu quan hệ, các hệ quản trị cơ sở dữ liệu hƣớng đối tƣợng khác nhau rất nhiều về cú pháp và các khả năng ứng dụng. Tổ chức chuẩn hoá việc quản lý dữ liệu đối tƣợng ODMG (Object Data Management Group) cố gắng tìm cách giải quyết sự khác biệt đó bằng cách thống nhất đƣa ra những kỹ thuật mô hình hóa đối tƣợng OMT (Object Modeling Techniques) hay ngôn ngữ mô hình hoá thống nhất UML [2]. Mặc dù cho đến nay mô hình dữ liệu hƣớng đối tƣợng chƣa có một chuẩn đƣợc chấp nhận chính thức bởi các tổ chức ANSI hay ISO nhƣ đối với mô hình quan hệ, nhƣng trong suốt những năm qua một số hệ cơ sở dữ liệu hƣớng đối tƣợng nhƣ O 2 hay ObjectStore đã xâm nhập vào thị trƣờng Mỹ một cách chính thức nhờ khả năng mạnh mẽ của việc mô hình hoá thế giới thực.
Bên cạnh đó, các đề xuất về một chuẩn cho mô hình dữ liệu hƣớng đối tƣợng và ngôn ngữ truy vấn OQL do tổ chức ODMG đã đƣợc các nhà tin học quan tâm một cách thực sự. Vấn đề này đƣợc đề cập đến thông qua việc giới thiệu “mô hình hạt nhân” của mô hình dữ liệu hƣớng đối tƣợng, ở đó một số các quy ƣớc tối thiểu về mô hình hƣớng đối tƣợng đƣợc bàn đến. Mô hình hạt nhân đủ mạnh để thoả mãn nhiều đòi hỏi của các ứng dụng mới, hơn nữa còn đƣợc dùng làm cơ sở cho việc phân tích những khác biệt chính giữa mô hình dữ liệu hƣớng đối tƣợng với các mô hình dữ liệu truyền thống khác nhƣ mô hình quan hệ chẳng hạn. Mô hình hạt nhân dựa trên các khái niệm cơ bản sau [3]: Mỗi thực thể của thế giới thực đƣợc mô hình hoá bởi một đối tượng.
Mỗi đối tƣợng đƣợc xác định với một tên duy nhất đƣợc gọi là định danh đối tƣợng Mỗi đối tƣợng có một tập các thuộc tính và phƣơng thức. Giá trị của mỗi thuộc tính có thể là một đối tƣợng hay một tập đối tƣợng. Đặc trƣng này cho phép các đối tƣợng phức tạp đƣợc định nghĩa nhƣ sự kết nhập của các đối tƣợng khác. Tập các thuộc tính của một đối tƣợng và tập các phƣơng thức biểu diễn theo thức tự cấu trúc và hành vi của đối tƣợng.
z 7 Các giá trị thuộc tính biểu diễn trạng thái của đối tƣợng. Trạng thái của đối tƣợng đƣợc truy cập hay sửa đổi bằng việc gửi các thông báo tới đối tƣợng để viện dẫn các phƣơng pháp tƣơng ứng. Các đối tƣợng có cùng cấu trúc và hành vi đƣợc nhóm lại thành một lớp. Một lớp biểu diễn một hình mẫu cho một tập các đối tƣợng đồng dạng.
Mỗi đối tƣợng là thể hiện của một lớp nào đó. Một lớp có thể đƣợc định nghĩa nhƣ một chuyên biệt hoá của một hay nhiều lớp. Một lớp đƣợc định nghĩa nhƣ vậy gọi là một lớp con và kế thừa các thuộc tính và phƣơng thức thuộc lớp trên của nó. Nhƣ chúng ta đã biết, các cơ sở dữ liệu quan hệ đã và đang đƣợc sử dụng rất hiệu quả trong nhiều bài toán ứng dụng.
Cơ sở dữ liệu hƣớng đối tƣợng cần phải nghiên cứu và ứng dụng bởi ƣu, nhƣợc điểm sau: Hỗ trợ các kiểu dữ liệu đƣợc định nghĩa bởi ngƣời sử dụng Cung cấp một mẫu hình phát triển cơ sở dữ liệu cho cả phân tích, thiết kế và cài đặt ứng dụng, không phải chuyển từ mẫu hình này sang mẫu hình khác nhƣ trong quá trình phát triển phần mềm 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ả những ràng buộc không cấu trúc để chƣơng trình phải thoả mãn khi nó thực hiện trong cơ sở dữ liệu. Một cơ sở dữ liệu hƣớng đối tƣợng có thể dẫn về một cơ sở dữ liệu quan hệ đƣợc chuẩn hoá Tốc độ phát triển phần mềm nhanh hơn.
Cấu trúc cơ sở dữ liệu 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 Tích hợp dễ dàng. Các hệ quản trị cơ sở dữ liệu hƣớng đối tƣợng Các hệ quản trị cơ sở dữ liệu hƣớng đối tƣợng có thể đƣợc định nghĩa là hệ quản trị cơ sở dữ liệu trực tiếp hỗ trợ một mô hình dựa trên kiểu hƣớng đối tƣợng. Nó phải cung cấp việc lƣu trữ bền cho các đối tƣợng và những mô tả của chúng. Hệ cũng phải cung cấp một ngôn ngữ cho việc định nghĩa lƣợc đồ và cho việc thao tác các đối tƣợng và lƣợc đồ của chúng.
Ngoài ra, nó thƣờng có một ngôn ngữ hỏi và những cơ chế cơ sở dữ liệu cần thiết cho việc tối ƣu hoá truy cập nhƣ lập chỉ mục và dồn cụm, các cơ chế điều khiển tƣơng tranh và trao quyền đối với truy cập nhiều ngƣời dùng, cơ chế khôi phục khi có sự cố [3]. Một số hệ quản trị cơ sở dữ liệu hƣớng đối tƣợng phổ biến trên thị trƣờng nhƣ ObjectStore, GemStore, Objectivity, O2, Jasmine, Versant, Db4o và POET. Hệ quản trị cơ sở dữ liệu hƣớng đối tƣợng hỗ trợ rất nhiều kiểu dữ liệu phong phú và thông thƣờng là kết hợp chặt chẽ với ít nhất một ngôn ngữ lập trình. Các hệ quản trị cơ sở dữ liệu hƣớng đối tƣợng thực hiện nhanh hơn những ứng dụng điều khiển từ các đối tƣợng tham chiếu đến đối tƣợng, hỗ trợ kế thừa, quản lý định danh đối tƣợng và nhiều tính chất khác.
z 8 Các hệ quản trị cơ sở dữ liệu hƣớng đối tƣợng cũng có các yếu điểm sau [5]: Thiếu cơ sở lý thuyết và chuẩn hoá Chƣa có cơ chế đủ mạnh để bảo vệ cơ sở dữ liệu Không có khả năng mở rộng logic Chƣa hỗ trợ các siêu (meta) ứng dụng Hệ quản trị cơ sở dữ liệu hƣớng đối tƣợng là thích hợp hơn đối với những ứng dụng mới nhƣ: Những ứng dụng thiết kế công nghệ Các ứng dụng đa phƣơng tiện Các cơ sở tri thức Những ứng dụng đòi hỏi xử lý phân tán và tƣơng tranh. Các phần mềm nhúng 1. Các khái niệm trong cơ sở dữ liệu hướng đối tượng 1. Hƣớng đối tƣợng Thuật ngữ hƣớng đối tƣợng (object-oriented) còn đƣợc viết tắt là OO hoặc O-O có nguồn gốc từ các ngôn ngữ lập trình hƣớng đối tƣợng (OO hoặc OOPL).
Ngày nay, khái niệm hƣớng đối tƣợng đƣợc áp dùng trong các lĩnh vực nhƣ cơ sở dữ liệu, kỹ nghệ phần mềm, cơ sở tri thức, trí tuệ nhân tạo và hệ thống máy tính nói chung [10]. Hệ thống hƣớng đối tƣợng quan tâm tới một số vấn đề sau: Đối tƣợng và cấu trúc của đối tƣợng Tính duy nhất và tính bền vững của đối tƣợng Các đối tƣợng phức tạp Các phép toán áp dụng trên đối tƣợng Phân cấp, kế thừa và tính đa hình Bao gói và che dấu thông tin Phân chia phiên bản đối tƣợng 1.