Storage for Object Databases
Data storage in an ORDBMS is more or less unchanged from what
it was in the RDBMS. Data is organised into pages. A set of pages holds all
data for a particular table.
Blocks Of memory are reserved by the ORDBMS for caching
frequently accessed pages to avoid the cost of going to disk each time the page
is touched. As data is accessed through queries, pages are read from disk and
ejected from the memory cache.
Whenever the ORDBMS invokes some user-defined logic as part
of query execution it first reads relevant data pages from disk into the memory
cache. Changed pages, or infrequently accessed pages, may be written back to
disk if the cache is full.
As it invokes the logic, the ORDBMS passes pointers to the
memory resident data as arguments. The ORDBMS does not care what the function
does, or how it does it. All it cares about is the logic's return value.
Storage Management
Traditionally the main purpose of a DBMS was to centralise
and organise data storage. A DBMS program ran on a single, large machine. It
would take blocks of that machine's disk space under its control and store data
in them.
Over time, RDBMS products came to include ever more sophisticated
data structures and ever more efficient techniques for memory caching, data
scanning, and storage of large data objects.
In spite of these improvements, only a fraction of an
organisation's data can ever be brought together into one physical location.
Data is often distributed among many systems, which is the consequence of
autonomous information systems development using a variety of technologies, or
through organisational mergers, or because the data is simply not suitable for
storage in any DBMS. To address this, the IDS product adds a new extensible
storage management facility.
ORDBMSs possess storage manager facilities similar to RDBMSs. Disk space is taken under the control of the ORDBMS, and data is written into it according to whatever administrative rules are specified. All the indexing, query processing, and cache management techniques that are part of an RDBMS are also used in an ORDBMS.
Further, distributed database techniques can be adapted to
incorporate user- defined types and functions. However, all of these mechanisms
must be re- implemented to generalise them so that they can work for
user-defined types
One can also integrate code into the engine to implement an
entirely new storage manager. Developers still use OR-SQL as the primary
interface to this data, but instead of relying on internal storage, the ORDBMS
can use the external file system to store data. Any data set that can be
represented as a table can be accessed using this technique.