Object-Relational Mapping

"Pure ODBMSs" employ the object-oriented data model even at the storage level. Systems with similar functionality, but different performance, have also been built on top of relational DBMSs. They are called object-relational mediators, or wrappers, and perform object-relational mapping: classes are mapped into relational tables, and objects are mapped into tuples. In these systems, objects are stored in tuple-ized form.

An object-relational mediator, along with a relational DBMS, implements an ODBMS. To stress the architectural differences between such ODBMS and a fully object-oriented one, the latter is sometimes referred to as an OODBMS. For a defense of object-relational mapping and a description of Penguin, a research prototype based on this approach, see here. The C++ binding of Penguin is discussed here. Persistence, DBconnect, and Subtleware are examples of commercially available systems in this category.

Rather than using the memory image approach to object storage, mediators perform object/tuple conversion and keep tuple-ized objects in a relational DBMS. At the programming level, however, an object-relational mediator looks like an OODBMS. As in most OODBMSs, a smart pointer scheme is used to integrate persistence into the C++ environment, and objects are cached at the client side, in a way transparent to the programmer. A tool is provided to generate the object/tuple conversion code, given descriptions of both the object schema and the underlying relational schema.

Ultimately, an object-relational mediator uses SQL to interact with its relational back-end. Because this takes much longer than the client-server interactions in an OODBMS, object caching is yet more crucial for object-relational mediators.

Object-relational mapping is attractive to integrate legacy databases into an object-oriented environment. Some object-relational mediators allow an object structure to be superimposed onto an existing relational database. The superimposed object structure can even include user-defined methods, through which the relational data may be accessed in a fully object-oriented fashion.


The ORB/ODBMS Integration Page Francisco Reverbel's Home Page

[HTML 3.0 (Beta) Checked!]

--> Last modified:
Francisco Reverbel
reverbel@acl.lanl.gov