Object oriented databases
What Are Object Oriented Databases?
Object oriented databases are database management systems that store and retrieve data as objects, preserving the structure, behavior, and identity defined in an object-oriented programming model rather than translating data into rows and columns as relational systems do. An object in this context is a self-contained unit combining data fields (attributes) and the procedures that operate on them (methods), and the database maintains these associations across persistent storage. Object oriented databases emerged in the mid-1980s as a response to the object-relational impedance mismatch: the friction developers encountered when mapping complex, behavior-rich application objects onto flat relational tables required significant transformation code that degraded performance and complicated maintenance.
The field draws on both database theory and the programming language research behind Smalltalk, C++, and subsequent object-oriented languages. Organizations such as the Object Data Management Group formalized requirements and vocabulary, culminating in the ODMG 3.0 standard, which defined the Object Definition Language, the Object Query Language, and bindings for C++, Java, and Smalltalk.
Data Model and Object Identity
The central organizing concept of an object oriented database is object identity (OID): each object carries a system-assigned identifier that persists independently of the object's attribute values, unlike relational primary keys which are data-level constructs that can change. OIDs allow objects to reference one another directly, supporting complex graph-structured data without the join operations that relational queries require. Class hierarchies and inheritance are first-class constructs in the schema, so a database of engineering components can define a generic Part class and derive specialized subclasses that inherit shared attributes while adding type-specific ones. The ODBMS.org introduction to object database management systems provides a formal definition of these structural properties and contrasts them with the relational and object-relational alternatives.
Query Language and ODMG Standards
The Object Query Language (OQL), specified in the ODMG standard, provides SQL-like syntax adapted to an object model. Queries in OQL can traverse object references as path expressions (e.g., part.supplier.address.city), invoke methods on objects within query predicates, and return typed collections of objects rather than flat tuples. This path-expression navigation avoids the multi-table join sequences that equivalent relational queries would require for deeply nested data. The ODMG standard also specified collection types including sets, bags, lists, and arrays, allowing query results to map directly to the in-memory collections familiar to application programmers. Practical implementations such as ObjectStore and Versant extended these capabilities with indexing, transaction management, replication, and cache-coherence protocols designed for applications where objects are large and complex. ScienceDirect's overview of oriented database systems surveys these implementations and their commercial trajectories.
Comparison with Relational and Object-Relational Systems
Relational database systems represent data as normalized tables of tuples and use SQL for declarative queries, offering mature tooling, well-understood query optimization, and broad industry adoption. Object oriented databases sacrifice some of this maturity for a tighter alignment with object-oriented application code, reducing or eliminating impedance mismatch at the cost of weaker ad-hoc query tooling and a smaller ecosystem. Object-relational databases such as PostgreSQL occupy a middle position, extending the relational model with user-defined types, inheritance, and method invocation while preserving SQL semantics. Modern research contexts increasingly use object-document stores such as MongoDB, which store JSON-like documents and partially recapture object structure without a formal OID system. The ACM paper on metrics for object oriented design provides foundational measures applicable to schema quality in object oriented databases as well as programming systems.
Applications
Object oriented databases have applications in a range of fields, including:
- Computer-aided design and manufacturing (CAD/CAM) systems with complex part hierarchies
- Telecommunications network management storing device configuration objects
- Multimedia content management for video, audio, and image asset repositories
- Geographic information systems with heterogeneous spatial object types
- Engineering simulation environments requiring persistent complex data structures