Many modern applications today require database management capabilities that don’t fit nicely into one single bucket. For example, when I build an application to support a travel recommendation and booking business, I might need to use a number of different types of databases, including a key-value store for user sessions, a document database for the product catalog, a graph database for recommendations, and a relational database for the financial data.
The days of the one size fits all database – pick a (relational) database and you’re good to go – are far behind us. And for very good reasons. While relational databases continue to be the right choice for many applications, for certain types of applications non-relational databases offer advantages that relational databases simply cannot provide.
Relational databases represent data in tables and rows, and use Structured Query Language (SQL) to access and manipulate the data. They are a great choice for transactional applications requiring reliability and ACID (Atomicity, Consistency, Isolation, and Durability) guarantees, and the efficiency and simplicity of SQL for querying and reporting. But relational databases come with a cost; they require database administrators, adherence to pre-defined relational structures, and do not scale as economically as data sizes and workloads increase. Still, relational databases are the right choice for – and continue to power – many mission critical applications.
In comparison, non-relational databases, including document, object, graph, and key-value databases for example, offer certain advantages over relational databases – especially around flexibility and scaling. Non-relational databases do not require DBAs to create pre-defined schema, and application developers are able to store and manage data much more easily, without concerns about mapping to fixed data structures.
Fortunately, all of these different kinds of DBMS technologies are mature, robust, and available, and provide application developers with a rich range of capabilities they can leverage in their applications.
There are literally hundreds of databases available in the marketplace today; non-relational databases account for roughly half of all databases deployed to production.
But incorporating multiple database technologies into an application is not always so simple.
One approach to multi-model – called polyglot persistence – employs different databases to support each type of data structure. It’s a best of breed approach. But implementing, synchronizing, and maintaining different database systems throughout the lifecycle of the application is complex and error prone.
Another approach is to use what the industry refers to as a multi-model database; one that supports various data representations in the same “product.” But not all multi-model databases are the same. Some adhere to the polyglot paradigm and employ multiple, separate database engines for different data representations, incurring duplication of data, and requiring mapping and integration across the different data stores. And some support different models within the engine, but not on the same data.
Here at InterSystems, we’ve developed a pure approach to multi-model database management. Our product, InterSystems IRIS Data Platform stores one single representation of the data. And it leverages a single database engine that supports both relational and non-relational access to and manipulation of the data without duplication. For non-relational access, it doesn’t require a pre-defined schema. It provides transactional ACID guarantees, can scale both vertically and horizontally, and supports on premise, public and private cloud environments, and hybrid (public/public, public/private, cloud/on-prem) deployment environments. The same data can be accessed and manipulated using SQL, or as documents, objects, or key-value data. Application developers don’t need to work with multiple databases, or integrate and synchronize data across multiple data stores.
Our approach to multi-model provides the benefits of both relational and non-relational technologies, without any of the disadvantages, and without the complexities or inefficiencies associated with polyglot persistence. All in one single DBMS that we built from the ground up.
David Menninger, SVP and research director at Ventana Research, and longtime industry veteran, has written an insightful analysis of the need for multiple data representations, and the advantages and disadvantages of the various approaches to multi-model databases. You can read his report here.