Coolest Database-Related Developments Ever

A while ago, the question of the coolest database developments ever came up. After some pondering, here's my list.

Disclaimer 1: The definition of the word "cool" is entirely subjective, and is not intended to imply significance, market impact, or anything other than what normal people generally understand "coolness" to be.

Disclaimer 2: I'm an RDBMS guy, and a reporting RDBMS guy at that. Hierarchical and object databases may be cooler than relational databases, but I don't know anything about them yet. I'm sure there are some cool OLTP-related developments I'm not thinking of too. Please don't complain about my lack of scope - it's a known deficiency. :-)

Without further ado...

  1. Netezza - A massively parallel database is cool enough. But a specialized hardware appliance that I can plug my own functions into? Please. How do you top that?

    Yes, yes, I know, Teradata has been doing the whole MPP database things for years. But NZ made it more affordable and a pleasure to work with. Can't say either of those things about Teradata.

  2. Vertica - Sybase has been doing the column oriented thing for a while, but much like Netezza made MPP practical, Vertica makes column orientation practical. Doing it with intelligent compression and whitebox hardware, in an MPP arrangement no less, is icing on an already tasty cake. If this were the 'most significant reporting developments list' this would probably be at the top. Even so, the sheer power and elegance of the things makes it incredibly cool.

  3. SQLite - A full featured, embeddable, easily extensible database engine in a 500k library? Free?! Unbelievable. I've gotten more use out of SQLite than just about any tool except my text editor, I think.

  4. The CASE function - If I had a nickel for every problem I've solved using the CASE function, I could probably put my kids through college with the money.

  5. Oracle for Linux - Oracle's support for Linux may have done more for the credibility of Linux in the corporate world than anything else. Plus, as a long-time Linux user, the availability of Oracle on Linux put me one very large step further away from Windows, which made me pretty happy.

What's on your list? What did I overlook? I'd love to hear others' opinions and extend/refine this list, so please, post a comment or send me an email.

Book Review: Inside SQLite

Executive summary: 4.5 stars. A useful tutorial, a helpful reference and a definite keeper.

A few weeks ago, the fine folks at O'Reilly were kind enough to send me a copy of Inside SQLite by Sibsankar Haldar. It's fairly short, as books go - only about 75 pages - but it's crammed with a ton of information.

It opens with a rather unhelpful overview of how to use SQLite in an application, which while probably required for completeness, is confusingly out of place. From there it jumps directly into deep SQLite internals, which is such a befuddling transition that for a while I was lost as to the purpose of the whole book. A few sections later, however, I figured out what the book was really about - internals.

As the title should have made clear. :-)

To be perfectly honest, I don't think there is any information in this book that couldn't be obtained from the SQLite web site or mailing list archives. But it has two major advantages over those sources: first, all the information is in one place and second, that information is well organized. DRH does quite a good job of keeping everyone informed about all-things SQLite, but documentation is not, and can not, be his primary concern. That's reflected in the need for and usefulness of this book.

I do not think that this book will be useful to many people, as the common consumers of the SQLite library vastly outnumber the advanced users and internal hackers. But for those who do need to understand SQLite at all levels, whether it be for tuning purposes, advanced usage or in order to make internal modifications, this book is a fantastic way to get started. I certainly wish it had been available when I first started using SQLite.