Re: Relational Lattice, what is it good for?

From: Mikito Harakiri <mikharakiri_nospaum_at_yahoo.com>
Date: 15 Feb 2006 16:01:13 -0800
Message-ID: <1140048072.966295.201000_at_g43g2000cwa.googlegroups.com>


paul c wrote:
> 1) Marshall said in one of his notes: "Then join and union are
> distributive over each other iff (ab) and (ac) are empty." Later,
> 'Mikito' said it differently (I think): "(a join c) union (b join c)
> union (a join b) == b union c ==> A union (B join C) == (A union B) join
> (A union C)".

I think Spight criteria is sufficient condition for distributivity. Take

A = "xy"
B = "yz"
C = "zx"

Then, distributivity holds, while the Spight criteria premise doesn't seem to.

> 2) I'm curious what were the "view updates" Mikito had in mind, were
> they ones that are evident in products and elsewhere to be logically
> impossible, such as insert through union, or was the intent merely to
> make a simpler engine? (One reason 'inner' union intrigued me was
> whether its 'assymetry' offered a logical avenue toward more complete
> single-table closure in spite of the distribution as well as what I
> think of, maybe wrongly, as the de Morgan problem, eg. if you can't
> insert to a union, you can't delete from its complement.)

All sort of things: formal basis for query transformations, formal basis for view updates (as opposed to D&D ad-hock rules), formal basis for incremental maintenece of materialized views (which is the easier and the opposite problem to view updates).

When approaching view updates, the critical abstraction IMO is to remove the concept of update. Update is just a delta of the view (or several views). Formally we have a set of views {V1,V2,V3} defined in terms of base relations {R1, R2, R3, R4}. In other words we have a system of equations

V1 = V1(R1, R2, R3, R4)
V2 = V2(R1, R2, R3, R4)
V3 = V3(R1, R2, R3, R4)

If we can invert these relations and write

R1 = R1(V1,V2,V3)
R2 = R2(V1,V2,V3)
R3 = R3(V1,V2,V3)
R4 = R4(V1,V2,V3)

then the view updates problem is solved, because all that is requred to do is just plug in the V1+delta1, V2+delta2, V3+delta3 into the right side of the above system. Of course this is easy to say, but hard to do. This is where the simplicity of the relational algebra becomes paramount.

For the record, I never really understood Banchilhon&Spyratos method (and their followers). How can view update method be agnostic of the particular databases model where it is appiled (that is the Relational Model)? Received on Thu Feb 16 2006 - 01:01:13 CET

Original text of this message