Chương 1. Tổng quan về cơ sở dữ liệu hướng đối tượng 1. Sự phát triển của công nghệ cơ sở dữ liệu Trong suốt ba thập kỷ gần đây, công nghệ cơ sở dữ liệu cho các hệ thống thông tin đã phát triển trải qua bốn thế hệ, và công nghệ cơ sở dữ liệu thế hệ thứ năm hiện nay đang được phát triển. Bước chuyển tiếp từ một thế hệ tới một thế hệ tiếp theo luôn luôn là cần thiết bởi sự gia tăng liên tục về độ phức tạp của các ứng dụng cơ sở dữ liệu và về chi phí thi hành, bảo trì, và mở rộng những ứng dụng này.
Thế hệ thứ nhất là hệ thống file, chẳng hạn như ISAM và VSAM. Thế hệ thứ hai là các hệ cơ sở dữ liệu phân cấp, chẳng hạn như IMS và System 2000. Thế hệ thứ ba là các hệ cơ sở dữ liệu CODASYL, chẳng hạn như IDS, TOTAL, ADABAS, IDMS, v. Các hệ thống thế hệ thứ hai và thứ ba đã thực hiện việc chia sẻ một cơ sở dữ liệu tích hợp giữa nhiều người trong một môi trường ứng dụng.
Sự thiếu tính độc lập dữ liệu và việc truy cập điều hướng khó khăn tới cơ sở dữ liệu dẫn đến công nghệ cơ sở dữ liệu thế hệ thứ tư, gọi là công nghệ cơ sở dữ liệu quan hệ. Công nghệ cơ sở dữ liệu quan hệ được đặc trưng bởi truy vấn khai báo. Công nghệ cơ sở dữ liệu thế hệ thứ năm sẽ được đặc trưng bởi một mô hình dữ liệu phong phú hơn và một tập các tiện ích cơ sở dữ liệu phong phú hơn cần thiết để đáp ứng những đòi hỏi của các ứng dụng ngoài các ứng dụng xử lý dữ liệu nghiệp vụ mà do nó 4 thế hệ công nghệ cơ sở dữ liệu trước đó đã được phát triển. Sự chuyển tiếp từ một thế hệ tới một thế hệ tiếp theo của công nghệ cơ sở dữ liệu đã được đánh dấu bằng việc trút bớt một số thủ tục kế toán chán ngắt và lặp lại từ các ứng dụng vào trong hệ cơ sở dữ liệu.
Điều này tạo ra sự thuận tiện cho các lập trình viên ứng dụng lập trình ứng dụng cơ sở dữ liệu; tuy nhiên, nó gây ra một vấn đề lớn cho sự thi hành của các hệ thống cơ sở dữ liệu và đòi hỏi những nghiên cứu và phát triển đáng kể để gia tăng sự thi hành của các hệ cơ sở dữ liệu thế hệ mới tới một mức có thể chấp nhận được. Điều này đặc biệt đúng với việc chuyển tiếp vào trong lĩnh vực các cơ sở dữ liệu quan hệ. Việc giới thiệu các truy vấn khai báo trong các cơ sở dữ liệu quan hệ làm nhẹ bớt cho những người lập trình ứng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 10 dụng khỏi những công việc nhỏ nhặt buồn tẻ của việc lập trình điều hướng khôi phục các bản ghi từ cơ sở dữ liệu. Tuy nhiên, một thành phần mới chính, tên là bộ tối ưu hoá truy vấn, đã được thêm vào hệ cơ sở dữ liệu để tự động đi đến một kế hoạch tối ưu cho việc xử lý bất kỳ truy vấn nào được đưa ra, chẳng hạn như kế hoạch sẽ tạo ra việc sử dụng các phương pháp truy cập phù hợp được cung cấp trong hệ thống.
Trong suốt những thập niên 70 các hoạt động nghiên cứu và triển khai về cơ sở dữ liệu đã tập trung vào việc mô tả công nghệ cơ sở dữ liệu quan hệ. Đỉnh điểm của những nỗ lực này là việc giới thiệu các hệ thống cung cấp thương mại cuối những năm 70 và đầu những năm 80, chẳng hạn như Oracle, SQL/DB và DB2 và INGRES. Tuy nhiên, công nghệ cơ sở dữ liệu quan hệ, cũng như mỗi công nghệ cơ sở dữ liệu thế hệ trước, đã được phát triển cho các ứng dụng xử lý dữ liệu nghiệp vụ, chẳng hạn như kiểm tra hàng tồn, bảng lương, sổ sách kế toán, v. Những nỗ lực để tạo ra việc sử dụng công nghệ cơ sở dữ liệu quan hệ trong một miền rộng các kiểu khác nhau của ứng dụng đã nhanh chóng phơi bày một số thiếu sót nghiêm trọng của công nghệ cơ sở dữ liệu quan hệ và thế hệ trước đây.
Các ứng dụng này bao gồm các hệ thống thiết kế, kỹ nghệ, công nghệ phần mềm và việc chế tạo được máy tính trợ giúp (CAD, CAE, CASE và CAM) và ứng dụng chạy trên chúng; các hệ thống dựa trên tri thức (các hệ chuyên gia và các shell hệ chuyên gia); Các hệ thống đa phương tiện đi kèm với các hình ảnh, âm thanh và các tài liệu nguyên bản và các hệ ngôn ngữ lập trình. Các hệ cơ sở dữ liệu quan hệ và thế hệ trước đây từ đây trở đi sẽ được gọi là các hệ cơ sở dữ liệu truyền thống. Chúng ta hãy xem qua một số thiếu sót đáng chú ý của công nghệ cơ sở dữ liệu truyền thống [6, 7]: Một mô hình cơ sở dữ liệu truyền thống, nhất là mô hình quan hệ, quá đơn giản để mô hình hoá các thực thể xếp lồng vào nhau phức tạp, chẳng hạn như các đối tượng thiết kế và công trình, và các tài liệu phức tạp LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 11 Các hệ cơ sở dữ liệu truyền thống chỉ hỗ trợ một tập hạn chế các kiểu dữ liệu nguyên tử, chẳng hạn như integer, string, v.v; chúng không hỗ trợ các kiểu dữ liệu tổng quát được tìm thấy trong các ngôn ngữ lập trình. Sự thi hành của các hệ cơ sở dữ liệu truyền thống, đặc biệt là các hệ cơ sở dữ liệu quan hệ là không thể chấp nhận được cho các kiểu khác nhau của các ứng dụng cần nhiều tính toán, chẳng hạn như các chương trình mô phỏng trong các môi trường thiết kế được máy tính trợ giúp và các môi trường ngôn ngữ lập trình.
Các chương trình ứng dụng được thi hành trong một số ngôn ngữ lập trình thuật toán (chẳng hạn như COBOL, FORTRAN, C) và một số ngôn ngữ cơ sở dữ liệu được nhúng vào trong nó. Các ngôn ngữ cơ sở dữ liệu là rất khác so với các ngôn ngữ lập trình, trong cả mô hình dữ liệu và cấu trúc dữ liệu. Vấn đề trở ngại ghép không khớp này đã thúc đẩy việc phát triển các ngôn ngữ thế hệ thứ tư (4GL). Mô hình các giao tác được hỗ trợ trong các hệ cơ sở dữ liệu truyền thống không thích hợp cho các giao tác trong khoảng thời gian dài cần thiết trong các môi trường thiết kế có tính cộng tác ảnh hưởng lẫn nhau.
Các hệ cơ sở dữ liệu truyền thống không hỗ trợ các tiện ích để biểu diễn và quản lý chiều thời gian trong các cơ sở dữ liệu, bao gồm khái niệm thời gian và các phiên bản của các đối tượng và lược đồ, và các thông báo thay đổi. Việc khám phá ra những thiếu sót của công nghệ cơ sở dữ liệu truyền thống đã cung cấp động lực cho các chuyên gia cơ sở dữ liệu trong phần lớn những năm 1980 để mở đường cho thế hệ thứ năm của công nghệ cơ sở dữ liệu. Công nghệ cơ sở dữ liệu thế hệ tiếp theo cần phải được xây dựng trên công nghệ cơ sở dữ liệu truyền thống và sát nhập các giải pháp cho nhiều vấn đề được phác hoạ ở trên để đáp ứng các đòi hỏi của các ứng dụng cơ sở dữ liệu hiện nay và mới nổi lên. Hiện nay có ít nhất hai cách tiếp cận được đề xuất cho việc chuyển tiếp từ công nghệ cơ sở dữ liệu thế hệ thứ tư sang công nghệ thế hệ thứ năm: công nghệ cơ sở dữ liệu LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 12 quan hệ mở rộng và công nghệ cơ sở dữ liệu hướng đối tượng.
Các khác biệt cơ bản giữa chúng là mô hình dữ liệu cơ sở và ngôn ngữ cơ sở dữ liệu. Tiếp cận cơ sở dữ liệu quan hệ mở rộng bắt đầu với mô hình dữ liệu quan hệ và một ngôn ngữ truy vấn quan hệ, và mở rộng chúng theo các cách khác nhau để cho phép việc mô hình hoá và thao tác đối với các mối quan hệ ngữ nghĩa và các tiện ích cơ sở dữ liệu cộng thêm. POSTGRES là hệ cơ sở dữ liệu thế hệ tiếp theo nổi tiếng nhất dựa trên tiếp cận quan hệ mở rộng. Tiếp cận hướng đối tượng, được chấp nhận trong hệ thống ORION của MCC và một số các hệ thống khác (chẳng hạn như Ontos, GemStone, IRIS, O2.) bắt đầu với một mô hình dữ liệu hướng đối tượng và một ngôn ngữ cơ sở dữ liệu nắm bắt nó, và mở rộng chúng theo các cách khác nhau cho phép cộng thêm các khả năng.
ThÕ hÖ thø nhÊt HÖ thèng tÖp ThÕ hÖ thø hai CSDL m¹ng vµ ph©n cÊp ThÕ hÖ thø ba C¬ së d÷ liÖu CODASYL ThÕ hÖ thø t- C¬ së d÷ liÖu quan hÖ ThÕ hÖ thø n¨m CSDL h-íng ®èi t-îng Hình 1. Sự phát triển của công nghệ cơ sở dữ liệu Một điểm quan trọng chúng ta phải nhìn nhận đó là một mô hình cơ sở dữ liệu hướng đối tượng là một nền tảng tự nhiên hơn một mô hình quan hệ mở rộng cho LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 13 việc khắc phục một số thiếu hụt của công nghệ cơ sở dữ liệu truyền thống được kể ra trước đây; ví dụ, hỗ trợ các kiểu dữ liệu tổng quát, các đối tượng xếp lồng nhau, và hỗ trợ các ứng dụng có nhiều tính toán. Có những khác biệt quan trọng giữa một mô hình cơ sở dữ liệu hướng đối tượng và mô hình cơ sở dữ liệu quan hệ. Một mô hình cơ sở dữ liệu hướng đối tượng bao gồm các khái niệm hướng đối tượng như bao gói, kế thừa và đa hình thái; những khái niệm này không phải là thành phần của các mô hình dữ liệu truyền thống.
Khác biệt giữa một hệ cơ sở dữ liệu hướng đối tượng và một hệ cơ sở dữ liệu không hướng đối tượng đó là một hệ cơ sở dữ liệu hướng đối tượng có thể trực tiếp hỗ trợ những nhu cầu của các ứng dụng, như là tạo và quản lý các đối tượng mang ngữ nghĩa hướng đối tượng, đó là các ngôn ngữ lập trình hướng đối tượng hoặc các ứng dụng được thiết kế trong một kiểu mẫu hướng đối tượng. Hơn nữa, một ngôn ngữ lập trình hướng đối tượng có thể được mở rộng thành một ngôn ngữ lập trình và cơ sở dữ liệu thống nhất.