5.1. NoSQL About
List of NoSQL databases [2]
Key–value Store (Redis)
Key-Value Cache (Redis, Memcached)
Column-Oriented Store (Cassandra)
Document Store (MongoDB)
Graph Database (Neo4j)
Time Series Database (InfluxDB, Prometheus)
Object Database
Tuple Store
Triplestore (RDF store)
Relational Database
Multi Model
Multi Value
A NoSQL (originally referring to "non-SQL" or "non-relational") database provides a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases. Such databases have existed since the late 1960s, but the name "NoSQL" was only coined in the early 21st century, triggered by the needs of Web 2.0 companies. NoSQL databases are increasingly used in big data and real-time web applications. NoSQL systems are also sometimes called Not only SQL to emphasize that they may support SQL-like query languages or sit alongside SQL databases in polyglot-persistent architectures [1].
Motivations for this approach include simplicity of design, simpler "horizontal" scaling to clusters of machines (which is a problem for relational databases), finer control over availability and limiting the object-relational impedance mismatch. The data structures used by NoSQL databases (e.g. key–value pair, wide column, graph, or document) are different from those used by default in relational databases, making some operations faster in NoSQL. The particular suitability of a given NoSQL database depends on the problem it must solve. Sometimes the data structures used by NoSQL databases are also viewed as "more flexible" than relational database tables [1].
5.1.1. Performance
Data model |
Performance |
Scalability |
Flexibility |
Complexity |
Functionality |
---|---|---|---|---|---|
Key–value |
high |
high |
high |
none |
none |
Column-oriented |
high |
high |
moderate |
low |
minimal |
Document-oriented |
high |
high |
high |
low |
low |
Graph |
variable |
variable |
high |
high |
graph theory |
Relational |
variable |
variable |
low |
moderate |
relational algebra |
5.1.2. Document Store
ArangoDB
Azure Cosmos DB
BaseX
Clusterpoint
CouchDB
Couchbase
DocumentDB
Elasticsearch
IBM Domino
MarkLogic
MongoDB
OrientDB
Qizx
RethinkDB
eXist-db
5.1.3. Key–Value Store
Aerospike
Amazon DynamoDB
ArangoDB
Azure Cosmos DB
BigTable
Couchbase
FoundationDB
InfinityDB
LMDB
LocalStorage (web browser + JS)
MemcacheDB
Oracle NoSQL Database
Project Voldemort
Redis
Riak
SessionStorage (web browser + JS)
Voldemort
5.1.4. Key-Value Cache
Apache Ignite
Coherence
Couchbase
Hazelcast
Infinispan
Memcached
Oracle Coherence
Redis
Velocity
eXtreme Scale
5.1.5. Tuple Store
Apache River
GigaSpaces
OpenLink Virtuoso
TIBCO ActiveSpaces
Tarantool
5.1.6. Triplestore (RDF)
AllegroGraph
MarkLogic
Ontotext-OWLIM
Oracle NoSQL database
Profium Sense
Virtuoso Universal Server
5.1.7. Graph Database
AllegroGraph
Apache Giraph
ArangoDB
Azure Cosmos DB
InfiniteGraph
MarkLogic
Neo4j
OrientDB
RedisGraph
Virtuoso
5.1.8. Time Series Database
InfluxDB
Prometheus
TSDB
5.1.9. Column-Oriented Store
Amazon DynamoDB
Apache Accumulo
Azure Cosmos DB
Bigtable
Cassandra
Druid
Google Cloud Datastore
HBase
Hypertable
ScyllaDB
5.1.10. Object Database
GemStone/S
InterSystems Caché
JADE
NeoDB
Ninja Database Pro
ODABA
ObjectDB
ObjectDatabase++
ObjectStore
Objectivity/DB
OpenLink Virtuoso
Perst
Realm
Versant Object Database
ZODB
ZopeDB
db4o
5.1.11. Multi Model
Apache Ignite
ArangoDB
Azure Cosmos DB
Couchbase
FoundationDB
MarkLogic
MarkLogic
Oracle Database
OrientDB
5.1.12. Multi Value
D3 Pick database
Extensible Storage Engine (ESE/NT)
InfinityDB
InterSystems Caché
Northgate Information Solutions Reality (the original Pick/MV Database)
OpenQM
Revelation Software's OpenInsight (Windows) and Advanced Revelation (DOS)
UniData Rocket U2
UniVerse Rocket U2
jBASE Pick database
mvBase Rocket Software
mvEnterprise Rocket Software