NoSQL Databases

NoSQL databases refer to any database types that are not only relational. “NoSQL” stands for “not only SQL”.

Relational database is the most popular database type nowadays. Structure Query Language (SQL) is a language to manage data in a relational database. This is why NoSQL is the term used to referred to not only relational databases.

NoSQL databases are Basically Available Soft-State Eventually consistency (BASE). This is a difference regarding relational databases, which are ACID.

Types of NoSQL Databases

Types of NoSQL Databases:

  • Key-value stores
  • Document stores
  • Graph databases
  • Wide-column stores
  • Search stores
  • Object-oriented stores
  • Multi-model stores

Key-value stores are key/value pairs.

Document stores are similar to key/value stores, but the value is much more complex and it is in the form of a document, like XML or JSON

Graph databases store data in graph format.

Wide-column stores are optimized for queries over large datasets, and instead of rows, they store columns of data together.

NoSQL Databases Solutions

No SQL databases solutions:

  • Key-value stores
    • Valkey
    • Redis
    • Amazon Dynamo DB
    • Etcd
    • Riak
  • Document stores
    • FerretDB
    • MongoDB
    • DocumentDB
    • Apache Couchbase
    • Firebase
  • Wide-column stores
    • Apache Cassandra
    • Apache HBase
    • Bigtable
    • Apache Druid
    • Hypertable
  • Graph store
    • JanusGraph
    • Neo4j
    • Amazon Neptune
  • Search
    • ElasticSearch
    • Algolia
    • Mellisearch
  • Object-oriented
  • Multi-model
    • Azure Cosmo DB
    • ArangoDB

Take into account that traditionally relational DB PostgreSQL also accepts some of these models.

Key-value Store Solutions

The most popular key-value databases are Valkey, Redis and Amazon DynamoDB.

You can read more about key-value store solutions on this post.

Document Store Solutions

Document stores are specifically designed to handle JSON-like documents.

Some of the most popular document store databases are Apache CouchDB and MongoDB.

You can read more about document store solutions on this post.

Wide-column Store Solutions

You can read this post about wide-column store.

Graph Store Solutions

You can read this post about graph databases.

Search

  • OpenSearch
  • ElasticSearch
  • Algolia
  • Mellisearch

Object-oriented

Object-oriented database (OODB) is a database paradigm.

Mandatory characteristics of a OODB:

  • All objects have a unique identifier, independent to their attributes.
  • It allows building complex objects.
  • The BBDD schema includes a limited set of classes or types.
  • The data type are variable.

Object-oriented databases featured on this post:

  • db4o (discontinued but historically significant)
  • ObjectDB
  • Versant Object Database

Multi-model

  • OrientDB
  • Azure Cosmos DB
  • FaunaDB
  • Couchbase Server
  • ArangoDB (value-key + document + graph)

OrientDB

OrientDB is a multi-model database that combines the features of graph databases and document databases. It supports SQL-like queries, graph traversals, and ACID transactions.

Azure Cosmos DB

Azure Cosmos DB offers all types of NoSQL store.

Azure Cosmos DB official website

FaunaDB

FaunaDB

Couchbase Server

The community edition is released under an Apache 2.0.

Do not confuse it with document-based store CouchDB.

Official website

ArangoDB

ArangoDB is a value, document and graph.

It is source-viewable under a BSL (Business Source License) 1.1.

Choosing the right database

As a general rule:

  • Highly relationed data: graph
  • Queries with aggregation: columns
  • Value-based queries: document
  • Else: key-value

Distribution models

  • Replication
    • Master-slave
    • Peer-to-peer.
  • Sharding

You might also be interested in…

External references

Leave a Reply

Your email address will not be published. Required fields are marked *