As organizations face the task of developing new software, or the potentially intimidating task of rewriting existing applications to support mobile delivery, IT departments are increasingly starting to wonder if development times and hardware costs could be reduced if they moved away from their relational stalwarts, and instead embraced a NoSQL approach to data persistence. The idea has undoubtedly been planted in plenty of architect's heads, but that idea can't grow into a reality until decision makers really understand what the NoSQL movement has to offer, not to mention the potential drawbacks and pitfalls that inevitably come with adopting a new technology. And while there has been no dearth of articles and tutorials written about the NoSQL phenomenon, it's only the fortunate few who have had the time to keep up with the rapid changes in this part of the industry. Even fewer have been lucky enough to actually get a chance to dabble with things like HBase, Cassandra, MongoDB or BigTable. But the reality is, it's the responsibility of every IT professional who is interested in building quality software to understand all of the options and alternatives that are available. For those who take this responsibility seriously and are interested in getting up to speed on what's happening in the NoSQL landscape, the following three books on the topic are what TheServerSide recommends:
1. Making Sense of NoSQL: A guide for managers and the rest of us by Dan McCreary and Ann Kelly
Unlike various database fads of the past which have come and gone, NoSQL is here to stay.
This is the first book you should read as you begin your journey into the world of NoSQL. At 312 pages, it's just the right length. It's not a tome, but it's not a novella either. Written in simple and not overly technical terms, this book clearly explains the reasons behind why NoSQL has become such a powerful force in the industry. Using pertinent case studies and clear illustrations, this book will help you identify the spots where you organization could benefit from using a NoSQL database, how to choose the right type of NoSQL database, and the pitfalls to avoid when moving to a NoSQL solution. It's perfect for IT managers and software professionals who want to understand the technology, but at the same time, are not interested in getting overwhelmed by a plethora of code and technical terms. At the same time, developers and architects who want a solid understanding of the technology before downloading binaries, installing software and hacking out code will learn a great deal from this title as well.
2. NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence by Pramod J. Sadalage and Martin Fowler
It's hard to be an IT professional and not have, at some point, been exposed to Martin Fowler. Be it through his speaking engagements or his two most popular technical titles: Refactoring and UML Distilled, Fowler is an icon of the industry. As non-relational technologies become more and more popular, Fowler's latest title will no doubt become just omnipresent as his two previously mentioned titles. At only 192 pages, NoSQL Distilled is the shortest of the three titles here, but it goes a little bit more in depth technically than Making Sense of NoSQL, expanding on many of the ideas set forth in the McCreary/Kelly book. Especially informative are the sections that differentiate between the various types of NoSQL technologies, namely key-value, document, column-family stores and graph databases.
3. Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement by Eric Redmond and Jim R. Wilson
After reading Making Sense of NoSQL and NoSQL Distilled, you'll be more knowledgeable about NoSQL technologies than all but the most technically savvy members of your team. But to really understand NoSQL, and be able to pontificate with confidence about the differences between graph databases, document stores and key-value persistence, you need to get your hands dirty, and that's where Seven Databases in Seven Weeks comes in. The book takes a problem-based approach to learning, having the reader solve a variety of data modeling problems with either Redis, Neo4J, CouchDB, MongoDB, HBase, Riak or Postgres. By the end of the book, you'll have a much more technical understanding of relational, key-value, columnar, document and graph databases, and most importantly, you'll have a solid understanding of which kinds of problems are best tackled by which type of persistence store.
Unlike various database fads of the past which have come and gone, NoSQL is here to stay, and while it is unlikely to completely usurp the reign of relational kings like Oracle and DB2, more and more organizations are finding that it makes more sense, both financially and in terms of development time, to invest in NoSQL databases. Armed with the knowledge contained in these three resources, you'll be well versed in all things NoSQL, and be able to architect solutions that best take advantage of these exciting data storage technologies that have only recently become widely available and accepted.
What resources have you found to be most effective for learning NoSQL? Let us know.
The following books were mentioned in this article:
Making Sense of NoSQL: A guide for managers and the rest of us Dan McCreary and Ann Kelly
NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence by Pramod J. Sadalage and Martin Fowler
Refactoring: Improving the Design of Existing Code Martin Fowler
UML Distilled: A Brief Guide to the Standard Object Modeling Language Martin Fowler
Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement Eric Redmond