"Aloha Kakuikanu" <aloha.kakuikanu_at_yahoo.com> wrote in
news:1163791883.070595.269390_at_e3g2000cwe.googlegroups.com:
>
> NENASHI, Tegiri wrote:
>> "Aloha Kakuikanu" <aloha.kakuikanu_at_yahoo.com> wrote in
>> > What you meant to say:
>> >
>> > v1 = r1 join {1,2,.., 10}
>>
>> It was a selection, it was not a join.
>
> Is there a difference?
>
>> >> > I agree that this example is not invertible. But switch the
>> >> > roles of 10 and 100 and it becomes updateable!
>> >>
>> >> Please explain.
>> >
>> > r1 union {1,2,.., 10} = {1,2,.., 10}
>>
>> No r1 is the base relation,; r1 = {1..100};
>
> Again, r1 is variable, not constant.
>
>> r1 union {1..10} = {1..100}
>> = r1 if union is the set union.
>
> Here we have misunderstanding. We both agreed that your original
> example is not updateable. Then I remarked that if one switches the
> roles of 10 and 100, then the view becomes updateble. You asked me to
> clarify.
>
> In your original (not updateable view) example the constrant onto the
> r1 relation variable was:
>
> r1 union {1..100} = {1..100}
>
> I changed it into
>
> r1 union {1..10} = {1..10}
>
> Informally, in your example r1 was a one argument relation with the
> domain x in {1..100}. My modification looks like a narrowing domain to
> {1..10}, which doesn't make sence since later on I'm considering
> {1..100}. Therefore, forget about the interpretation, just leave the
> constraint
>
> r1 union {1..10} = {1..10}
>
> with whatever domain for x is.
>
> BTW, if you noticed, there is not a lot emphasis onto the domain in
> relational lattice anyway. The domain can be defined as some minimal
> element in the lattice, but I don't see anything really special about
> them.
>
>> > v1 = r1 join {1,2,.., 100}
>>
>> I do not undestand {1..100}. What is it ? Is it that your database
>> has any relations like the universal set ? It is not practical.
>
> No. {1..100} is just another relation that satisfies set inclusion
>
> {1..100} >= {1..10}
>
> (Please note that set inclusion is lattice inequality in relational
> lattice terms. Be sure to notice the order switch too).
>
>> Please do gradually:
>>
>> 1. The database has only r1 = {1..100}
>> 2. The view v1 = {x in r1|x between 1 and 10}
>> 3. Show that v1 is invertible.
>
> Once again that was your original example, which we both agreed is not
> updateable. It can be formally expressed in lattice terms as:
>
> r1 \/ {1..100} = {1..100}
> v1 = r1 /\ {1,2,.., 10}
>
> I see that if I want to be understood with my example, I'd better
> change the names for both the base relation and the view. Here it is
>
> X \/ {1..10} = {1..10}
> Y = X /\ {1,2,.., 100}
>
> where X is base relation, and Y is the view. As mentioned in the other
> post, this example is essentially
>
> X >= A
> A >= B
> Y = X /\ B
>
>>From where we easily derive
>
> Y = X
>
> !
Very well, I understand the notation now. But I am disappointed. Your
rules, one can better write them in logical notation:
- X : predicate that defines the relation
- X --> A : X implies B; the constraint
- A --> B : A implies B; how B is connected to A
- Y = X and B : predicate that defines the view.
By modus ponens (X, X-->A, A-->B|= B) one immediately sees that B is
true and X = Y
Can you give a more interesting concrete example of the invertible view
?
--
Tegi
>
>
Received on Fri Nov 17 2006 - 16:47:21 CST