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

From: Mr. Scott <do_not_reply_at_noone.com>
Date: Thu, 13 Aug 2009 18:38:08 -0400
Message-ID: <WKKdnUr4c61NCBnXnZ2dnUVZ_gydnZ2d_at_giganews.com>


"paul c" <toledobythesea_at_oohay.ac> wrote in message news:QsKgm.38900$Db2.18218_at_edtnps83...
> Mr. Scott wrote:

>> "paul c" <toledobythesea_at_oohay.ac> wrote in message 
>> news:IYAgm.40873$PH1.30537_at_edtnps82...
>>> Mr. Scott wrote:
>>> ...
>>>> I'm confused.  What requirement are you referring to?  Are you 
>>>> referring to the requirement that nulls be eliminated or the fact that 
>>>> an order isn't an order without a delivery destination?  The 
>>>> referential cycle was a consequence of trying to eliminate nulls. ...
>>> I meant the requirement that a delivery address can't be recorded 
>>> without an order date.
>>
>> I'm even more confused.
>

> Okay, I'll give it a try. My ignorance of the 1000-page-or-so sql
> standard puts me at a disadvantage, so to quote one of your earlier posts:
> "If the table is decomposed into tables (X), (X,A), (X,B) and (X,C)", I
> have to ask a few questions.

I already acknowledged in post subsequent to that one that there is a problem with that decomposition, so I would prefer to use

{X,D,E}, {X,A}, {X,B}, and {X,C}

instead to avoid confusion. (Note that I switched from parenthesis to braces.)

>

> 1) in SQL, just what does decompositon of tables mean? Does it mean what
> relational decomposition means, ie., lossless projection, or something
> else?

Relational decomposition doesn't mean lossless projection. The decomposed relations can contain extra tuples that don't show up in a join. Referential constraints are needed to prevent the extra tuples.

> 2) (allow me to drop the parenthesis and use braces, just because it makes
> me happier to avoid any nuance of implementation language) Does the
> relation {X,A,B,C} have one predicate or several?

The table {X,A,B,C,D,E} has one predicate. All of the attributes apply to all orders even if their values are at present unknown.

The predicate is "being an order that has order number X for customer E that was placed on date D with delivery e-mail address A and delivery snail-mail address B and delivery contact phone number C where X is an element of the domain of all order numbers and E is an element of the domain of all customers and D is an element of the domain of all dates and A is an element of the domain of all e-mail addresses and B is an element of the domain of all snail-mail addresses and C is an element of the domain of all phone numbers" where X, A, B, C, D and E are free. A row in the table consists of values that are to be substituted for free variables in the predicate. The row {x1,a1,b1,c1,d1,e1} would mean after substitution "the order with order number x1 for customer e1 that was placed on date d1 with delivery e-mail address a1 and snail-mail address b1 and delivery contact phone number c1." A row with a null snail-mail address and a null delivery contact, {x2,a2,d2,e2} means after substitution "the order that has order number x2 for customer e2 that was placed on date d2 with delivery e-mail address a2 and delivery snail-mail address B and delivery contact phone number C where B is an element of the domain of all snail-mail addresses and C is an element of the domain of all phone numbers."

<snip>

> 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 and delivery snail-mail address B and delivery contact phone number C where X is an element of the domain of all order numbers and E is an element of the domain of all customers and D is an element of the domain of all dates and A is an element of the domain of all e-mail addresses and B is an element of the domain of all snail-mail addresses and C is an element of the domain of all phone numbers." Received on Fri Aug 14 2009 - 00:38:08 CEST

Original text of this message