Re: Relational Divsion
Date: 1 Jun 2006 07:37:49 -0700
If my understanding is correct, then all of the following are true :
You didn't get it. At all. It is explained very clearly on page 167 (or thereabout) in the Manifesto's new edition.
If there are no purple parts at all, then the query "get all suppliers that supply all purple parts", should return all known suppliers. Reasons to be found in predicate logic. Specifically : desired equivalence between "FORALL x : p(x)" and "NOT EXISTS x : not(p(x))".
Codd's version of divide returned only those suppliers who supplied at least one part. Thus Codd's version of divide was therefore, after all, not a good candidate for doing this kind of query.
Date's preferred answer is then clearly *_NOT_* "none of them", but quite the opposite : "even a few more of them".
And defining the operator such that it complies to said requirement, necessitates a third argument besides dividend and divisor. Which makes up for the fact that Date/Darwen's relational divide is actually a fourth version besides all those that you mention. Received on Thu Jun 01 2006 - 16:37:49 CEST