| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> comp.databases.theory -> Re: Thinking about MINUS
Marshall wrote:
> That was a lot to digest. I read it all twice, and I think we are
> mostly
> on the same page. In particular I am quite convinced of the importance
> of names, and though you didn't mention it specifically, the value
> of an algebraic approach as per the Darwen article you referenced.
> (Which I also read, since it had been a long time since I first read
> it.)
>
> There are only a few things I want to respond to.
>
>
> On Jan 9, 8:58 am, Bob Badour <bbad..._at_pei.sympatico.ca> wrote:
>
>>Agreed. In fact, if I recall correctly, someone once determined that the >>lint warning for unused local variables correlated more with bugs than >>any other warning or error message. Of course, that might be urban >>legend. (I am relying solely on a ~20 year old memory, and I doubt I >>read the original work.)
>>>To my way of thinking, the database is a namespace that contains >>>named relvars, or in SQL we say "tables." *Each* table is itself >>>a separate namespace for attributes. >> >>When it comes to relations, I disagree, and I see no reason to >>perpetuate the sins of SQL.
>>We have a formalism for expressing predicates as constraints. Data types >>are merely constraints in those predicates. The manipulation rules spell >>out what to do with those constraints in various situations, and the >>rules differ from one situation (ie. operation) to another.
>>To join the attributes, we must agree to use the intersection of their >>domains. This suggests the data type must be a subtype of both >>attributes. Joining reals with integers, one necessarily ends up with >>integers. In fact, it should be the most general common subtype or least >>specific common subtype of the declared types. >> >>Thus for completely disjoint declared types, the data type of the >>resulting attribute is the universal subtype not the universal >>supertype. The universal subtype, of course, has an empty set of values >>and the union of all operations.
![]() |
![]() |