I am sitting in the ridiculously nice Seattle weather sipping a local brew watching The Patriot, get this a decent movie starring Mel Gibson, and started thinking about databases and data stores in a gereral high level of abstraction that encompasses Sybase, Oracle, Yukon, and WinFS.

I disappointingly could not abstract much above the standard relational database stuff that came out of the 70s with the competition between IBM's System R and Berkeley's Ingres. (Is Berkeley the best CS school in the world, or what?). All I could think of was Chris Date's explanation that a database is a computer based record keeping system.

OK here's my initial straw man list:

  • Data identified by unique keys.
  • Relationships expressed through matching keys.
  • The ability to retrieve information based on mathematical set algebra-calc

There are somewhat implementaiton details that happen to be common amongst most RDBMS and might not be what I am really looking for though. So here is the big question, what makes a database a database and not just a data store? Don't worry, this is going somewhere (in my follow up posts).