# Re: more on delete from join

Date: Wed, 26 Aug 2009 13:51:21 -0700 (PDT)

Message-ID: <ac2e89ab-15c2-4d79-8329-3d8e2f42f45c_at_z4g2000prh.googlegroups.com>

On Aug 26, 1:03 pm, paul c <toledobythe..._at_oohay.ac> wrote:

> I meant "AND" as the logical connective, not shorthand for relational

*> "<AND>". "R AND A" stands for a logical conjunction of propositions,
**> each proposition having been concluded to be true.
*

Stop right there. You were writing R UNION A, so R and A are relations (or predicates) and not propositions. Once again, some propositions are predicates (namely 0-ary ones), but most of them aren't!

> Relational algebra

*> has no form to record, say, "proposition 1 (R) is true OR proposition 2
**> (A) is true" in one relation,
*

Algebras, in general, and relational algebra, in particular, manipulate elements, not propositions. From algebraic perspective relation structure (attributes, tuples) is ignored.

As for the rest of the discussion, I think Kevin nicely summarized why there is little point inventing ad-hock view update rules. I still stand for an approach where:

- We formalize relation update algebraically as

newView = oldView <union> deltaView

newBaseRel = oldBaseRel <union> deltaBaseRel

This may not necessarily be a single pair, as one can easily imagine several relvars changing in a single transaction.

2. Write down all the constraints and view definitions involving old relvars, new relvars and deltas as equations in relational algebra. Try to solve these equations so that deltas on the base relations are expressed via deltas upon views.

This is standard way of solving algebraic problems, and I fail to see why relational algebra has to be any different. Certainly the relational algebra is misshapen for this task... Received on Wed Aug 26 2009 - 22:51:21 CEST