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 as 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, the 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 post primarily come under 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 This highly scalable and agile NoSQL database is a amazing performing system. This open source database written in C++ comes with a storage that is document oriented. Also, you will be provided with benefits like full index support, high availability across WANs and LANs along with easy replication, horizontal scaling, rich queries that are document based, flexibility in data processing and aggregation along with proper training, support and consultation.
- Redis 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.
- REVENDB 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 safety of your data. Easy extensibility via bundles is provided along with high performance.
- MemcacheDB 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.
- Riak 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.
- Neo4j 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 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 an easy client access, table sharding that is configurable and automatic, Bloom filters and block caches and much more.
- Perst 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.
- HyperGraphDB 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.
- Cassandra In case you are looking for high availability and scalability without compromising on performance, then Cassandra database is the thing for you. It is a perfect data platform characterized by fault tolerance and linear scalability along with best in class replication support.
- Voldemort 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.
- Terrastore 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 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.
- MyOODB 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.
- OrientDB 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 a common hardware, every second. It is highly secure with a pretty straightforward usage.
- InfoGrid 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.
- Db4objects 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 any object using a single line of code. This also helps in the elimination of predefining or maintaining a separate data model.
Most of common applications can still be developed using traditional relational databases.
NoSQL databases are still not the best option for a 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?