Object DBMSs add database functionality to object programming
languages. They bring much more than persistent storage of
programming language objects. Object DBMSs extend the semantics of
the C++, Smalltalk and Java object programming languages to provide
full-featured database programming capability, while retaining
native language compatibility. A major benefit of this approach is
the unification of the application and database development into a
seamless data model and language environment. As a result,
applications require less code, use more natural data modeling, and
code bases are easier to maintain. Object developers can write
complete database applications with a modest amount of additional
effort
In contrast to a relational DBMS where a complex data structure
must be flattened out to fit into tables or joined together from
those tables to form the in-memory structure, object DBMSs have no
performance overhead to store or retrieve a web or hierarchy of
interrelated objects. This one-to-one mapping of object programming
language objects to database objects has two benefits over other
storage approaches: it provides higher performance management of
objects, and it enables better management of the complex
interrelationships between objects. This makes object DBMSs better
suited to support applications such as financial portfolio risk
analysis systems, telecommunications service applications, world
wide web document structures, design and manufacturing systems, and
hospital patient record systems, which have complex relationships
between data. (ODMG)