The relational database model, initially formulated by Codd in the late 70s, is the dominant way to store structured data at present. However, queries to a relational database are fairly slow compared to complex queries towards a search engine index, which (in addition to the poor user interface of relational databases, often mapped directly to the table structure) has meant that search engines are now competitor for the job of extracting subsets from structured data. This, as well as the difficulty of mapping object structures onto a relational database leads me to wonder if not only the query interface, but in fact the whole concept of the relational database may soon face a disruptive threat from simpler structures.
A conversation at a Concours brainstorming session set me dusting off vaguely remembered concepts such as hierarchical and network databases, as well as the old difficulty of storing a multi-component concept with class attributes in a relational database (once characterized by the Economist as trying to store a car by putting the wheels under "W" and the engine under "E"). I found an good introductory text to the associative model of data by Simon Williams here (registration required), which also sums up the differences between the various data models pretty well.
Long-term, systems will be simulations of the reality they are to manage, but realities will also be influenced by the differences in processing capacity between humans and machines. A great example of the latter is the concept of random pick, which is well explained by Chris Anderson’s post about the shoe company Zappo’s, which stores shoes randomly (with each pair’s UPC scanned) as they come in. The result is a less optimized pick, but the total effort is less than sorting pairs coming in. Another effect, of course, is that they spend the least amount of effort on those products that move the least. (Though I love the comment about whether they occassionally have to defragment the warehouse.)
My apologies for this nerdy detour, I am writing a paper on, among other things, search technology, as well as participating in an interesting Concours project on Enterprise Architecture.
With that, back to our regular programming…