Storage for Object Databases, Storage Management


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.