| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> comp.databases.theory -> Re: more closed-world chatter
paul c wrote:
> Bob Badour wrote:
>
>> paul c wrote:
>>
>>> paul c wrote:
>>>
>>>> If I have a domain of items consisting of the values "a" and "b" and
>>>> a domain of item prices consisting of the values "1" and "2" and an
>>>> empty relation {ItemID, Price} known by the relvar name "Items", I
>>>> take it that the logical complement of "Items" has four tuples -
>>>> loosely, <a,1>,<a,2>,<b,1>,<b,2>.
>>>>
>>>> If I select from Items where Price = 3, should a dbms answer with an
>>>> empty relation or should it take exception, such as "illegal
>>>> question"? If it doesn't take exception, then I'd guess it is
>>>> supposing a complement that has an infinite number of tuples which
>>>> couldn't be implemented on a finite computer.
>>>>
>>>> As unhappy as this makes me, I'm now thinking exceptions can't be
>>>> avoided in practice.
>>>>
>>>> p
>>>
>>> Ie., is it a logical mistake to allow the query in the first place?
>>
>> No, it is not a logical mistake. Equality evaluates to false for
>> values of disjoint types. Because 3 is not in your type, the
>> comparison evaluates to false.
>> ...
The comparison is necessarily defined in the most specific common supertype, which might be the universal supertype. I don't see the problem you are seeing. Obviously, you are joining another relation with a Price attribute defined on some supertype of the Price attribute in Items:
Items <AND> (Price = 3) Received on Thu May 03 2007 - 09:37:18 CDT
![]() |
![]() |