Saturday, February 18, 2012

Summary of a nice article about NoSQL

When to use NoSQL?
If there is a usecase where storing the data in a relational database does not make any sense and , it persuades you to looking for alternative ways to get it out of the database, it is useful to pay the attention on NoSQl. In another words when your data does no suit the relational data model, you think think about NoSQL.

Recommended NoSQL databases?

  • MongoDB, CouchDB or Redis can be recommended as NoSQL databases, as they are excellent candidates to take data off your main database, and happily live alongside of it.
  • If you are have the knowledge of relational databases it is recommended with mongoDB. It can be considered as a good mixture of what you are used to from relational databases , and schemaless storage.
  • Redis is a good choice for the data such as Statistics, message queues, historical data etc...
  •  MongoDB is halfway between a relational and NoSQL database while CouchDB is basically totally different thinking all the way
  • If your primary requirement is scaling - you have to pay your attention on Riak or Cassendra.(They follow pretty interesting models of scaling up.)

These NoSQL databases are proposing some new non-relational data models. Do you like one model more than the others?
Document database can be considered as the most versatile because you can put any data in a document database and it gives you all the freedom to model that data and to model some of the relationships between documents.

With relational databases there are at least 3 things we have really gotten used to: the relational model, the query model and transactions. So for someone looking to NoSQL databases he should be aware that all these 3 concepts will have a different form. 
  • Keep in mind that there will be a different data model which has a great flexibility.
  • lack of support for transactions is not a severe problem.(Transactions are removed for the benefit of simplicity, making it a lot easier to scale up.)
  • Most NoSQL databases removed means to run any kind of dynamic query on your data, MongoDB being the noteworthy exception here. Data is usually pre-aggregated by e.g. using Map/Reduce, or access is simply done by keys.
  • The decision to use a NoSQL depends on the requirement.

Once you start using NoSQL databases, will you have to get rid of RDBMS?
The rule is do not change to NoSQL if you do not have problems with relational database.

You can fine the original article at

No comments:

Post a Comment