Databases are increasingly merging the relational and document model worlds

Last Updated on Jan 27, 2021

One of the casualties of this schemaless database movement has been transactions. Most NoSQL databases have either completely abandoned support for transactions or redefined the word to describe a much weaker set of guarantees.

With the success of NoSQL databases, the development community sometimes incorrectly believes that it is difficult to adhere to transaction guarantees at scale and that applications that need transactions don't scale well. Conversely, developers assume that serious applications with valuable data cannot do without transactional guarantees.

Both ends of this assumption spectrum are wrong. The best kind of systems evaluate databases based on the guarantees they need, rather than sticking with wholesome data models like relational or schemaless.

Schemaless databases have their advantages in certain use cases, but one has to think about data architecture and transaction-dependent use cases. This is why NoSQL pioneers like MongoDB and Cassandra have tried to support transactions to some extent while retaining the partitioning and replication capabilities for scalability.

They have also added support for Joins between documents to protect referential integrity. But the nature of partitioning in these databases means that there will be performance penalties for joining data across documents.

On the other hand, relational databases have good transaction support but don't work well in schemaless or high scalability situations. Databases like Postgresql now support storing schemaless data like JSON and XML as columns in tables, with full ability to perform in-depth queries.

The development ecosystem is slowly moving towards a unified hybrid database model that supports all categories of databases - relational, schemaless/document, and graph.

© 2022 Ambitious Systems. All Rights Reserved.