An object-oriented database (OODBMS) or object database management system (ODBMS) is a database that is based on object-oriented programming (OOP). The data is represented and stored in the form of objects. OODBMS are also called object databases or object-oriented database management systems.

A database is a data storage. A software system that is used to manage databases is called a database management system (DBMS). There are many types of database management systems such as hierarchical, network, relational, object-oriented, graph, and document. Learn more here, Types of Database Management Systems.

In this article, we will discuss what object-oriented databases are and why they are useful.

Object-Oriented Database

  1. Object database management systems (ODBMSs) are based on objects in object-oriented programming (OOP). In OOP, an entity is represented as an object, and objects are stored in memory. Objects have members such as fields, properties, and methods. Objects also have a life cycle that includes the creation of an object, the use of an object, and the deletion of an object. OOP has key characteristics, encapsulation, inheritance, and polymorphism. Today, there are many popular OOP languages such as C++, Java, C#, Ruby, Python, JavaScript, and Perl.
  2. The idea of object databases originated in 1985 and today has become common for various common OOP languages, such as C++, Java, C#, Smalltalk, and LISP. Common examples are Smalltalk is used in GemStone, LISP is used in Gbase, and COP is used in Vbase.
  3. Object databases are commonly used in applications that require high performance, calculations, and faster results. Some of the common applications that use object databases are real-time systems, architectural & engineering for 3D modeling, telecommunications, and scientific products, molecular science, and astronomy.

Advantages of Object Databases

  1. ODBMS provides persistent storage to objects. Imagine creating objects in your program and saving them as it is in a database and reading back from the database.
  2. In a typical relational database, the program data is stored in rows and columns. To store and read that data and convert it into program objects in memory requires reading data, loading data into objects, and storing it in memory. Imagine creating a class in your program and saving it as it is in a database, reading back, and start using it again.
  3. Object databases bring permanent persistence to objects. Objects can be stored in persistent storage forever.
  4. In typical RDBMS, there is a layer of object-relational mapping that maps database schemas with objects in code. Reading and mapping an object database data to the objects is direct without any API or OR tool. Hence faster data access and better performance.
  5. Some object databases can be used in multiple languages. For example, the Gemstone database supports C++, Smalltalk, and Java programming languages.

Drawbacks of Object Databases

Popular Object Databases

Here is a list of some of the popular object databases and their features.

Cache

Cache offers the following features,

Cache offers a broad set of tools, which include,

ConceptBase

Db4o

b4o is the world's leading open-source object database for Java and . NET. Leverage fast native object persistence, ACID transactions, query-by-example, S.O.D.An object query API, automatic class schema evolution, small size.

ObjectDB Object Database

ObjectDB is a powerful Object-Oriented Database Management System (ODBMS). It is compact, reliable, easy to use, and extremely fast. ObjectDB provides all the standard database management services (storage and retrieval, transactions, lock management, query processing, etc.) but in a way that makes development easier and applications faster.

ObjectDatabase++

ObjectDatabase++ (ODBPP) is an embeddable object-oriented database designed for server applications that require minimal external maintenance. It is written in C++ as a real-time ISAM-level database with the ability to auto-recover from system crashes while maintaining database integrity.

Objectivity/DB

  1. Objectivity/DB is a scalable, high-performance, distributed Object Database (ODBMS). It is extremely good at handling complex data, where there are many types of connections between objects and many variants.
  2. Objectivity/DB runs on 32 or 64-bit processors running Linux, Mac OS X, UNIX (Oracle Solaris) or Windows.

There are C++, C#, Java, and Python APIs.

  1. All platform and language combinations are interoperable. For example, objects stored by a program using C++ on Linux can be read by a C# program on Windows and a Java program on Mac OS X.
  2. Objectivity/DB generally runs on POSIX filesystems, but there are plugins that can be modified for other storage infrastructures.
  3. Objectivity/DB client programs can be configured to run on a standalone laptop, networked workgroups, large clusters, or in grids or clouds with no changes to the application code.

ObjectStore

  1. ObjectStore is an enterprise object-oriented database management system for C++ and Java.
  2. ObjectStore delivers multi-fold performance improvement by eliminating the middleware requirement to map and convert application objects into flat relational rows by directly persisting objects within an application into an object store.
  3. ObjectStore eliminates the need to flatten complex data for consumption in your application logic reducing the overhead of using a translation layer that converts complex objects into flat objects, dramatically improving performance and often entirely eliminating the need to manage a relational database system.
  4. ObjectStore is OO storage that directly integrates with Java or C++ applications and treats memory and persistent storage as one – improving the performance of application logic while fully maintaining ACID compliance against the transactional and distributed load.

Versant Object Database

A Versant Object-Oriented Database is an object database that supports native object persistence and is used to build complex and high-performance data management systems.

Key Benefits

WakandaDB

WakandaDB is an object database and provides a native REST API to access interconnected DataClasses defined in Server-Side JavaScript. WakandaDB is the server within Wakanda which includes a dedicated, but not mandatory, Ajax Framework, and a dedicated IDE.

Object-relational Databases

Object-relational databases (ORD), or object-relational database management systems (ORDBMS) are databases that support both objects and relational database features. OR databases are relational database management systems with the support of an object-oriented database model. That means the entities are represented as objects and classes and OOP features such as inheritance are supported in database schemas and in the query language.

PostgreSQL is the most popular pure ORDBMS. Some popular databases including Microsoft SQL Server, Oracle, and IBM DB2 also support objects and can be considered as ORDBMS.

References