RDBMS vs NoSQL Databases
RDBMS and NoSQL databases can also be categorized as structured vs unstructured databases or relational vs non-relational databases.
Relational database management systems (RDBMS) are sometimes referred to as SQL databases since they use Structured Query Language (SQL) as the standard user and application program interface (API). These databases were designed in the 1970s, with the first practical and efficient implementation in 1973. Subsequent market leaders include database versions from Oracle, IBM, and Microsoft. RDBMS databases are designed to store structured data and use relationships between tables to join data. They are not typically used to store large unstructured data types like image, music and video data.
NoSQL databases are designed to store unstructured data which doesn’t follow a predefined schema. They are better at storing large amounts of data and large data types—like video, music and image data.
Unlike relational databases, NoSQL databases follow a flexible data model, making them ideal for storing data that changes frequently or for applications that handle diverse data types.
NoSQL databases, introduced in the 2000s, focus on supporting horizontal write scalability without compromising the performance observed in the single-node, monolithic SQL databases dominant at that time. The compromise instead come in the form of eventual consistency (i.e. an inability to guarantee that a read will access the latest update — no ACID transactions) and the loss of multi-key access patterns (such as SQL integrity/foreign key constraints and JOINs).
NoSQL queries could typically access only a single key (or a range of nearby keys) at a time. Even a read-your-own-write consistency guarantee was considered out of norm. The failure of an eventually consistent database could lead to a value that was either never committed in the database or was completely out of order. Given these fundamental limitations, developers continued to use monolithic SQL databases for business-critical transactional workloads. The use of NoSQL became limited to those ever-growing workloads that had less business-critical data needs.
RDBMS, NoSQL, and Distributed SQL
Distributed SQL databases, which combine the key capabilities of RDBMS and NoSQL databases, are becoming popular with organizations interested in moving transactional applications and their underlying data to modern cloud or cloud native environments. This is often motivated by the desire to reduce TCO and move away from the horizontal scaling limitations of monolithic RDBMS and eventual consistency limitations of NoSQL databases.