For almost three decades or so, the world of Database Management was ruled by the relational database model or RDBMS. But in today’s times, a major chunk of the mindshare has been gained by an alternative database management model called NoSQL or the non-relational cloud. This new NoSQL approach is fast proving to be extremely advantageous over its earlier counterpart by allowing the user new levels of application scalability. It is designed in a manner so that it can derive benefits from the new nodes through transparent expansion. Also, commodity hardware is quite reasonably priced.
Owing to the massive increase in data volumes as well as transaction costs, NoSQL has come up as a boon for the developers as it can easily handle extremely large data volumes. Another relief that NoSQL allows you to have is to bid goodbye to your DBAs. This is because the new DBMS is associated with benefits like simpler data models and automatic repair which brings down the tuning and administrative requirements.
The NoSQL Databases listed in a post primarily come under the following categories.
- Document-oriented databases
- Key-value store databases
- Graph databases
- Object databases
Here is a list of some of the most popular and widely used NoSQL databases:
- MongoDB
- Redis
- Couch DB
- REVENDB
- MemcacheDB
Riak- Neo4j
- HBASE
- Perst
- HyperGraphDB
- Cassandra
- Voldemort
- Terrastore
- NeoDatis
- MyOODB
- OrientDB
- InfoGrid
- Db4objects
This is an open source, key-value store of an advanced level. Owing to the presence of hashes, sets, strings, sorted sets and lists in a key; Redis is also called as a data structure server. This system will help you in running atomic operations like incrementing value present in a hash, set intersection computation, string appending, difference and union. Redis makes use of in-memory dataset to achieve high performance. Also, this system is compatible with most of the programming languages.
RAVENDB is a second generation open source DB. This DB is document oriented and schema-free such as you simply have to dump in your objects into it. It provides extremely flexible and fast queries. This application makes scaling extremely easy by providing out-of-the-box support for replication, multi-tenancy, and sharding. There is full support for ACID transactions along with the safety of your data. Easy extensibility via bundles is provided along with high performance.
This is a distributed storage system of key value. It should not be confused with a cache solution; rather, it is a persistent storage engine which is meant for data storage and retrieval in a fast and reliable manner. Confirmation to Memcache protocol is provided for. The storing backend that is used is the Berkeley DB which supports features like replication and transaction.
This is one of the most powerful, distributed databases ever to be introduced. It provides for easy and predictable scaling and equips users with the ability for quick testing, prototyping and application deployment so as to simplify development.
This is a NoSQL graph database which exhibits a high level of performance. It comes well equipped with all the features of a robust and mature system. It provides the programmers with a flexible and object-oriented network structure and allows them to enjoy all the benefits of a database that is fully transactional. Compared to RDBMS, Neo4j will also provide you with performance improvements on some of the applications.
HBase can be easily considered as a scalable, distributed and a big data store. This database can be used when you are looking for real-time and random access to your data. It comes with modular and linear scalability along with reads and writes that are strictly consistent. Other features include Java API that has easy client access, table sharding that is configurable and automatic, Bloom filters and block caches and much more.
This is an object-oriented DBMS that is open source and has a dual license. With this, you will be able to store, sort and retrieve data in your applications with low overhead storage and memory and very high speed.
This is an open source data storage system that is extensible, distributed, general purpose, portable and embeddable. Basically, this is a graph database which is mostly meant for AI, Semantic web projects and knowledge representation; it can also handle Java projects of different sizes.
This is an automatically replicating distributed storage system. It provides for automatic partitioning of data, transparent handling of server failure, pluggable serialization, independence of nodes and versioning of data items along with support for data distribution across various centers.
This is a modern document store that facilitates elasticity features and high scalability without compromising on consistency. This system is based on a fast, clustering technology that is industry proven. It can support deployments that are single or multi clustered and can be accessed through HTTP protocol.
NeoDatis is an object database that is simple to use and can run with Google Android, .Net, Groovy, Java, and Scala. It will help you do away with the impedance mismatch between Relational worlds and objects. Integrating NeoDatis ODB with your business will allow you to focus on logic along with single line code storage and retrieval of data.
If you are serious about web development and application, you cannot do without MyOODB. This is an application and database framework which gives you the power to bring back object-oriented design to web development.
This is a NoSQL DBMS that is open source and having the features of both Graph DBMSs and Document. It is an amazingly fast system that can store more than a hundred thousand records on common hardware, every second. It is highly secure with pretty straightforward usage.
This is a web graph database having a lot of additional software components. This is an open source system which helps in easy development of full web applications that are based on a graph foundation.
This is an object database that is open source and can be used with .Net and Java. It helps the developers in storing and retrieving an object using a single line of code. This also helps in the elimination of predefining or maintaining a separate data model.
The NoSQL databases are really highly scalable and good for large data storage and processing. However, these may not be always the best choice for you.
Most of the common applications can still be developed using traditional relational databases.
NoSQL databases are still not the best option for mission-critical transaction needs.
Hope you found this list useful, let us know what database are you using for your applications? and why do you think its best for your needs?