What Are Object-Oriented Databases And Their Advantages

In this article, you will learn what object-oriented databases are what are their advantages.

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

 
Object database management systems (ODBMSs) are based on objects in object-oriented programing (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, use of an object, and 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.
 
The idea of object databases was 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.
 
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

 
ODBMS provide 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.
 
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.
Object databases bring permanent persistent to objects. Objects can be stored in persistent storage forever.
 
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.
 
Some object database can be used in multiple languages. For example, Gemstone database supports C++, Smalltalk and Java programming languages.
 

Drawbacks of Object Databases

  • Object databases are not as popular as RDBMS. It is difficult to find object DB developers. 
  • Not many programming language support object databases. 
  • RDBMS have SQL as a standard query language. Object databases do not have a standard. 
  • Object databases are difficult to learn for non-programmers.

Popular Object Databases

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

Cache

 
InterSystems’s Caché is a high-performance object database. Caché database engine is a set of services including data storage, concurrency management, transactions, and process management. You can think of the Caché engine as a powerful database toolkit.
 
Caché is also a full-featured relational database. All the data within a Caché database is available as true relational tables and can be queried and modified using standard SQL via ODBC, JDBC, or object methods. Caché is one of the fastest, most reliable, and most scalable relational databases.
 
Cache offers the following features,
  • The ability to model data as objects (each with an automatically created and synchronized native relational representation) while eliminating both the impedance mismatch between databases and object-oriented application environments as well as reducing the complexity of relational modeling, 
  • A simpler, object-based concurrency model 
  • User-defined data types 
  • The ability to take advantage of methods and inheritance, including polymorphism, within the database engine 
  • Object-extensions for SQL to handle object identity and relationships 
  • The ability to intermix SQL and object-based access within a single application, using each for what they are best suited 
  • Control over the physical layout and clustering used to store data in order to ensure the maximum performance for applications 
Cache offers a broad set of tools, which include,
  • ObjectScript, the language in which most of Caché is written. 
  • Native implementations of SQL, MultiValue, and Basic. 
  • A well-developed, built-in security model 
  • A suite of technologies and tools that provide rapid development for database and web applications 
  • Native, object-based XML and web services support 
  • Device support (such as files, TCP/IP, printers) 
  • Automatic interoperability via Java, JDBC, ActiveX, .NET, C++, ODBC, XML, SOAP, Perl, Python, and more
  • Support for common Internet protocols: POP3, SMTP, MIME, FTP, and so on
  • A reusable user portal for your end users
  • Support for analyzing unstructured data
  • Support for Business Intelligence (BI)
  • Built-in testing facilities

ConceptBase

 
ConceptBase.cc is a multi-user deductive database system with an object-oriented (data, class, metaclass, meta-metaclass, etc.) makes it a powerful tool for metamodeling and engineering of customized modeling languages. The system is accompanied by a highly configurable graphical user interface that builds upon the logic-based features of the ConceptBase.cc server.
 
ConceptBase.cc is developed by the ConceptBase Team at University of Skövde (HIS) and the University of Aachen (RWTH). ConceptBase.cc is available for Linux, Windows, and Mac OS-X. There is also a pre-configured virtual appliance that contains the executable system plus its sources plus the tools to compile them. The system is distributed under a FreeBSD-style license.
 

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.A 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. 
  • ObjectDB Database Key Features
  • 100% pure Java Object-Oriented Database Management System (ODBMS).
  • No proprietary API - managed only by standard Java APIs (JPA 2 / JDO 2).
  • Extremely fast - faster than any other JPA / JDO product.
  • Suitable for database files ranging from kilobytes to terabytes.
  • Supports both Client-Server mode and Embedded mode.
  • Single JAR with no external dependencies.
  • The database is stored as a single file.
  • Advanced querying and indexing capabilities.
  • Effective in heavy loaded multi-user environments.
  • Can easily be embedded in applications of any type and size.
  • Tested with Tomcat, Jetty, GlassFish, JBoss, and Spring.

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

 
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.
 
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.
 
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.
 
Objectivity/DB generally runs on POSIX filesystems, but there are plugins that can be modified for other storage infrastructure.
 
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

 
ObjectStore is an enterprise object-oriented database management system for C++ and Java.
 
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
 
ObjectStore eliminates 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
 
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

 
Versant Object-Oriented Database is an object database that supports native object persistence and used to build complex and high-performance data management systems.
 
Key Benefits
  • Real-time analytical performance
  • Big Data management
  • Cut development time by up to 40%
  • Significantly lower total ownership cost
  • High availability

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 database (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
  • https://en.wikipedia.org/wiki/Object_database
  • https://en.wikipedia.org/wiki/Comparison_of_object_database_management_systems
  • https://cedocs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GIC_intro