Deconstructing Databases
Here's a post where O'Reilly's Dale Dougherty writes about a talk at EuroOSCON by Greg Stein, of Google Code, where Stein talks about building a bug-tracking system.
Traditional applications have been built on a traditional database view. That view requires that everything be decomposed into "square tables." When you do this you invariably end up making lots of fine-grained fields into which information should be placed (e.g., bug number, short description, full description, assigned-to, fixed-in, related-to, error-number, severity, impact, etc.)
As it turns out Mark Logic built its own bug tracking system, bugtrack, based on a special-purpose DBMS platform that has rich full-text searching capabilities (i.e., MarkLogic Server). And, given that assumption for the underlying platform, we did something similar to Google. Per Ian Small, our VP of products:
It's interesting to see how application development itself changes, when you change the underlying platform assumption. In my mind, you end up with more powerful, more flexible applications in so doing. See the comments on Dale's post for more discussion of this topic.