Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement Paperback – May 21 2012
|New from||Used from|
Frequently Bought Together
Customers Who Bought This Item Also Bought
No Kindle device required. Download one of the Free Kindle apps to start reading Kindle books on your smartphone, tablet, and computer.
Getting the download link through email is temporarily not available. Please check back later.
To get the free app, enter your mobile phone number.
The flow is perfect. On Friday, you'll be up and running with a new database. On Saturday, you'll see what it's like under daily use. By Sunday, you'll have learned a few tricks that might even surprise the experts! And next week, you'll vault to another database and have fun all over again.--Ian Dees Coauthor, "Using JRuby"
Provides a great overview of several key databases that will multiply your data modeling options and skills. Read if you want database envy seven times in a row.--Sean Copenhaver Lead Code Commodore backgroundchecks.com
This is by far the best substantive overview of modern databases. Unlike the host of tutorials, blog posts, and documentation I have read, this book taught me why I would want to use each type of database and the ways in which I can use them in a way that made me easily understand and retain the information. It was a pleasure to read.--Loren Sands-Ramshaw Software Engineer U.S. Department of Defense
""The flow is perfect. On Friday, you'll be up and running with a new database. On Saturday, you'll see what it's like under daily use. By Sunday, you'll have learned a few tricks that might even surprise the experts! And next week, you'll vault to another database and have fun all over again."" --Ian Dees Coauthor, "Using JRuby"
""Provides a great overview of several key databases that will multiply your data modeling options and skills. Read if you want database envy seven times in a row."" --Sean Copenhaver, Lead Code Commodore backgroundchecks.com
""This is by far the best substantive overview of modern databases. Unlike the host of tutorials, blog posts, and documentation I have read, this book taught me why I would want to use each type of database and the ways in which I can use them in a way that made me easily understand and retain the information. It was a pleasure to read."" --Loren Sands-Ramshaw, Software Engineer U.S. Department of Defense
About the Author
Eric Redmond has been in the software industry for more than 15 years, working with Fortune 500 companies, governments, and many startups. He is a coder, illustrator, international speaker, and active organizer of several technology groups.
From the Publisher
Look for more books in the series
Learn Seven Things in Seven Weeks.
Just as each new spoken language can make you smarter and increase your options, each programming language increases your mental tool kit, adding new abstractions you can throw at each new problem. Knowledge is power. The Seven in Seven series builds on that power across many different dimensions. Each chapter in each book walks you through some nontrivial problem with each language, or database, or web server. These books take commitment to read, but their impact can be profound.
Seven Languages in Seven Weeks
You should learn a programming language every year, as recommended by The Pragmatic Programmer. But if one per year is good, how about Seven Languages in Seven Weeks? In this book you'll get a hands-on tour of Clojure, Haskell, Io, Prolog, Scala, Erlang, and Ruby. Whether or not your favorite language is on that list, you'll broaden your perspective of programming by examining these languages side-by-side. You'll learn something new from each, and best of all, you'll learn how to learn a language quickly.
Seven More Languages...
Seven Concurrency Models...
Seven Web Frameworks...
What Other Items Do Customers Buy After Viewing This Item?
Top Customer Reviews
Most Helpful Customer Reviews on Amazon.com (beta)
A. Puzzled that such a book was made since doing a google search is far faster and easier.
B. Recognize that while the book likely makes some great points, the writing only is understandable if you already deeply understand the subject.
C. This must be one of those "guide for idiots" books since reading the book only shows some simple basics you would have figured if you just sat down and used the thing for 5 minutes.
But every once in awhile there is a book that is easy to read, doesn't treat me like an idiot, and actually explains the why and just not the what of the subject matter. When I come across such books, I carry them around, tell friends about them, and frequently re-read the relevant parts when I am coding up something that makes use of the subject matter. This is one of those books.
I have two gripes with the book, however. One is that at times, the authors seem to talk more about supporting technologies than the databases themselves. It's nice to see how you can use a SAX-based XML parser with some programming language to load data into the database, but other than the interface to the database itself, it's not wholly relevant to the core topic at hand.
My second gripe is that sometimes the examples feel overly contrived. In the chapter on Riak, for instance there's a comparison of getting counts by style from the database. The method shown for the RDBMS style is something that even if you had only read the chapter on PostgreSQL, you'd know was a terrible way for getting the information. There are a couple of other examples in the book where I found myself saying either, "well, yeah, but nobody in their right mind would actually do it that way," or "OK, that's nice, but how would this work for a real problem?" All that being said, this problem is endemic to introductory material in general and so, while frustrated that it is continued in this book, I don't think it detracts from the book anymore than it detracts from any other introductory reading.
The NoSQL field is rapidly evolving, but enough knowledge exists to fill several books. The best overview of databases for computational journalists I've found so far comes from Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement.
I've been working through the book, which has been available for a few months in beta from the publisher in the course of collecting the tools for Data Journalism Developer Studio 2012LX and Computational Journalism Server. Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement covers, in order:
* PostgreSQL, a traditional RDBMS,
* Riak, a key-value database
* HBase, a columnar database
* MongoDB, a document-oriented database
* CouchDB, a document-oriented database,
* Neo4j, a graph-oriented database, and
* Redis, a key-value database / data structure server.
All of these databases are open source, and they're all supported by either a corporate entity, a non-profit foundation, or some combination of the two. The title really should have been "Seven Databases in Seven Weekends"; each database is covered in three-day hands-on sessions and could easily be done as a series of weekend projects. The book is hands-on - you'll build things with these databases, including a Node.js application combining Redis, CouchDB and Neo4j into an application that provides a "band information service."
Appendix A contains a pair of tables that give an overview of the distinguishing characteristics of the seven databases. As the authors put it, "Although the tables are not a replacement for a true understanding, they should provide you with an at-a-glance sense of what each database is capable of, where it falls short, and how it fits into the modern database landscape."
I believe all of these databases have a place in modern computational journalism, as do the other two well-known open source RDBMS tools, MySQL and SQLite. In particular, for spatial / mapping projects, PostgreSQL, SQLite, MongoDB and CouchDB have robust geographic information systems capabilities either built in or available as add-ons.
I think NoSQL databases will be the core of computational journalism for the next few years. The RDBMS isn't going away, of course, but if you limit yourself to "SQL thinking" or even "object-relational models" and "model-view-controller" architectures, there will be applications you can't build. This book will get you up to speed as fast as you're willing to go.
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:
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.
Look for similar items by category
- Books > Computers & Technology > Computer Science > Modelling & Simulation
- Books > Computers & Technology > Databases > Database Design
- Books > Computers & Technology > Programming > Software Design, Testing & Engineering > Software Development
- Books > Textbooks > Computer Science & Information Systems > Database Storage & Design
- Books > Textbooks > Computer Science & Information Systems > Programming Languages
- Books > Textbooks > Computer Science & Information Systems > Software Design & Engineering