Re: curiousity of sets of no relations?
Date: Sat, 10 Jun 2006 16:11:05 GMT
Message-ID: <taCig.20284$A26.463582_at_ursa-nb00s0.nbnet.nb.ca>
> In his Intro to DB, 8th Ed., page 195 in the Relational Algebra chapter, 
> CJ Date says:
> 
> (Quote, with point numbers added and asterisks for footnotes)
> Some Generalizations
> 
> JOIN, UNION, and INTERSECTION were all defined originally as dyadic 
> operators (i.e., each took exactly two relations as operands);* as we 
> have seen, however, they can be unambiguously generalized to become 
> n-adic operators for arbitrary n> 1.  But what about n=1? Or n=0?  It 
> turns out to be desireable, at least from a conceptual point of view, to 
> be able to perform "joins", "unions", and "intersections" of (a) just a 
> single relation and (b) no relations at all (even though Tutorial D 
> provides no direct syntactic support for any such operations).  Here are 
> the definitions.  Let s be a set of relations (all of the same relation 
> type RT in the case of union and intersection).  Then:
> 
> (1) If s contains just one relation r, then the join, union, and 
> intersection of all relations in s are all defined to be simply r.
> 
> (2) If s contains no relations at all, then:
> 
> (2.1) The join of all relations in s is defined to be TABLE_DEE (the 
> identity with respect to join).
> 
> (2.2) The union of all relations in s is defined to be the empty 
> relation of type RT.
> 
> (2.3) The intersection of all relations in s is defined to be the 
> "universal" relation of type RT - that is, that unique relation of type 
> RT that contains all possible tuples with heading H, where H is the 
> heading of type RT.**
> 
> * MINUS is dyadic, too.  By contrast, restrict and project are monodic 
> operators.
> 
> ** We note in passing that the term universal relation is usually used 
> in the literature with a very different meaning. ...
> 
> (End of quote)
> 
> In the exercises for that chapter (#7.10), Date asks "Given that 
> intersect is a special case of join, why do not both operators give the 
> same result when applied to no relations at all?"
> 
> My guess at the motivation for all this is that it is at least partly to 
> define things completely enough to allow prefix notation, eg. 
> JOIN/INTERSECT/UNION (r1, r2, ... , rn).  If that's so, then I can see 
> that we would want JOIN() (by this I mean the JOIN of nothing) to give 
> TABLE_DEE, if we wanted (JOIN())JOIN(r1) to give r1.  Similarly for 
> INTERSECT() and other combinations of the three operators.
> 
> That seems a practical motivation.  In terms of relations and/or set 
> theory/predicate calculus can anybody give a more theoretical one?
He simply defined them as the identity elements for the specific operations just as one defines any aggregate/fold of zero elements using the identity element for the base operation. Received on Sat Jun 10 2006 - 18:11:05 CEST
