Database Fail.

Jun 09, 2009 12:58

I saw the title Schemaless RDBMS and got excited. Most of you who know me, know I'm a "relational bigot", and so generally write grumpy entries over someone touting the advantages of other "data models"(usually revealing that they don't actually understand the relational algebra. Math is the ultimate form of Duck Typing. If it acts like a Group, its a Group, you can call it whatever you want, and insist that its not a group, but if a Mathematician can model it as a Group, its a Group, and your whining just makes you look dumb.)

Anyway, turns out this "schemaless" database idea turns out to be a single table with an "object id" field and a slot for a serialized blob of any object. And Tilkov nails one of the many types of Fail present in this idea: If you can't do meaningful SELECTs anymore, why would you want to use a relational database?

Okay, so why did I get excited at a "Schemaless" RDBMS? Well, traditional RDBMS's make a couple of assumptions. You can flip some of those assumptions around though, and still get a RDBMS, just one that behaves a little different for some things. For instance, you could flip from the Closed World Assumption to an "Open World". Of course, that has computational consequences with regard to queries, but still, its something that you could do. You could substitute a far more clever type system than, say, SQL's(okay, stop laughing... it would be hard to do worse, I agree...). Or, you could do what RDF did: allow relations to be "instantiated" as needed, perhaps using a clever scheme(not schema) for namespaces by forcing names of relations to be URL's(and thus encouraging people to avoid name collisions by suggesting they only use URI spaces they have control of by leveraging the DNS system). Of course, this would be a schema-less DB in some sense: In that there's not as much religion around creating new relational variables, and probably a significantly "simpler" type system than SQL.

Anyway, I think there's some nice possibilities for something that allows more flexibility in creating relations in an RDBMS than SQL-style system, particularly regarding "modular" schema's as well, and better type systems. I also think RDF has some of these ideas(but I'm not particularly enamored with RDF, partially because too many people I see writing about really don't get that its very much related to the relational algebra, in particular, a true relational database implements its own logic, and you can trace the families of various logics to see how RDF is related to Codd's relational database logic). Of course, I get more annoyed at the people who think the real magic of RDF is XML, but you can't help some people.

database, relational algebra

Previous post Next post
Up