4 ms·
I'm glad to see Chris Date in the paper. Chris Date has been railing about no RDBMS being an RDBMS for decades. They aren't "complaining" about Codd, anymore
by hgsgm 4y ago
I'm glad to see Chris Date in the paper.
Chris Date has been railing about no RDBMS being an RDBMS for decades.
They aren't "complaining" about Codd, anymore than Einstein "complained" about Newton. They are making valid academic criticisms, discussing solutions, and lamenting that in the past 50 years those solutions have not been implemented in practice.
- Pxtl 4y agoSQL is the perfect example of "worse is better". SQL was an amazing invention for its time, but it has not grown and developed the way other languages have. There is basically no industry velocity in upgrading SQL the way there was with procedural languages. SQL and C were both invented in the '70s. While C may not have grown as much as SQL has, new major languages that handle similar tasks to C have come into their own, willing to throw out old syntax or ideas where needed. Now, one could argue that SQLite is the Javascript of SQLs, and that T-Sql is the C# of SQL, and that PL/SQL is the COBOL of Sql, and that Postgres is the Java of SQL... but in all cases those C-derived languages were far more willing to experiment and break out of the narrow bounds set by their antecedents than SQL variants were. Obviously there are small and interesting experiments in the DB space, but none of those are the kind of industry-standardized improvements to the formula we see in the space of C-derived languages.
- jameshart 4y agoIt does read kind of like a complaint to me. The question the paper poses is ‘why’ are there no relational DBMS’s. And it places a bunch of the blame, it seems, at the fact that Codd left some things ambiguous and the people behind SQL resolved that ambiguity in a way that weakened the ‘relationality’ of the result. But you’re right, it’s possible to read this more as ‘blameless post-mortem’ five-whying. Why aren’t there any RDBMSs? - Because SQL won, and SQL is not relational Why isn’t SQL relational? - because it’s creators misunderstood Codd’s paper in these ways Why was Codd’s paper open to misinterpretation? - because Codd didn’t think of these particular complexities… Which I guess is one way to follow the ‘why’ thread. But it does slightly ignore the important ‘why did SQL win?’ Branch…
- kragen 4y agosql won, as i understand the story, because ibm thought cobol programmers were too dumb to handle the relational algebra i have to admit that i find sql a lot easier to read than the relational algebra, even though the latter is more aesthetically appealing sql is kind of like golang, it makes your code a bit long-winded and tedious compared to a more crystalline minimal design, but this helps you avoid the temptation of being too clever and thus writing code you will have to debug
- jameshart 4y agoWhich points to the blame for SQL not implementing Codd’s ideas right not lying at the feet of Codd’s being insufficiently precise, as claimed in the linked paper, but rather as a deliberate choice to simplify the relational model.
- kragen 4y agoi would rather say to make the relational model more complex
- goto11 4y agoSQL tables are multisets (sets allowing duplicates) rather than sets as defined by the relational model. This was likely a deliberate decision in order to make implementations simpler and faster, since it avoids some uniqueness checks. For example it is much simpler to implement UNION if you don't have to check for duplicates. But arguably this push some complexity to the user, since duplicates lead to all kinds of problems. On the other hand three-valued logic is obviously more complex than regular boolean logic. But I don't agree with the author that three-valued is in conflict with the relational model.
- goto11 4y agoAs far as I know, SQL won because it was used by the first commercially successful relational database systems, and then other systems entering the marked needed to support it. It is a bit like JavaScript. Everyone knows it has its flaws and it is easy to imagine a better alternative, but it is "good enough".