Tuesday, 11 June 2013

Book Review: Seven Databases in Seven Weeks - A Guide to Modern Databases and the NoSQL Movement

During some holiday downtime, I took the opportunity to have a skim through my latest Amazon recommendations and came across two titles outside of the information security space that I thought would be interesting reads.

The two books were Seven Databases in Seven Weeks - A Guide to Modern Databases and the NoSQL Movement and Cloud Architecture Patterns. In short, both are excellent books and if you're anyway interested in cloud and databases, then both are thoroughly recommended.

I'll hopefully get some time to review Cloud Architecture Patterns over the next few weeks but for the moment I'll cover off Seven Databases in Seven Weeks.

If you hear the title "seven databases in seven weeks" and think this is a book covering Oracle, SQL Server, MySQL, DB2, PostgreSQL and whatever other two relational databases that spring to mind, then you probably need to go and buy this book immediately!

While this book covers relational databases briefly in one chapter (PostgreSQL specifically), it's primarily written to give a broad overview of the new suite of databases that fall under the banner of NoSQL.

As I haven't been exposed to NoSQL databaes in any particular hands on manner, I thought this book would be a good overview to get me up and running and I wasn't wrong.

NoSQL databases are the suite of databases that don't follow the conventional relational database model and are designed to serve specific purposes such as speed of response, flexibility of data storage and horizontal scalability.

The book specifically looks at some of the most common NoSQL database types; key-value store, columnar, document and graph.

The whole book is very practical oriented with each chapter dedicated to a single implementation of a NoSQL database type, with multiple implementations covered for certain types. In total it covers six NoSQL databaes; Riak and Redis (key-value store), HBase (columnar), MongoDB and CouchDB (document) and Neo4J (graph).

Each chapter follows roughly the same format; explain the theory of the particular database type, provide examples as to how data is created, read, updated and deleted, explain in more detail the specific benefits of the database and then tie it all together with some real data import and analysis examples.

The chapters are short and easily digested and the style of writing makes for an easy read, despite discussing some pretty technical topics. The examples are also short and easy to run through and one idea that I really liked was that they show how to download large, pre-existing datasets from Wikipedia and Freebase, which can be imported into the particular database under review. This is excellent because it quickly provides a large dataset that can be used to demonstrate the benefits of each database.

The final chapter is particularly interesting as it provides a simple example as to how the different NoSQL database types can be combined into a single system in order to maximise the potential advantages that each can provide.

While this book isn't going to make you a database expert in any of the NoSQL databases it covers, this isn't the purpose of this book. What it does do exceptionally well is give a really concise, but highly practical introduction to a broad range of NoSQL databases, which for someone like myself is a perfect introduction to the topic.

Overall, I can't recommend this book highly enough if you want to quick and practical introduction to NoSQL databases.


Links:
The Pragmatic Bookshelf http://pragprog.com/book/rwdata/seven-databases-in-seven-weeks
Amazon http://www.amazon.com/Seven-Databases-Weeks-Modern-Movement/dp/1934356921/