Re: WWW/Internet 2009: 2nd CFP until 21 September

From: Walter Mitty <wamitty_at_verizon.net>
Date: Fri, 14 Aug 2009 20:49:27 GMT
Message-ID: <r5khm.2044$nh2.739_at_nwrddc02.gnilink.net>


"paul c" <toledobythesea_at_oohay.ac> wrote in message news:YOehm.41212$PH1.10421_at_edtnps82...
> Mr. Scott wrote:
>> "paul c" <toledobythesea_at_oohay.ac> wrote in message
> ...
>>> 4) if the answer to 2) is 'one predicate', what does projection on any
>>> of the four columns mean?
>>
>> That is an interesting question. I think that the predicate of a
>> projection must include in some way the predicate of its operand. A
>> projection over B on the table {X,A,B,C,D,E} includes only those B's that
>> are actually in the table. Does this look right to you? "Being a
>> snail-mail address B for an order where an order has order number X for
>> customer E that was placed on date D with delivery e-mail address A ....
>
> If some 'row' (pretending for the moment that rows can be treated like
> tuples) contains 'null' (eg., 'unknown') in the B column, I presume in
> SQL that row instantiates, ie. stands for a true fact. But the Closed
> World Assumption means that unknown values are false. Seems like a
> contradiction to me.

This is a little over my head, but I'll dive in anyway.

Connecting SQL and "facts" can be tricky, particularly when nulls are involved.

If I say

select distinct OrderId, MailingAddress from Orders

and there are some rows with Null in MailingAddress, those rows don't appear in the result. The row may exist in orders, but its projection on the space
{OrderId, MailingAddress} doesn't exist (at least in the dialects I used). (assuming that what SELECT DISTINCT does is really a projection.)

Likewise if I say select count(MailingAddress) from Orders

I'm going to get the count of rows that have a value in MailingAddress. If I compare with

select count(1) from Orders where MailingAddress is not null
select count(1) from Orders where MailingAddress is null
select count(1) from Orders



I can see what happened. If some rows actually have null in Mailing address, it is as though those rows were not there when you do some operation that only deals with rows containing a value in MailingAddress.

Comparing this behaviour with either the open world assumption or the closed world assumption is largely in the mind of the beholder. Received on Fri Aug 14 2009 - 22:49:27 CEST

Original text of this message