# Object database

An object database or object-oriented database is a database that is based on the object database model. In contrast to the relational database , data is managed here as objects in the sense of object orientation . The associated database management system is referred to as the object-oriented database management system. The object database and the object database management system together form the object database system .

An object normally models an object or concept and in particular contains associated attributes ; for example, the color and weight of a car belong to the object car. Attributes describe an object in more detail. Data and methods (the functions for accessing the data) are stored together in the objects.

## Object database management system

The database management system (DBMS) is the software that is required to manage a database. In the case of an object database, this is referred to as the object database management system (ODBMS). The ODBMS is responsible for the storage and reliable access to the data. In addition to the classic properties of a DBMS, it has to meet the following additional requirements in order to be used as a full-fledged ODBMS:

• Management of complex objects . An object is made up of any other data types .
• Ensuring the object identity . Each object is given a system-wide unique identification OID .
• Encapsulation of the objects according to the concept of object-oriented programming. The object is accessed using methods.
• Objects are assigned to an object class .
• Object classes are arranged in a class hierarchy .
• The overloaded methods are used on inherited objects through late binding .
• The ODBMS must provide a Turing Complete Manipulation Language (DML) .

In addition to these properties, there are a number of optional requirements that are not detailed here. They were determined at the DOOD '98 conference .

As a query language was from the ODMG language Object Query Language (OQL) standardized. Object Definition Language (ODL) is used as the data manipulation language.

Object database systems close a gap that arises in the programming of modern database applications when the application was developed in an object-oriented programming language, but the database is a classic relational database system. Both concepts contradict each other on some important points. This problem is commonly referred to as the " object-relational impedance mismatch ". So-called object - relational maps are used as a solution to the problem . These are software components that mediate between a relational database and object-oriented software. The use of an object database system makes this mediation superfluous. The application can communicate directly with the database.

There is no need to assemble complex data objects by means of joins across multiple database tables. Objects can be easily queried via the relationships stored in the database.

An ODBMS also helps with access to data. Since objects can have a complex structure, semantic relationships between objects are known to the database system. The database system therefore has an understanding of which data belong together. This knowledge can be used in querying the data using a query language such as OQL. In contrast to relational database systems, the result of a query is not a set of data records. OQL allows individual objects to be queried.

It also solves the problem of object identity. While with relational databases the database developer often has to add an artificially generated key ( surrogate key ) to his data, this is done automatically by an ODBMS in the form of an OID. The management of these IDs is completely taken over by the system.

Object databases are still not widely used. Accordingly, many interfaces and tools such as JDBC / ODBC , ETL or OLAP are not prepared for use with an ODBMS.

The interfaces between the application program and the object database are not standardized, so that in the event of problems, the database system can only be subsequently replaced with a more powerful one with immense effort. In the case of object-relational mapping, on the other hand, there are several established solutions that offer access to relational database systems that have been tried and tested in mass use and are used in countless projects.

Object databases are still at a disadvantage compared to relational databases for certain queries. This is caused, for example, by access paths to objects over several types of path (e.g. inheritance and association). During write operations in lock management, this leads to exponential complexity and thus to performance problems. The performance problems were taken up in the object-relational databases, in which only the constructs from object-oriented databases with lower complexity (e.g. ) were adopted. ${\ displaystyle n \ cdot \ log (n)}$

## history

Object databases were developed in the late 1980s. Thus they belong to the comparatively new database concepts. To date, they play a rather minor role in the database market, which is dominated by relational database systems. Nevertheless, several object database systems such as db4o have been developed since 2004 , some of which are available as open source .