I’ve spent some of my free time over the last couple of months researching different databases for a chapter in one of my books. I have some limited experience using some NoSQL options, but must confess that I am not as familiar with many of the newer databases as I would like. As a part of my research, I read this book.
Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement by Eric Redmond and Jim R. Wilson came out earlier in 2012. It is published by The Pragmatic Programmers, as a part of their Pragmatic Bookshelf, which is an impressive and deservedly well-respected series.
My goal in reading this book was to get a better sense of the landscape, to learn the basics of several of the new databases out that have been receiving the lion’s share of the buzz in the computer press. The book did not disappoint, in fact it exceeded my expectations.
All a reader absolutely must know before reading this book is what a database is, but after saying that, I will follow with a quick disclaimer that this is not intended for newbies. The book is written for experienced developers, people who understand software, who know their concepts and how to apply them, but who are interested in the latest developments. The book does not cover things like installation or systems/database administration. Instead, it gives information that surveys the strengths and weaknesses of the new databases to help the experienced developer better understand when, why, and how he or she might find a specific one useful. We have discussions of features, contexts, and pragmatic looks at usefulness. I appreciated the author’s willingness to state not only how specific products could benefit, but also mention when specific products may be unsuitable for a specific project.
Databases covered are these, listed in the order in which you will find them in the book:
- PostgreSQL
- Riak
- HBase
- MongoDB
- CouchDB
- Neo4J
- Redis
You will notice that there is a nice variety in the types of databases listed. Represented are a standard relational database (PostgreSQL), key-value stores (Riak, Redis), a columnar database (HBase), some document-oriented databases (MongoDB, CouchDB), and even a graph database (Neo4J). The survey is clear, deep, and packed with useful data that makes comparing these vastly different, but often lumped together as “NoSQL” databases, easier.
If you have any reason to use or consider using anything other than a more traditional relational database, and aren’t sure which one to try out of the exploding number of new options, this book will help you make sense of the field and better evaluate your options against your current needs. I recommend it.
Disclosure: I was given my copy of this book by the publisher as a review copy.