Re: MERGE as the imperative form of aggregation

From: Marshall <marshall.spight_at_gmail.com>
Date: 15 Apr 2007 21:46:28 -0700
Message-ID: <1176698788.879362.35910_at_y80g2000hsf.googlegroups.com>


On Apr 15, 8:16 pm, "Brian Selzer" <b..._at_selzer-software.com> wrote:
> "Marshall" <marshall.spi..._at_gmail.com> wrote in message
>
> > I find the symmetry and completeness of insert/delete to be
> > compelling. My reaction is that update is *already* an "ugly
> > combination of insert and delete."
>
> Update may be "ugly," but it's a necessary and primative operation. It is
> not just a combination of insert and delete. Because a key value can only
> be used to identify a tuple in single database state, update provides the
> means to correlate the tuples in the preceding state with those in the
> succeeding state so that transition constraints can be enforced.

Well, I do not consider it a given by any means that transition constraints are necessary or primitive. In fact I'm not even sure if they aren't perhaps actually a bad idea. I'm open to discussion on the topic.

In any event, if we accept the necessity of transition constraints, then it does seem as if we might have to accept the existence of update as a primitive. (Otherwise my earlier claim holds.)

> > Triggers, sigh. I have a poor grasp of what they are for and
> > what they mean from a theoretical standpoint. What are they
> > necessary for? I have seen good descriptions of how to
> > express view updating as triggers that model the inverse
> > view, but would that be necessary if we had full view updating
> > in the engine? What are triggers necessary for? I am clear
> > on the value of *notification* of changes being sent to other
> > components, but *actions* are less clear to me. Especially
> > "instead of" actions.
>
> From a theoretical standpoint, triggers are necessary because there is no
> deterministic mechanism defined in the Relational Model to correlate tuples
> during a transition from one database state to the next.

Again, I do not accept as a given the desirability of correlating tuples. In fact it seems pretty clearly against the spirit of the relational model, at the very least.

> You can't use a key: [large snip]

I definitely *don't* want to have the whole keys/correlating tuples conversation again!

Instead, I would like to discuss the application or importance or theoretic foundation of transition constraints and/or triggers. Anyone?

Marshall Received on Mon Apr 16 2007 - 06:46:28 CEST

Original text of this message