Re: Relation Schemata vs. Relation Variables

From: Jon Heggland <jon.heggland_at_idi.ntnu.no>
Date: Thu, 31 Aug 2006 08:29:37 +0200
Message-ID: <ed5vod$pnm$1_at_orkan.itea.ntnu.no>


vc wrote:
> Jon Heggland wrote:

>> I don't understand your reference to Dataphor here. Dataphor's
>> transition constraints are tuple-based,

>
> So what ? The Dataphor row-level transition constraint is a special
> case of the more general relvar constraint. Are you criticizing
> Dataphor for failure to implement a more general relvar constraint
> mechanism ? I am sure they had a lot of reasons for not doing so.

I can see only one: Performance.

>> and aren't enforced usefully
>> when using relvar assignment (as opposed to insert/update/delete).

>
> I am not intimately familiar with Dataphor, but my impression was that
> they did not implement relational assignment at all, just the
> 'shorthand' delete/upadate/insert operators. Is that so ?

No, they have relational assignment; implemented as delete-insert, as far as I can tell. Which means that their transition constraints can be circumvented, if they're not carefully written.

> In any
> case, they did what they could by implementing row-level declarative
> transition constraints 'set-theoretically', something the OP was
> wondering about.

Then I probably misunderstand what you and Marshall mean by 'set-theoretically'. My point was just that Dataphor's TCs are (for update) based on comparing pairs of tuples, and the pairing is based on the formulation of the 'update' statement. When using relational assignment (including translating an update shorthand to an assignment) this pairing is lost; thus, that kind of TC doesn't work. (It also has other problems.) TTM-style transition constraints, based on comparing (pairs of) relations, not tuples, avoid those problems. I thought this was what you meant by the term 'set-theoretic': set-at-a-time vs. tuple-at-a-time.

-- 
Jon
Received on Thu Aug 31 2006 - 08:29:37 CEST

Original text of this message