Re: RM VERY STRONG SUGGESTION 4: TRANSITION CONSTRAINTS

From: Brian <brian_at_selzer-software.com>
Date: Fri, 10 Sep 2010 12:48:28 -0700 (PDT)
Message-ID: <35f35f85-49a7-4ba8-a855-a68508130f87_at_m1g2000vbh.googlegroups.com>


On Sep 10, 2:08 pm, Erwin <e.sm..._at_myonline.be> wrote:
> On 10 sep, 14:29, Brian <br..._at_selzer-software.com> wrote:
>
> > Incidentally, the transition constraints defined on pages 220-221 of
> > TTM are not enforceable
>
> Of course they are enforceable.  Every declarable constraint that
> effectively evaluates to a boolean is enforceable by evaluating it and
> inspecting the boolean result and acting upon that result.
>
> So declarable constraints are enforceable by definition.
>
> > since they implicitly assume that each value
> > for S# permanently identifies a supplier.  What if the supplier number
> > for a given supplier changes?
>
> Then the machinery underlying the transition constraints will fail to
> raise some exception that you would like the system to raise.
>
> However, no matter what construct one wishes to use, it is materially
> impossible for any system to guaranteeably raise that exception in
> every case where you would want to see it raised.

I disagree.

CONSTRAINT IS_EMPTY (S~ WHERE STATUS' > STATUS) would guaranteeably raise that exception because it does not depend on key stability. Whenever there is an UPDATE that decreases STATUS, the exception would be raised.

>
> > I really don't understand why you're fighting this so vehemently,
> > seeing as how you are on record that you don't think := should be
> > supported anyway.- Tekst uit oorspronkelijk bericht niet weergeven -
>
> That record states pretty unmistakably that I find it a bad idea to
> expose direct relational assignment as an update vehicle that is
> directly available to the user.  That record also pretty unmistakably
> states my reason for having that belief : I dislike the implicitness
> of the delete that would arise.  

So you agree that

<relvar target> := <relation exp>;

and

DELETE <relvar target>, INSERT <relvar target> <relation exp>;

are the same?

<snip> Received on Fri Sep 10 2010 - 21:48:28 CEST

Original text of this message