All posts for the month September, 2012

“NoSQL” databases are a “modern” approach to move away from the strict schema-based, normalized, relational databases. Traditional databases are best suited to interrogation with SQL queries and the modern cloudy databases better suited to map/reduce algorithms; hence the monikers “SQL” and “NoSQL”. Why, after decades of developing “SQL” databases is there a sudden interest in alternatives?

Cutting to the chase, ¬†if your application is stable (i.e. your ¬†tables aren’t changing and your queries are well understood) the data structure is simple; plus you anticipate having loads and loads of data then, SQL, hard schema, databases make some sense.However, if you are going to be modifying your data tables frequently then SQL databases are a “world of pain”.

In particular, NoSQL databases make the configuration and admin of scaling, or moving to a cloud architecture, a whole lot easier.

In regards to enterprise systems it can be summarised as follows: NoSQL databases become a possible solution at about the same size that denormalizing becomes useful for performance. Traditional SQL/normalised databases have the benefits of rigour and sophisticated schema modification. Novelty can be the enemy of business efficiency so if you do not suddenly need map/reduce there is no reason to move off a SQL database.