Christopher J Date, the current maintainer of the RelationalModel
, initiated by EfCodd
. More information at DbDebunk
What exactly is meant by "maintainer"? Is this an official title? Or is he simply regarded by others in the relational community as the most knowledgeable researcher on the subject?
I suspect that the writer intended the latter. I don't know if he's the most
knowledgeable, but he and his frequent collaborator HughDarwen
are certainly among the most visible relational proponents to the general programming populace.
Author of the book AnIntroductionToDatabaseSystems
. Co-author, along with HughDarwen
, of TheThirdManifesto
(Discussion moved here from NotesOnaCeePlusPlusRdbmsApi.)
For somebody who is a bit "forceful" about his opinions, ChrisDate
does not seem to spend much energy trying to popularize his ideas. He comes across as an arrogant elitist at times. Also, I think it may be possible to make relational operators/functions that are more user-friendly (based on combinations of primitives). As long as they don't violate the relational rules, I see no reason why such could not be included.
For somebody who is a bit "forceful" about his opinions, ChrisDate does not seem to spend much energy trying to popularize his ideas.
That's an odd thing to say, given all the books and articles he's written, and the fact that one of his texts is, AFAIK, a widely-used introductory college text.
He comes across as an arrogant elitist at times.
I can see where you might get that impression, but I've exchanged a fair amount of correspondence with Chris, and he's actually quite charming. But he does not compromise on rigor and clarity of thought in his field of expertise. (I made a point of reviewing my messages to him several times before sending them.) There is no shame in that -- he's been working in this field for a very long time, and understands (at least) the theoretical aspects of data organization better than ten modern industry rag pundits put together.
[When I first read this page I got the same impression of ChrisDate
. However, after having read some of his articles, he seems to me to be actually a really cool guy. I guess he would come off as more of an elitist than most people in the business, but I think it's because he is very bright; and as far as arrogance is concerned, any hint of that I may have perceived at first has been completely dispelled at least in my limited reading. (And for some reason seeing his picture helped change my first impression of him.)
On the other hand, most people are a fresh of breath air after finding nothing but rants from FabianPascal
Also, I think it may be possible to make relational operators/functions that are more user-friendly (based on combinations of primitives).
That's exactly what he and HughDarwen
do in TheThirdManifesto
. In fact, everything is based on a very simple relational algebra of very few operators. The higher-level operators like Join, LeftJoin?
, Union, etc. are in fact somewhat more user-friendly than the fundamental algebraic operators, but the algebra is really not hard to grasp. And there is no reason not to create additional higher-level operators to address common needs -- in fact, DateAndDarwen
do this themselves in their texts occasionally.
Union and join are primitive operations (or very close to primitive; they're among the "basic eight" (which can be reduced to 5, IIRC). LeftJoin? is only necessary when you have nulls in your database, something that ChrisDate most decidedly does not recommend. See NullsAndRelationalModel.
demonstrate that they can be reduced to AND, OR, NOT, and REMOVE. (That's not the only possible minimal set, as they note; simply NOR and REMOVE is an even smaller such set.)
Left joins are never necessary
per se, but are very convenient. An outer join (or more properly, outer semijoin) can be expressed as a combination of inner or cartesian joins, restrictions, and unions.
I find ChrisDate
to be rigorous in his treatment of the RelationalModel
, and non-rigorous in his treatment of anything that does not fit it. Specifically, I find his treatment of ObjectOrientation
to be close to dishonest. He has written TheThirdManifesto
and a series of articles where he goes against ObjectOrientation
, specifically attacking at least the type systems used in them.
However, not (note?
), *after* having written TheThirdManifesto
in 1998, he did not understand basic ObjectOriented
terminology. Specifically, in the 2001 article http://www.dbdebunk.citymax.com/page/page/622704.htm
he states that he's misunderstood the term "derive" (as in "to derive a class from another class") during the writing of the article. The intended understanding of the term was (in my opinion) also completely obvious from the context for anybody that is at all used to ObjectOriented
thinking. From this and other comments by ChrisDate
, I understand that he has not done much (or any?) object oriented programming, but only tried to pick holes in it from a theoretic point of view.
As a such, it is interesting to take inspiration from the writing of ChrisDate
, but when they touch on the intersection of OO and relational, they should be taken as what they are: Theoretical writings from somebody without practical experience in OO.
He tends to approach concepts from a theoretical point of view and would probably suggest that OO lacks enough agreed-upon formal theory to analyze properly. Confusion over terminology that you allude to would probably be seen as a side-effect of this. Even experienced OO designers don't always agree on terminology, especially if they come from very different language backgrounds, such as SmallTalk versus Java. See his quote in OoLacksConsistencyDiscussion.
And in DefinitionsForOo
See Also: TutorialDee