| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> comp.databases.theory -> Re: atomic
On Nov 7, 11:39 am, paul c <toledobythe..._at_ooyah.ac> wrote:
> David BL wrote:
> > On Nov 6, 3:45 pm, David BL <davi..._at_iinet.net.au> wrote:
> >> On another note, I've been thinking of an interesting partial ordering
> >> on mv-tuples that is associated with information redundancy :
>
> >> t1 <= t2 if
> >> attribs(t1) is a subset of attribs(t2) and
> >> for each attrib a in attribs(t1), t1(a) is a subset of t2(a)
>
> >> t1 <= t2 means that t1 is (information) redundant with respect to t2.
>
> > This isn't quite right. Instead the definition should be
>
> > t1 <= t2 if both the following
>
> > for each attrib a in (attribs(t1) intersect attribs(t2)),
> > t1(a) is a subset of t2(a)
>
> > for each attrib a in (attribs(t1) \ attribs(t2)),
> > t1(a) = {}
>
> > ...
>
> Sorry if I missed something but does "\" mean divide? (If so, which
> divide, Codd's or another one?) (not saying I understand the rest,
> because I'm a slowpoke, but I do think the first version can be
> expressed with D&D "semijoin".)
No "\" means set difference.
attribs(t1) \ attribs(t2) are the attributes in t1 that don't also appear in t2.
t1 <= t2 (or equivalently t2 => t1) can be thought of as meaning that t2 implies t1, in the sense that all the facts implied by t1 are a subset of all the facts implied by t2.
I haven't yet bothered to prove many of my claims yet because it's a lot or work and I actually have a 9-5 job!
Here is an example:
Claim: if t1 => t2 & t2 => t3 then t1 => t3 Proof:
if a in (attribs(t1) intersect attribs(t3)) then
if a in attribs(t2) then
a in (attribs(t1) intersect attribs(t2)) so t1(a) is a
subset of t2(a)
a in (attribs(t2) intersect attribs(t3)) so t2(a) is a
subset of t3(a)
so t1(a) is a subset of t3(a)
else
a in (attribs(t1) \ attribs(t2)) so t1(a) = {}
so t1(a) is a subset of t3(a)
else if a in (attribs(t1) \ attribs(t3)) then
if a in attribs(t2) then
a in (attribs(t1) intersect attribs(t2)) so t1(a) is a
subset of t2(a)
a in (attribs(t2) \ attribs(t3)) so t2(a) = {}
so t1(a) = {} (because subset of empty set is empty)
else
a in (attribs(t1) \ attribs(t2)) so t1(a) = {}
I don't know about you but writing out these sorts of proofs is not my idea of fun! Received on Tue Nov 06 2007 - 21:34:01 CST
![]() |
![]() |