Re: more closed-world chatter

From: paul c <toledobythesea_at_oohay.ac>
Date: Thu, 03 May 2007 13:39:29 GMT
Message-ID: <lCl_h.156056$DE1.84607_at_pd7urf2no>


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.
> ...

Thanks, I feel better now. Still, I'd like to know I could paraphrase that query a little more formally, say using D&D <AND>. But the stipulation "It is required that if <A,T1> is in Hr1 and <A,T2> is in Hr2, then T1 = T2" stymies me, eg., if pricedomain={1,2} and anotherdomain={3}, it seems that <AND> isn't defined.

(I realize I could get the "false" answer suggested if only one side of the <AND> used the "Items" attribute but if I've already invented a different domain name, why should I need to invent a different attribute name. Seems like phrasing the query after I know the answer.)

Any comment?

p Received on Thu May 03 2007 - 15:39:29 CEST

Original text of this message