Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> comp.databases.theory -> Vadim Tropashko = Aloha Kakuikanu?
Strange that this text is almost identical to the previous one posted under
a different name.
"Vadim Tropashko" <vadimtro_invalid_at_yahoo.com> wrote in message
news:1182810553.424372.37300_at_i38g2000prf.googlegroups.com...
> On Jun 25, 12:56 pm, Jan Hidders <hidd..._at_gmail.com> wrote:
>> > > (7) r * {()} = r >> > > (13) {()} = {()} + [] >> >> > > Special distribution equalities: >> >> > > (8) r * (s + t) = (r * s) + (r * t) >> > > if A(r) * A(s) <= A(t) or A(r) * A(t) <= A(s) >> > > (9) r + (s * t) = (r + s) * (r + t) >> > > if A(s) * A(t) <= A(r) >> >> > > Absorption: >> >> > > (20) r + (r * s) = r >> > > (21) r * (r + s) = r >> >> > > Empty relations: >> >> > > (10) R = R + [H] >> > > if H is the header of R >> > > (11) [H] * [S] = [H + S] >> > > (12) [H] + [S] = [H * S] >> > > (22) R * [] = [H] >> > > if H is the header of R >> >> > You have informal "H is the header of R" in many places. Why don't we >> > use this axiom as a definition of [H]? Then, we just substitute [H] >> > with R * []. >> >> Well, I would not say it is informal. It has a precise meaning since >> we can assume that we know the database schema, and given that schema >> you can see which axioms are generated by the axiom schemas. >
> >> Your suggestion might work, but you would have to first formalize what >> your inference mechanism is before we can start thinking about it. >> Right now my formalism is quite simple. It derives r = s iff it can >> rewrite r to s with the given axioms. Yours would probably be much >> more complicated than that. Can you give a formal definition of yours? >
>
>
> >> > Also given that we agreed not to introduce operator precedence, the RL >> > expressions contain a lot of parenthesis. Therefore, introducing >> > constants which include brackets is not the best choice. >> >> They are sets, so I need to put something around them. :-) Seriously, >> I don't see what else I could do. Note that in a real expression there >> would be things like <a,b,c> and [b,c,e]. How do you want me to write >> that without brackets? >
>
>
> >> > The [] brakets are very convenient when we want to specify relation >> > arguments explicitly, e.g [x,y]. In the algebraic context relation >> > header is just R * 00 >> >> .. under the assumption that the header of R is {x,y}, and such >> assumptions we cannot use in our inference mechanism. Again, we could >> move to such an inference mechanism but we would have to formalize it. >
> >> > > Equalities >> >> > > (27) <H> * <S> = <H + S> >> > > (28) R * <x> = R >> > > if x in header H (NOTE x is a single attribute) >> >> > I don't see why it is an equality axiom. The <x> is unary relation >> > which is domain x. >> >> Yes, it corresponds to the equation x=x, but the grouping of the >> axioms is just to give it some structure. >> > And also you have informal note. Once again you can express the >> > condition that the relation R is a single attribute relation as >> >> > 00 <= X <= R /\ 00 implies X = 00 or X = R /\ 00 >> >> Yes, but again this means that you extend your inference mechanism, >> namely with first order logic inference. >
>
>
> >> Again, this requires that you >> first define this formally, and even then I would still be inclined to >> come up with a proof for the simpeler inference mechanisme first. Note >> that once you have that, you can probably from that derive proofs for >> more complicated inference mechanisms. >> >> > > (30) <> = {()} >
>
>
>
>
>
>
> >> > > Miscellaneous >> >> > > (26) <H> + [S] = <H * S> >> > > (29) [H] * <S> = [H + S] >> > > (31) ((r * <S>) + [H]) * <S> = ((r * <S>) + [H']) >> > > if S * H nonempty and H + S = H' >> >> > You have to specify that headers of <S> and r overlap on no more than >> > a single attribute -- and I don't see this condition here. >> >> Why do you think that condition is necessary? >
>
>