Chương 1 – TỔNG QUAN CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG Các mô hình dữ liệu và các hệ cở sở dữ liệu (CSDL) truyền thống, như là quan hệ, mạng và phân cấp, vốn khá thành công trong việc phát triển kỹ thuật CSDL cấn thiết cho nhiều ứng dụng CSDL kinh doanh. Tuy nhiên chúng có những khiếm khuyết nhất định khi phải thiết kế và thực hiện các CSDL phức hợp hơn, ví dụ như các CSDL dùng trong thiết kế và sản xuất công nghiệp (CAD/CAM và CIM2), các thí nghiệm khoa học, viễn thông, hệ bản đồ địa lý và đa phương tiện. Các ứng dụng mới mẻ này có những yêu cầu và đặc tính khác với các ứng dụng kinh doanh truyền thống, như là cấu trúc phức hợp hơn đối với các đối tượng, thời gian giao dịch lâu hơn, các kiểu dữ liệu mới để lưu hình ảnh hoặc những văn bản lớn và nhu cầu định nghĩa các xử lý đặc trưng của ứng dụng. CSDL hướng đối tượng được xem là phù hợp với những đòi hỏi của các ứng dụng này.
Việc tiếp cận hướng đối tượng tạo ra tính linh động để xử lý một số yêu cầu mà không bị hạn chế bởi các kiểu dữ liệu và các ngôn ngữ truy vấn có sẵn trong các hệ CSDL truyền thống. Tính năng then chốt của CSDL hướng đối tượng là năng lực mà chúng trao cho nhà thiết kế để chỉ ra cấu trúc của các đối tượng phức hợp các thao tác áp dụng lên các đối tượng này. Một nguyên nhân khác của ra sự ra đời CSDL hướng đối tượng là việc vận dụng ngày càng nhiều các ngôn ngữ lập trình hướng đối tượng để xây dựng các ứng dụng phần mềm. Ngày nay CSDL đang trở thành những thành phần cơ bản trong hệ thống phần mềm và rất khó sử dụng CSDL truyền thống để nhúng trong các ứng dụng phần mềm hướng đối tượng được xây dựng bằng một ngôn ngữ lập trình hướng đối tượng như là C++, SMALLTALK hay JAVA.
Object-Oriented Database (OODB) được thiết kế để có thể tích hợp trực tiếp với phần mềm được xây dựng bằng những ngôn ngữ lập trình hướng đối tượng. - 10 - Luan van Các nhà cung cấp hệ CSDL quan hệ còn nhận ra nhu cầu về tính năng mô hình hóa dữ liệu bổ sung, các phiên bản tốt hơn của các hệ thống quan hệ đang kết hợp nhiều tính năng đề ra cho OODB như các tiêu chuẩn thiết kế và các vấn đề truy vấn trong CSDL hướng đối tượng. Cơ sở dữ liệu hướng đối tượng Cơ sở dữ liệu hướng đối tượng (Object – Oriented Database) là một kiểu CSDL, mà trong đó các dữ liệu được lưu trữ dưới dạng các đối tượng. Hay Cơ sở dữ liệu hướng đối tượng được xây dựng bằng các kết hợp các yếu tố của Cơ sở dữ liệu và các kĩ thuật của Lập trình hướng đối tượng nhằm mục đích lưu trữ các đối tượng dữ liệu.
Từ đó có thể tận dụng, phát huy được những ưu điểm, lợi ích và thế mạnh của ngôn ngữ lập trình hướng đối tượng, đồng thời khắc phục được những yếu điểm và khó khăn của các CSDL khác. Hình sau minh học việc tổ hợp các yếu tố của CSDL và các kĩ thuật của lập trình hướng đối tượng để xây dựng nên CSDL hướng đối tượng.1 Các thành phần của CSDL hướng đối tượng - 12 - Luan van 1. Khái niệm cơ bản trong cơ sở dữ liệu hướng đối tượng Thuật ngữ hướng đối tượng (Object Oriented - OO) có nguồn gốc từ ngôn từ lập trình hướng đối tượng (Object Oriented Programming Language - OOPL). Các khái niệm OO ngày nay được áp dụng trong lĩnh vực CSDL, công nghệ phần mềm, công nghệ trí thức, trí tuệ nhân tạo và các hệ máy tính nói chung.
OOPL có nguồn gốc từ ngôn ngữ SIMULA, được giới thiệu vào cuối những năm 1960. Một đối tượng (Object) đặc trưng thường có hai thành phần: trạng thái (State) và hành vi (Behaviour). Do đó, nó giống với một biến chương trình trong một ngôn ngữ lập trình, ngoại trừ rằng về nguyên tắc nó sẽ có một cấu trúc dữ liệu phức hợp cũng như các thao tác đặc thù do người lập trình viên định nghĩa. Các đối tượng trong một OOPL chỉ tồn tại trong một thời gian chương trình hoạt động và do đó chúng được gọi là những đối tượng tức thời.
Một OODB có thể kéo dài sự tồn tại của những đối tượng sao cho chúng được lưu trữ vĩnh viễn và do đó các đối tượng vẫn bảo toàn sau khi chương trình chấm dứt và có thể được gọi lại sau này cũng như được chia sẻ với các chương trình khác. Nói cách khác, OODB lưư trữ các đối tượng bảo toàn ở nơi lưu trữ phụ và cho phép chia sẻ những đối tượng này với nhiều chương trình và ứng dụng. Việc này đòi hỏi kết hợp các tính năng phổ biến khác của hệ quản trị CSDL, như là cơ chế định chỉ mục, điều khiển song hành và phục hồi. Một hệ OODB giao tiếp với một hoặc nhiều ngôn ngữ lập trình hướng đối tượng để cung cấp khả năng đối tượng bảo toàn và chia sẻ.
Mục tiêu của OODB là duy trì sự tương đồng trực tiếp giữa các đối tượng thực tế và các đối tượng CSDL sao cho đối tượng không mất đi tính toàn vẹn và cá tính của chúng và có thể xác định và xử lý dễ dàng với chúng. Do đó, OODB cung cấp một đối tượng định danh (Object Identifier- OID) duy nhất do hệ thống phát sinh (OID) cho mỗi đối tượng. Ta có thể so sánh điều này với mô hình quan hệ trong đó mỗi quan hệ phải có một thuộc tính khoá chính mà giá trị của nó xác định từng mẩu tin duy nhất. Trong mô hình quan hệ, nếu giá trị của khoá chính bị thay đổi, mẩu tin sẽ có một con số xác định mới, mặc dù nó vẫn thể hiện cùng một đối tượng thực tế.
- 13 - Luan van Nói cách khác, một đối tượng thực tế có thể có nhiều tên khác nhau đối với thuộc tính khoá trong các quan hệ khác nhau, sẽ khó mà biết được rằng những khoá thể hiện cùng một đối tượng. Cấu trúc bên trong của một đối tượng trong OOPL bao gồm đặc tả của biến bản sao, lưu giữ những giá trị xác định trạng thái bên trong của đối tượng. Do đó, một biến bản sao tương tự với khái niệm của một thuộc tính (Attributes), ngoại trừ rằng biến bản có thể được đóng gói bên trong đối tượng và như vậy, không nhất thiết phải thể hiện ra đối với người sử dụng bên ngoài. Các biến bảo sao còn có thể thuộc kiểu dữ liệu phức hợp tuỳ ý.
Những hệ thống hướng đối tượng cho phép định nghĩa các thao tác hay hàm ( hành vi) áp dụng lên kiểu đối tượng cụ thể. Trong thực tế, một số mô hình OO khẳng định rằng tất cả các hành vi mà người sử dụng áp dụng lên một đối tượng đều phải định nghĩa trước. Điều này bắt buộc một sự đóng gói hoàn chỉnh các đối tượng. Định danh đối tượng Định danh đối tượng : Hệ OODB cung cấp xác định duy nhất cho từng đối tượng độc lập lưu trữ trong CSDL.
Về nguyên tắc, xác định duy nhất này được thực hiện thông qua phần xác định đối tượng duy nhất, do hệ thống phát sinh, gọi là định danh đối tượng (Object Identifier - OID). Giá trị của một OID không thể sinh ra cho người sử dụng bên ngoài, mà nó được sử dụng nội bộ bên trong hệ thống để xác định từng đối tượng duy nhất, tạo ra và quản lý các tham chiếu lẫn nhau giữa các đối tượng. Đặc điểm chính bắt buộc của một OID là tính chất biến; nghĩa là giá trị OID của một đối tượng nhất định không thay đổi. Điều này giúp bảo toàn ý nghĩa của một đối tượng thực tế.
Do đó, một hệ thống OODB phải có một cơ chế để phát sinh các OID và bảo toàn tính bất biến. Tốt nhất là mỗi OID chỉ nên sử dụng một lần; nghĩa là thậm chí khi đối tượng bị xoá khỏi CSDL, thì OID của nó cũng không thể đem gán cho một đối tượng khác được. Nhờ đó OID không thể phụ thuộc vào giá trị - 14 - Luan van thuộc tính bất kỳ của đối tượng, bởi vì giá trị thuộc tính có thể bị thay đổi hoặc chỉnh sửa. Nói chung, OID cũng không thể dựa trên địa chỉ vật lý của đối tượng trong kho lưu trữ, bởi vì địa chỉ vật lý có thể thay đổi sau một đợt tổ chức lại của CSDL về phương diện vật lý.
Tuy vậy, một số hệ thống vẫn sủ dụng địa chỉ vật lý làm OID để tăng cường hiệu quả trong truy vấn đối tượng. Nếu địa chỉ vật lý của một đối tượng thay đổi, một con trỏ gián tiếp có thể được đặt tại địa chỉ trước đó, sẽ cho biết vị trí vật lý mới của đối tượng. Phổ biến hơn, người ta sử dụng số Long Interger làm OID, sau đó sử dụng sẽ sử dụng một số dạng bảng băm (hash table) để ánh xạ giá trị OID đến địa chỉ vật lý của đối tượng. Thuộc tính đối tượng Các đối tượng chứa một tập thông tin nhất định về đối tượng gọi là thuộc tính của đối tượng.
Mỗi thuộc tính có một tên duy nhất trong đối tượng và giá trị được biểu diễn trong miền giá trị của một kiểu dữ liệu nào đó. Các kiểu dữ liệu này có thể là các kiểu dữ liệu cơ bản, như khiểu số nguyên, số thực, kiểu xâu ký tự,… hoặc các kiểu dữ liệu do người dùng định nghĩa, các kiểu đối tượng. Trạng thái đối tượng Trạng thái của một đối tượng là thể hiện của đối tượng tại một thời điểm nhất định, bao gồm một tập các giá trị của các thuộc tính đối tượng tại thời điểm đó. Trạng thái của đối tượng có thể thay đổi theo thời gian, tương ứng với sự thay đổi giá trị của các thuộc tính đối tượng.
Tập hợp tất cả các trạng thái có thể của đối tượng được gọi là mạng trạng thái. Để thay đổi trạng thái của đối tượng (thay đổi giá trị của thuộc tính), cần gửi các thông điệp hợp lệ đến đối tượng, hay yêu cầu thực thi các hành vi của đối tượng. Hành vi đối tượng Hành vi của một đối tượng là các thao tác hợp lệ của chính đối tượng đó trên các thuộc tính của đối tượng, được sử dụng để khởi tạo hay thay đổi các giá trị của thuộc tính, hoặc trả về một giá trị nào đó dựa trên các giá trị thuộc tính của đối tượng. Các đối tượng khác có thể truyền các thông điệp, hay yêu cầu đối tượng thực thi các hành vị bằng việc gọi tên của hành vi đó và các tham số nếu có.