This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
Author/s : Pramod J. Sadalage, Martin Fowler
Publisher : Addison-Wesley Professional
Category : Data modeling, SQL and JDBC Review by : Mohamed Sanaulla
Rating : 10 horseshoes
This is a must read book for all those who have worked with Relational Databases and want to explore the NoSQL world. One can argue that why a read a book on NoSQL when there is so much material on the web. Believe me lot of the NoSQL content on the web would be biased towards recommending NoSQL. But the authors of the book take a neutral stance towards NoSQL and clearly explain where NoSQL wins over RDBMS and where it doesn't.
People familiar with UML Distilled would be the first one's to pick this book because there's so much information packed in just about 200 pages.
The book is divided into 2 parts. The first part deals with explaining concepts related to distributed systems in simple way with examples and illustrations. It would be a refresher for someone familiar with distributed system concepts and a good introduction to someone who is not. The depth covered is just enough to appreciate the features of NoSQL dbs. The second part deals with explaining different NoSQL implementations (not different NoSQL db vendors) and picking one NoSQL DB vendor for each implementation. This part builds on top of the concepts in the first part there by stressing the need for clearly understanding the concepts in first part. There are a few chapters dealing with picking the right db, exploring alternatives apart from NoSQL and also short introduction to schema migration in both RDBMS and NoSQL.
Some of the things I liked about the book:
Short chapters, less number of pages and no compromise on content quality and depth.
Good introductory coverage on Distributed concepts because NoSQL is a great solution for clustered environments.
The implementation part of the book picks one db vendor and explains various characteristics as well as its usage advice which is really helpful for someone who wants to get a quick overview of which db to use.
Complicated concepts like Map-Reduce explained in a simple way using illustrations.
One possible problem with this book is that if you are very new to distributed system concepts, the first part might take sometime and effort for you to understand it well. So my advice for such readers is to take time and understand the concepts in first part and not hurry to read the Part 2 which deals with implementation.
Bottomline: Highly recommended NoSQL material for anyone who wants to learn about NoSQL and be a part of the buzz being generated by it.
Disclosure: I received a copy of this book from the publisher in exchange for writing this review on behalf of CodeRanch.