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 paperdescribes 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.