July 30
Say Good Bye To Database Schemas
by David Palmer
Fast on the heels of Craig’s last post, I bring you a new tool which is currently undergoing Apache incubation, which has the potential to radically change how you think about databases. Google kick- started this by publishing a paper on their “BigTable” system, and just a short while back Facebook released Cassandra out into Google Code, but along comes CouchDB.
CouchDB, like BigTable and Cassandra (and there are others out there) thinks in terms of documents, not tables. This is pretty significant, especially for developers who spend a lot of time building complex web applications where relationships are modeled in highly inflexible table schemes, using tedious joins and look up tables in an effort to artificially create flexibility through normalization. Well CouchDB does away with that entirely. Its not a new idea (see Berkley DB) but how they do it is what makes this thing fast, efficient and very compelling. Using the “map reduce” algorithm means the databases can be distributed over a number of disparate nodes (all on commodity hardware) and the searching is very fast in that you aren’t looking at everything all at once.
Also interesting with CouchDB is that it incorporates a “view” engine, and out of the box uses javascript as the view/query language. It doesn’t get much more simple than that. Written in Erlang, CouchDB is accessible via a RESTful HTTP interface and there are language bindings for nearly every popular platform.
Check out CouchDB, and relax! We’ll be hearing more about this in the coming months and years me thinks.

The Say Good Bye To Database Schemas by Molecular Voices, unless otherwise expressly stated, is licensed under a Creative Commons Attribution 3.0 Unported License.
Craig Andrews said on July 30th, 2008
I remember reading about CouchDB a while back and considered using it for something… but for the life of me, I can’t recall what.
David Palmer said on July 30th, 2008
yes i’m currently using CouchDB in a project of mine, it has some rough spots to be sure, getting it compiled was a challenge but when this thing matures, the potential there is really exciting.