Within a few years, the NoSQL database has focused attention on performance, scalability, flexible patterns, and analytical capabilities. Although relational databases are still a good choice for some use cases, like structural data and applications that require acid transactions, NoSQL is more advantageous in the following use cases:
The data stored is essentially semi-structured or loosely-structured.
Requires a certain level of performance and scalability.
The application to access the data is consistent with the final consistency.
Non-relational databases typically support the following features:
Flexible mode
No shared schemas
Fragmentation as part of the data storage model
Asynchronous replication
Replacing acid transactions with base
The Infoq English web makes an inventory of the NoSQL databases that are frequently used today:
Document Database
MongoDB: Open source, document-oriented, and the most popular NoSQL database of the moment.
Counchdb:apache Counchdb is a document database that uses JSON, uses JavaScript for mapreduce queries, and an API that uses HTTP.
The Couchbase:nosql document database is based on the JSON model.
RAVENDB:RAVENDB is a document-oriented database based on. NET language.
The Marklogic:marklogic NoSQL database is used to store xml-based and document-centric information to support flexible patterns.
Diagram Database
NEO4J:NEO4J is a graph database that supports acid transactions (atomicity, independence, persistence, and consistency)
Infinitegraph: A graph database is used to maintain and traverse the relationships between objects to support distributed data storage.
Allegrograph:allegrograph is a combination of memory and disk, providing high scalability, support for SparQ, rdfs++, and Prolog inference.
Other diagram databases.
Key Value data store
Riak:riak is an open source, distributed key-value database that supports data replication and fault tolerance.
Redis:redis is an open source key value store. Supports master-slave replication, Transactions, pub, Lua scripts, and also supports adding time limits to key.
Dynamo:dynamo is a key-valued distributed data store. It is implemented directly by Amazon Dynamo database, and is used in Amazon S3 products.
Oracle NoSQL Database: Key-value NoSQL databases from Oracle. It supports transaction acid (atomicity, consistency, persistence, and independence) and JSON.
Oracle NoSQL Database: Data backup and distributed key-value storage systems.
Voldemort: With data backup and distributed key-value storage System.
The Aerospike:aerospike database is a key-value store that supports a hybrid memory architecture that guarantees data integrity through strong consistency and tunable consistency.
Column Storage Database
Cassandra:cassandra is a column storage database that supports data replication across data centers. Its data model provides column indexes, log-structured modifications, supports reverse normalization, materialized views, and embeds the super cache.
Hbase:apache HBase from Google's bigtable, is an open source, distributed, column-oriented storage model. Features like BigTable are provided on top of Hadoop and HDFs.
Amazon Simpledb:amazon SimpleDB is a non relational data store that unloads the work of database management. The developer uses a Web service request to store and query data items.
Apache Accumulo:apache Accumulo's ordered, distributed key-value data store, based on Google's bigtable design, is built on Apache Hadoop, zookeeper, and thrift technologies.
Hypertable:hypertable is an open source, scalable database that mimics bigtable and supports fragmentation.
Azure Tables:windows Azure Table Storage Service provides NoSQL performance for applications that require a large number of unstructured data stores. Tables can be automatically scaled to TB levels and accessible through the rest and Consolidator APIs.
Other columns store the database.
Memory Data grid
Hazelcast:hazelcast CE is an open source data distribution platform that allows developers to share and segment data over a database cluster.
Oracle Coherence:oracle's Memory data grid solution provides fast access to commonly used data, consistent support for transaction processing capabilities and dynamic partitioning of data.
Terracotta BigMemory: Distributed memory management solution from Terracotta. This product includes a Ehcache interface, a terracotta management console, and a Bigmemory-hadoop connector.
Gemfire:vmware Vfabric GemFire is a distributed data management platform and a distributed data grid platform, which supports memory data management, replication, partitioning, data recognition Routing and continuous query.
Infinispan:infinispan is a Java based open source key value NoSQL data storage, and distributed data node platform, support Services, Peer-to-peer and Client/server architecture.
Gridgain: Distributed, object-oriented, memory based, Sql+nosql key value database. Supports acid transactions.
The Gigaspaces:gigaspaces memory data grid serves as an application recording system and supports a wide variety of cache scenarios.