Re: Is relational theory irrelevant?

From: Paul Vernon <paul.vernon_at_ukk.ibmm.comm>
Date: Wed, 19 Nov 2003 21:59:29 -0000
Message-ID: <bpgpb5$1dps$1_at_gazette.almaden.ibm.com>


"Serge Rielau" <srielau_at_ca.eye-bee-m.com> wrote in message news:bpfsbs$dc6$1_at_hanover.torolab.ibm.com...
> But now I sendemail only if the table of addresses is updated.
> That's most certainly not what I want.
> Triggers are tables specific business logic, what we need to model here
> is an application process.

> As a user I want to send email to all my Windows 2000 users to warn them
> of the newest virus. So I clearly need to exploit predicates.
> Once the email has been send I want to log that in an audit table so I
> can prove I (IT security) did my job:
>
> INSERT INTO log SELECT user,
> sendmail('Beware of virus x', user) as success
> FROM inventory
> WHERE os = 'W2K';

Your example is flawed. The above log cannot prove you did your job, because the table itself is not tied to the success (or otherwise) of the external action. It is trivial to spoof a successful mail send. I.e.

INSERT INTO log SELECT user,

                         'EMAIL SUCCESS' as success
                    FROM inventory
                    WHERE os = 'W2K';

> PS: I trust the readers will distinguish between a (silly) example and
> generalization. So please don't overvalue the chosen schema

It is my claim that *any example* that purports to show that logical level constructs can guarantee to record correctly anything about external actions is bogus. You need to tie external actions to particular database values, and that cannot be done at the logical level (well, at least not without poluting your logical model with extra, ad-hoc extensions).

Regards
Paul Vernon
Business Intelligence, IBM Global Services Received on Wed Nov 19 2003 - 22:59:29 CET

Original text of this message