Trusted answers to developer questions
Trusted Answers to Developer Questions

Related Tags


What are the different kinds of NoSQL systems?

Tarun Telang

The list below mentions the different kinds of NoSQL database systems you may encounter.

  • Object/Document database
  • Column store database (HyperTable)
  • Key-value pair store database
  • Graph Database
  • BigTable implementation (HBase)
  • Spatial database
  • Databases with MapReduce programming model
  • Multi-model database system
%0 node_1 NoSQL node_2 Document node_1->node_2 node_3 Casandra node_1->node_3 node_4 Key-Value node_1->node_4 node_1634278969645 Graph node_1->node_1634278969645 node_1634278968161 BigTable node_1->node_1634278968161 node_1634279011863 MapReduce node_1->node_1634279011863 node_1634278965307 Multi-modal node_1->node_1634278965307 node_1634279024549 MongoDB node_2->node_1634279024549 node_1634279044795 Column node_3->node_1634279044795 node_1634279064285 Redis node_4->node_1634279064285 node_1634279093521 Neo4j node_1634278969645->node_1634279093521 node_1634279120799 HBase node_1634278968161->node_1634279120799 node_1634279135173 Hadoop node_1634279011863->node_1634279135173 node_1634279154461 OrientDB node_1634278965307->node_1634279154461
Different Types of NoSQL Databases

Object/Document database

A document consists of a collection of key-value pairs. Each value can be one of the four primitive types: String, Number, Boolean, Null, or it can be an object. Objects are accessed using paths that indicate their location within the hierarchy of key-value pairs.

Document-based NoSQL database systems are best suited to storing and retrieving complex data types that do not have a predefined schema.

A typical example of a document database is MongoDB.

%0 node_1 node_2 node_1->node_2 node_1634279378896 node_1->node_1634279378896 node_3 node_1->node_3 node_1634279409292 node_1->node_1634279409292 node_1634279374470 node_2->node_1634279374470 node_1634279346243 node_2->node_1634279346243 node_1634279383444 node_1634279378896->node_1634279383444 node_1634279394110 node_1634279378896->node_1634279394110 node_1634279406934 node_3->node_1634279406934 node_1634279377536 node_3->node_1634279377536 node_1634279423280 node_1634279409292->node_1634279423280 node_1634279420930 node_1634279409292->node_1634279420930
Document Database

Column store database

In a column store, data is stored as a collection of column families. Each column family holds multiple columns, and each column has one value per row/record. One possible use of column stores is to store time-series data.

An example of a column store database is Cassandra.

Key-value pair store database

In a key-value pair store, data is stored as a collection of key/value pairs. The key is used to locate the data in the collection. In this type, records are assigned unique primary keys and can be accessed using them. For each record, values are stored with the primary key.

An example of a key-value store is Redis.

%0 node_2 Key node_1634279867856 Val node_2->node_1634279867856 node_1 Key node_1_1 Val node_1->node_1_1 node_0 Key node_0_1 Val node_0->node_0_1
Key-value Store

Graph database

In a graph database, data is stored in the form of vertices and edges. A vertex represents an object, whereas an edge represents a relationship between two objects. Vertex and edge data can be stored as either documents or plain key/value pairs.

A graph database is designed to model real-world relationships between data entities.

An example of a graph database is Neo4j.

g a a b b a--b f f a--f h h a--h c c b--c c--a e e c--e d d d--e e--b g g f--g

BigTable implementation

This NoSQL database system implements Google BigTable, a distributed storage system. It’s recommended to use BigTable when your data doesn’t fit in memory, you need random read/write access, and most operations are full table scans.

An example of a BigTable implementation is HBase.


Spatial database

Spatial databases store data in geographical coordinates to define the absolute position. We can use a spatial index to locate records that are close to one another.

An example of a spatial database is PostGIS.

Spatial Database

Database with a MapReduce programming model

A database with a MapReduce programming model provides a means to process large datasets. It takes the data from the storage layer, processes it in a distributed data processing framework, and hands back the new data to be served for further reading or add/delete operation to underlying NoSQL storage components. Typically, an additional aggregation phase is required to bring the data back to the single-node state before returning it to the storage layer.

The most well-known NoSQL system that employs this programming model is Hadoop. The underlying storage system in Hadoop is HDFS.

Map Reduce Database

Multi-model database

In a multi-model database, different models are combined into a single system. This multi-model database includes data storage options of key/value, relational, and document.

An example of a multi-model database system is OrientDB.

Multi-model Database



View all Courses

Keep Exploring