• marvin.elder (3/8/2010)


    Tom,

    So you're "down" on Chris Date? Don't you give him credit for authoring the most widely used textbook on relational database structure and SQL?

    Or is it that you liked his early work, but when he started publishing things like The Third Manifesto with Hugh Darwen he seemed to show that maybe his early success had gone to his head.

    Well, I was a bit tongue in cheek there and didn't expect to have to justify it, but now I've been called on it I guess I have to explain how I feel about him.

    I don't knowfor sure if the textbook is useful or not (but I believe that it is not a good textbook). When I looked at it (first edition, I think) ages ago I decided it was boring and pretentious and not worth my reading. Anyway my database background was what you might call semi-academic, mostly learnt from journal papers rather than from textbooks, so that may have biased me against the books. I gather from customer reviews at Amazon that the latest edition is incomprehensible to an ordinary mortal, but that's true of a lot of textbooks. Apparently he's now invented his own language to do the examples in and the latest edition has hardly any SQL in it; that's a pretty arrogant approach, I think, but of course both Knuth and Dijkstra invented their own languages for didactic purposes, so there are good precedents (there are also appallingly bad ones, eg Wirth's Pascal).

    I do feel that some of Date's teaching is extremely dangerous, and sets students back quite badly: it can take a long time to get someone to understand why NULL is wanted and needed in the real world after they've had a good dose of Date's anti-null lunacy. He claimed (or is reported as having claimed) to have disagreed with Codd about atomicity. In fact what he really disagreed about was which domains would generally be permissable as attribute domains, also he also announced his own set of principles for being relational which included a very direct statement of (Codd's) atomicity. So that I'm tempted to think that that was all a stunt to try to make himself look like the equal of Codd. Of course this messing about with the definition of atomicity is going to leave the average Joe more confused, not less confused, and it's a plain fact that so far as clarity versus vagueness there's nothing to choose between Codd's version and Date's (both are pretty awful).

    I don't have a down on him like Curt Monash does but like Monash I'm inclined to ask to what extent his textbook - which is clearly what everyone is using, because it has sold in enormous numbers - is responsible for the appalling standard of beginning DBAs and DB Developers.

    I don't like the new stuff much, there's a lot of armwaving, but to some extent there's a good approach to temporal data in it. I don't like his 6NF, but of course it's no more misguided than 4NF or 5NF and a lot less silly than DKNF (but I understand he believes those are good things too). Some of the things he did 30 years ago were quite good, but sometimes I get the feeling that some of his later work is theology instead of science or engineering.

    Maybe you can enlighten me as to your thoughts on authors such as Selko, Jim Gray or maybe even Fabian Pascal?

    I don't know any Selko. If you mean Joe Celko, I like what I've read of his. Don't agree with everything he says, but I would say that his pieces at http://www.dbazine.com/top-auth/top-auth-celko are far more useful to anyone who wants to understand current RDBMS than Date's textbook. Jim Gray did some very good work, wrote some very good papers, which were fun to read. Fabian Pascal wrote two books in the early 90s which I've been told are quite good (I know from experience that people who read them ended up far better at handling RDBMS than people who read Date's bestseller). It has been said that he subsequently grew into an intemperate idealogical jerk (the ideology is probably Date's influence on him) but I think it would be fairer to say he doesn't pull his punches than to call him a jerk (intemperate is correct though). He's good deal more readable than Date, but he seems to have written more anti-SQL (or anti DB2 or anti SQLS or anti Oracle etc) diatribes than scientific papers, and I guess that sort of diatribe is just naturally more readable.

    There's a lot of space between Pascal and Date. They both start from the position that IBM got it all wrong in the 70s, and that there are currently no relational databases in the world, and I guess I have to agree with them. Date seems to claim that he has "improved" on Codd's models to produce the perfect relational model and we should all do it his way (I think his model is poorer than Codd's). Pascal (usually) says that Codd had it about right and we should have implemented Codd's model (I agree); he also says that all our current database systems are a waste of space (there I don't agree with him) and that the way XML data is being introduced means they are getting worse not better (there I certainly agree with him - we have known for decades how to do hierarchic data, things like IDMSX were extremely good DBMSs, but that knowledge is not being used to help devise means of handling XML data in the RDBMS context).

    Tom