Re: Another motivational example for inverse view

From: Aloha Kakuikanu <aloha.kakuikanu_at_yahoo.com>
Date: 16 Nov 2006 13:22:50 -0800
Message-ID: <1163712170.312680.76320_at_h54g2000cwb.googlegroups.com>


NENASHI, Tegiri wrote:
> "Aloha Kakuikanu" <aloha.kakuikanu_at_yahoo.com> wrote in
> news:1163634954.665108.258580_at_k70g2000cwa.googlegroups.com:
>
> > NENASHI, Tegiri wrote:
> >> You are joking are you not ? It is simple because the structure of
> >> the relations is the same, there is not the change of the structure
> >> that a join of tables has, you did not create a new structure. The
> >> probleme of the view updatability is a morphing of one structure into
> >> the other.
> >
> > Yes the relational transformation is indeed simple in this case. Yet
> > the example is far from trivial. And the quesion is: how do one
> > formally inverts such a view.
> >
>
> One uses the properties of the structure, the relational schema, to
> determine if the view is updatable. The example of coordinates, it is
> of a different kind. The likeness is on the surface only. One must know
> the direct and inverse mappings and so long as one knows, it is a
> trivial task. The database system does not know the mind of the
> programmer and the database system can not transform the coordinates.

But why do you treat functions and realtions separately? The example can be effectively reduced to the following. Let

X(x,y)

be (base) relation variable. Let

A(y,z)

be relation constant. Assume A(y,z) is an injective mapping y->z. Then, the view

Y = project_xz(X join A)

is updateable.

I can't work out this example formally yet.

I can't even work out a simpler example where

X(x,y)

is again (base) relation variable, and

A(y,z)

be relation constant. A is no longer a one-to-one function, however. The new requirement is

project_y (X(x,y)) is subset of project_y (A(y,z))

The view

Y = X join A

is updateable in this case. Why? Received on Thu Nov 16 2006 - 22:22:50 CET

Original text of this message