Re: thinking about UPDATE
Date: Wed, 21 Jul 2004 12:48:14 +0300
Message-ID: <40fe3be3$1_at_post.usenet.com>
"Marshall Spight" <mspight_at_dnai.com> wrote in message
news:N0mLc.114236$WX.22912_at_attbi_s51...
> Hi all,
>
> I was thinking about the relationship between operations of the
> relational algebra and SQL statements.
> INSERT is a lot like union, but with an odd restriction that the
> intersection of the new set and the existing set must be empty. (Why?)
This is only if you define a primary or candidate key.
> DELETE is the same thing as set subtraction.
> But what the heck is UPDATE?
> UPDATE T set a1 = 0 where <cond>
> is
> T' = T { 0, a2, ... an | <cond> }
> T = T - T { a1, a2, ... an | <cond> }
> T = T union T'
> That's certainly more complicated than I would suspect
> for what seems like such a simple operation.
> Am I making it needlessly complex, or is this about right?
> Is there some other way to think about UPDATE?
You could think about it as a set transformation
T --- f ---> T'
{t | t in T}---> {f(t) | t in T}
Some questions to think about:
Why there is a need for primary/candidate keys in RM ?
If keys are essential, why the definitions of the relational operators don't
include them ?
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- Usenet.com - The #1 Usenet Newsgroup Service on The Planet! *** http://www.usenet.com Unlimited Download - 19 Seperate Servers - 90,000 groups - Uncensored -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=