Re: Principle of Orthogonal Design

From: Jan Hidders <hidders_at_gmail.com>
Date: Sun, 3 Feb 2008 05:26:36 -0800 (PST)
Message-ID: <865d2599-6d49-4799-ba48-0c168a66f468_at_u10g2000prn.googlegroups.com>


On 2 feb, 23:53, "Brian Selzer" <br..._at_selzer-software.com> wrote:
> "Brian Selzer" <br..._at_selzer-software.com> wrote in message
>
> news:de0pj.1810$xq2.1777_at_newssvr21.news.prodigy.net...
>
>
>
>
>
> > "Jan Hidders" <hidd..._at_gmail.com> wrote in message
> >news:febcf846-2d53-4979-af65-573b373ef6e9_at_l1g2000hsa.googlegroups.com...
> > On 29 jan, 19:24, "Brian Selzer" <br..._at_selzer-software.com> wrote:
>
> > [huge snip]
>
> >> > Or are you saying
> >> > that there must always be an inclusion dependency of one sort or
> >> > another for
> >> > there to be a POOD violation?
>
> >> Yes, I am. You can verify this in the definition of the POOD rule I
> >> already presented to you.
>
> >> -- Jan Hidders
>
> > There is something about this that just doesn't seem right to me.
>
> > Suppose you have two second order predicates, p and q, such that
>
> > p(s(A, B), C) \/ q(s(A, B), D),
>
> > represented by database schema with relations
>
> > P {A, B, C}
> >    KEY {A}, and
>
> > Q {A, B, D}
> >    KEY {A}.
>
> > Wouldn't there be meaning overlap between relations with those predicates
> > regardless of whether there is an inclusion dependency?

No. You have split the predicate 's' into 's in p' and 's in q' and these two have no overlap. Of course the same tuples might appear in both, but these are not linked in the sense that updates to one imply updates to the other.

> > Suppose that the FD A --> B on both P and Q is due to the predicate, s.
> > Wouldn't that require that whenever there is a value for A that appears in
> > both a tuple in P and a tuple in Q, the value for B in each of those
> > tuples must also be identical?

That would imply a qualified inclusion dependency: for ever tuple t in P[A,B] such that t.A is in Q[A] it holds that t is in Q[A,B]. The same in the other direction. So in that case there would be overlap according to my definition.

> I think the same could be said using first order predicates.  For example,
>
> s(A, B) /\ p(A, C) \/ s(A, B) /\ q(A, D)
>
> represented by the schemata,
>
> P {A, B, C}
>     KEY {A}, and
>
> Q {A, B, D}
>     KEY {A}
>
> In both cases, the FD A --> B on both P and Q is due to the predicate, s.

Same argument here. There is an implied qualified inclusion dependency.

  • Jan Hidders
Received on Sun Feb 03 2008 - 14:26:36 CET

Original text of this message