ObjectStore lưu trữ cỏc đối tượng một cỏch trực tiếp trong cơ sở dữ liệu, với sự nguyờn vẹn cỏc mối quan hệ của chỳng. Điều này cho phộp truy vấn dữ liệu đối tượng bằng việc điều hướng cỏc mối quan hệ giữa cỏc đối tượng thay vỡ làm cỏc kết nối bảng quan hệ với cỏc truy vấn SQL. Nú cũng cung cấp tớnh linh hoạt để kết cụm
cỏc đối tượng trong cơ sở dữ liệu (vớ dụ, một khỏch hàng với tất cả cỏc đơn hàng của anh ta), cho phộp ObjectStore lấy về cỏc đối tượng cú liờn quan với sự đọc đĩa đơn nhất tới sự thi hành cơ sở dữ liệu nổi tiếng xa hơn.
Mụ hỡnh dữ liệu của ObjectStore là một mở rộng của ngụn ngữ lập trỡnh hướng đối tượng Java hoặc C++. Tất cả cỏc chức năng cơ sở dữ liệu cần thiết cú thể được truy cập thụng qua một giao diện thư viện. Thư viện giới thiệu cỏc lớp tập hợp bao gồm set, bag, và list. Cỏc tập hợp và truy vấn trờn cỏc tập hợp được hỗ trợ trong thư viện. Cỏc thao tỏc liờn quan đến tập, cập nhật và tớnh lặp cũng được hỗ trợ bởi cỏc lớp đú [7, 22].
2.2. PSE Pro
PSE Pro - một phiờn bản thu gọn của ObjectStore, là một giải phỏp quản trị cơ sở dữ liệu hướng đối tượng đa luồng được thiết kế cho cỏc ứng dụng cú nhiều giao dịch, nhỳng và đơn người dựng. PSE Pro cung cấp một tập đầy đủ cỏc dịch vụ dữ liệu bền vững cho những người phỏt triển Java và C++ [1, 15, 19].
Với thành phần chớnh là một động cơ lưu trữ bền vững gọn nhẹ, PSE Pro cho phộp lưu trữ và tỡm kiếm cỏc đối tượng dưới khuụn dạng nhiờn của nú. Khi khụng sử dụng PSE Pro, muốn phỏt triển cỏc ứng dụng Java và C++ chỳng ta phải lưu trữ dữ liệu trong cỏc tệp phẳng hoặc cỏc cơ sở dữ liệu quan hệ, rồi viết mó trỡnh để chuyển đổi qua lại giữa khuụn dạng đối tượng và cỏc khuụn dạng khỏc. Cụng việc này là khỏ phức tạp, dễ xảy ra lỗi, và khú bảo trỡ. PSE Pro loại bỏ những vấn đề này khi hỗ trợ:
Một kiến trỳc ỏnh xạ bộ nhớ ảo hiệu năng cao
Một giao diện trỡnh ứng dụng (API) dễ sử dụng và dễ học
Kiến trỳc ỏnh xạ bộ nhớ đảm bảo tối ưu hoỏ tốc độ truy cập bằng việc sử dụng cỏc con trỏ bộ nhớ ảo thụng thường thay cho cỏc con trỏ mềm. Với cỏc lược đồ trỏ mềm, hệ thống phải kiểm tra tổng chi phớ của tất cả cỏc thao tỏc huỷ tham chiếu con trỏ để quyết định đối tượng được trỏ tới đó được truyền vào bộ nhớ chương trỡnh
hay chưa. Với PSE Pro, việc kiểm tra được bỏ qua cho cỏc đối tượng đó được truyền. Trỏ tới cỏc đối tượng đó được truyền là cỏc con trỏ bộ nhớ ảo được xử lý ở tốc độ phần cứng.
Giao diện trỡnh ứng dụng của PSE Pro sẽ giỳp chỳng ta tận dụng được thành quả của những đặc trưng trờn mà khụng cần thay đổi cấu trỳc của ứng dụng. Khỏc biệt duy nhất đú là lớp tài liệu của ứng dụng được dẫn xuất từ một lớp tài liệu PSE Pro đặc thự, lớp tư liệu này sử dụng PSE Pro cho mục đớch bền vững thay vỡ chuỗi hoỏ đối tượng [1, 20, 21].
2.2.1. Kiến trỳc PSE Pro
PSE Pro lưu trữ một đối tượng C++ dưới khuụn dạng tự nhiờn của đối tượng. Một cơ sở dữ liệu bao gồm nhiều trang, cỏc trang này chứa cỏc đối tượng C++ được sắp xếp theo đỳng trật tự chỳng sẽ xuất hiện trong bộ nhớ ảo. Khi một ứng dụng mở một cơ sở dữ liệu, PSE Pro sẽ dự phũng sẵn một dải cỏc địa chỉ bộ nhớ ảo chưa được ỏnh xạ cho toàn bộ dữ liệu của cơ sở dữ liệu. Điều này đảm bảo rằng dải địa chỉ khụng được sử dụng cho mục đớch nào khỏc ngoài việc dành cho cỏc trang của cơ sở dữ liệu, và cũng đảm bảo rằng cơ sở dữ liệu được ỏnh xạ tới một miền liờn tiếp của bộ nhớ ảo (Hỡnh 15).
Miền dành sẵn
Bộ nhớ ảo
Cơ sở dữ liệu Trang cơ sở dữ liệu