Fabian Pascal Reacts
Kardamon writes "Fabian Pascal reacts on the recent Slashdot discussion about SQL, XML, and the Relational Database Model, both on DBAzine and on his own web site Database Debunkings. An Open Source implementation of his ideas and those of C.J. Date and Hugh Darwen is REL."
Relational databases aren't enough, either. When you find yourself putting columns of serial numbers in tables so you can link tables together, the relational model isn't fitting the problem.
Clearly, you do not know what a relational database is. You, like many others, are simply the grist for Pascal's mill.
You don't link tables (or relation variables). A relational database management system should give you a rich enough type system so that you can use whatever attributes necessary in a tuple to uniquely identify entities. You should be able to use composite keys without any limitations or worries about space. A good RDBMS would be able to do whatever physical linking and space saving necessary in the physical backend layer to accommodate foreign key relationships with composite keys.
In, many cases when people do this they find that working with composite keys is cumbersome and they blame the relational database. This is kind of interesting phenomenon and conclusion. In fact, it has nothing to do with relational databases (at least in the electronic sense).
The use of surrogate keys long predate electronic data storage systems. Prisons have used numbers for inmates, cars have used license plate numbers, and the SSN was established, long before Codd wrote his seminal papers.
So I don't see what adding columns of serial numbers has to do with a failing of the relational model. The use of "serial" numbers in general has to do with the difficulty of finding good, stable, unique identifiers for entities of interest.
As for times when you NEED tree based data (which is actually less common than most people think). A common mistake is to look at something like an org chart and think that this should be codified as a simple tree, when in reality the tree itself is a physical report that can be derived from more explicit base data. Anyway, I don't see why linking tables can't use the explicit base data in foreign key relationships.
One of the problems of the RDBMS products today and in part the fault of SQL is that "tables" or relvars are WAY to heavyweight. In a true RDBMS a relvar is a fundamental variable much like local variables in a C function. The relvar should be able to referenced in arbitrary expressions with no silly ordered syntax like SQL. Relvar literals should be easy to define in expressions. A "link table" shouldn't be such a heavyweight object in the minds of a database designer. Because of the highly restrictive way SQL works, "Tables" get an overblown status as some kind of special object that makes things like tree data very difficult to work with. This is a failing of the RDBMS products on the market today, not relational model.
Any good RDBMS implementation would have necessary functions to make dealing with tree data easy, or the language would be general enough that they could be defined anyway.
The difference between Fabian Pascal and the truly enlightened is that the while both have come to the same conclusion that the masses are asses, the latter knows there's nothing that can be done about it, and no point in bitching about it either
Actually I do respect Fabian Pascal, and I am not really bashing him for his diatribes. I can't see how his behavior is any more of a waste of time than, say, posting on slashdot. I just hope that he actually ENJOYS running his website and is actually not as wound up as he sounds in his rants. In other words, if he is sort of like a maddox of the data fundamentals world I guess that's a good thing. If he really is this concerned about the state of the world constantly then he really could use some professional therapy or counseling.
Also, Fabian Pascal is way to impatient. The Codd material only came out about 30 or so years ago. That is not a long time for these things to materialize into usage by the mainstream engineering field. Couple this with the fact that the overwhelming perception is that many things in this field are "good enough."