Introduction to ODBMS
An object database management system (ODBMS, also referred to as object-oriented
database management system or OODBMS), is a database management system (DBMS) that
supports the modelling and creation of data as objects. This includes some kind
of support for classes of objects and the inheritance of class properties and methods
by subclasses and their objects.
In their influential paper,
The Object-Oriented Database System Manifesto, Malcolm Atkinson and others
define an OODBMS in 1995 as follows: An object-oriented database system must satisfy
two criteria: it should be a DBMS, and it should be an object-oriented system, i.e.,
to the extent possible, it should be consistent with the current crop of object-oriented
programming languages. The first criterion translates into five features: persistence,
secondary storage management, concurrency, recovery and an ad hoc query facility.
The second one translates into eight features: complex objects, object identity,
encapsulation, types or classes, inheritance, overriding combined with late binding,
extensibility and computational completeness. Their
paper describes each of these features in detail.
There is currently no widely agreed-upon standard for what constitutes an ODBMS
and no standard query language to ODBMS equivalent to what SQL is to RDBMS (relational
DBMS.) Initiatives by an industry group, the Object
Data Management Group (ODMG), to create a standardized Object Query Language
(OQL) have been abandoned in 2001. JSR
12's Java Data Objects (JDO) has been another attempt to standardize data
access that has not seen adoption by the mainstream. More recent research (2005) by William Cook
suggests to use the programming language itself, e.g. Java or .NET, to query objects and thus make a separate OO
query standard redundant (Read
more about Native Queries).
ODBMS were originally thought of to replace RDBMS because of their better fit with
object-oriented programming languages. However, high switching cost, the inclusion
of object-oriented features in RDBMS to make them ORDBMS, and the emergence of object-relational
mappers (ORMs) have made RDBMS successfully defend their dominance in the data center
for server-side persistence.
Object databases are now established as a complement, not a replacement for relational
databases. They found their place as embeddable persistence solutions in devices,
on clients, in packaged software, in real-time control systems, and to power websites.
The open source community has created a new wave of enthusiasm that's now fueling
the rapid growth of ODBMS installations.