The tl;dr History of NoSQL

(It actually stands for “not only SQL")

Coined in 1998 by Carlo Strozzi, the creator of the open-source relational database Strozzi NoSQL, the first use of the term “NoSQL" had nothing to do with the term as we use it today. It took a good decade for the term to hit mainstream, thanks to a successful Twitter hashtag which described the then-database advancements at the time. Today, NoSQL databases account for 3% of the database market. And growing.

Non-relational or NoSQL databases were born out of the rigidity of traditional relational or SQL databases, which use tables, columns, and rows to establish relationships across data. Developers welcomed NoSQL databases because they didn’t require an upfront schema design; they were able to go straight to development. And it’s this flexibility – this “ad-hoc" approach to organizing data – that has arguably been NoSQL’s greatest selling point, which continues to appeal to companies that need to store unstructured or rapidly changing data.

NoSQL Database Types

Some articles mention four main types, others six, but in this post we’ll go through the five main types of NoSQL databases, namely wide-column store, document store, key-value store, graph store, and multi-model.

A typical column family contains a row key as the first column, which uniquely identifies that row within the column family. The following columns then contain a column key, which uniquely identifies that column within the row, so that you can query their corresponding column values.

To better illustrate, here’s how data in a table would translate to a column family:

Document Store

Document store databases use JSON, XML, or BSON documents to store data. You can pretty much fill in a document with whatever data you want. Documents can have different structures, but you can index common fields for faster performance.

Key-Value Data Store

Key-value databases store data in unique key-value pairs, meaning each key is associated only with one value in a collection, like in a dictionary. This makes querying a key-value data store fast because of its simple model. There’s no query language needed. Data retrieval is a simple matter of using get, put, and delete commands.

Graph Store

Nodes and relationships are the bases of graph databases. A node represents an entity, like a user, category, or a piece of data. A relationship represents how two nodes are associated.

Graph databases use nodes that contain lists of relationship records. These records represent relationships with other nodes, which eliminates the (time-consuming) search-match operation found in relational databases.

The image below shows how a relational database like MySQL works, which use memory-intensive and more complicated join operations to search entire tables to find a match:

Multi-Model

It’s clear that the four previous NoSQL database types have their respective advantages, which is why the multi-model database has emerged as another popular option in recent years. As its name suggests, a multi-model database combines the capabilities of wide-column, graph, document, and key-value databases. More supported data models within one database means more versatility for you – the end user – in the way you store your data.

We hope this guide helps you get an idea of which NoSQL database type to choose for your app or project. And don’t forget – if you’ve already identified MongoDB as the database for the job, get more done and download Studio 3T, available for Windows, macOS, and Linux.

Happy to hear it, Ashkan! We did mean CouchBase, specifically their Community Edition (https://www.couchbase.com/downloads), but it’s definitely worth mentioning that their other edition (Enterprise) is not open-source and isn’t free for production use.

Happy to hear it, Ashkan! We did mean CouchBase, specifically their Community Edition (https://www.couchbase.com/downloads), but it's definitely worth mentioning that their other edition (Enterprise) is not open-source and isn't free for production use.

Tags list

Studio 3T

Studio 3T helps thousands of MongoDB developers and administrators with their everyday jobs by providing the finest MongoDB tools on the market. We guarantee the best compatibility with current and legacy releases of MongoDB, continue to deliver new features with every new software release, and provide high quality support.

Happy to hear it, Ashkan! We did mean CouchBase, specifically their Community Edition (https://www.couchbase.com/downloads), but it's definitely worth mentioning that their other edition (Enterprise) is not open-source and isn't free for production use.