Re: Something new for the New Year (2008).

From: JOG <jog_at_cs.nott.ac.uk>
Date: Tue, 15 Jan 2008 17:03:49 -0800 (PST)
Message-ID: <0e30c5bc-53de-4558-9620-765ce19446fb_at_i29g2000prf.googlegroups.com>


On Jan 12, 8:01 pm, Rob <rmpsf..._at_gmail.com> wrote:
> On Jan 10, 11:14 am, Gene Wirchenko <ge..._at_ocis.net> wrote:
>
> >Rob <rmpsf..._at_gmail.com> wrote:
>
> >>1. Statement of Facts, Example 1:
> >>2 sets if propositions (i.e., 2 tables: Adult, Child)
> >>------------
> >>Al is a male adult, age 45 => (adultname:A,sex:male,age:45)
> >>Bob is a male child, age 15 => (childname:Bob,sex:male,age:15)
> >>Carol is a female child, age 13 => (childname:Carol,sex:female,age:
> >>13)
> >>Dee is a female child, age 8 => (childname:Dee,sex:female,age:8)
> >>what I referred to as JT's:
> >>----
> >>Al is father of Bob => (father:Al,child:Bob)
> >>Al is father of Carol => (father:Al,child:Carol)
> >>Al is father of Dee => (father:Al,child:Dee)
> >>2. Now, although Al is father of Bob, Carol and Dee, only Bob and
> >> Carol are siblings. Dee is a child of a 2nd marriage. We want
> >> to capture the fact that Bob and Carol are siblings, but Bob
> >> and Dee (and Carol and Dee) are half-siblings. So, instead of
> >> the JT (i don't know what you call it), I propose the following
> >> Aggregate and Link:
> >>Aggregate:
> >>--
> >>Al is the father in family unit 1 => (familyunit:1,familyfather:Al)
> >>Al is the father in family unit 2 => (familyunit:2,familyfather:Al)
>
> >Not workable. They can all be the same family unit. What you
> >are missing is maternity. Add Susan and Vicki who are Al's first and
> >second wives and, more importantly, the mothers. You can then express
> >that Bob and Carol are siblings (because they have the same father and
> >the same mother) and that Carol and Dee are half-siblings (because
> >they only have one parent in common).
> >Since motherhood has been brought into the picture, maybe add a
> >predicate for "likes apple pie". <BEG with ice cream>
> >Sincerely,
> >Gene Wirchenko
>
> I don't know what you mean by "unworkable". Does that mean it is not
> well-formed, or just that you have a different model?
>
> According to Codd, a data model must have generalized integrity rules.
> Tell me if my "aggregates" and "links" above violate the rules of your
> data model.
>
> Here's another stab that introduces mothers (though I know nothing
> more than their names, hence no propositions about these mothers):
>
> Propositions (2 sets, 2 relations, Adult and Child)
> ------------
> Al is a male adult, age 45 => (adultname:Al,sex:male,age:45)
>
> Bob is a male child, age 15 => (childname:Bob,sex:male,age:15)
> Carol is a female child, age 13 => (childname:Carol,sex:female,age:
> 13)
> Dee is a female child, age 8 => (childname:Dee,sex:female,age:8)

Fine, simple propositions.

>
> Aggregate:
> ---------
> In one marriage, Susan is the mother, Al is the father =>
> (mother:Susan,father:Al)
> In another marriage, Vicki is the mother, Al is the father =>
> (mother:Vicki,father:Al)

Aggregates? These are just propositions with two foreign keys - surely this is just an associative entity/junction table/intersection table.

>
> Link:
> ----
> Bob's mother is Susan => (child:Bob,mother:Susan)
> Carol's mother is Susan => (child:Carol,mother:Susan)
> Dee's mother is Vicki => (child:Dee,mother:Vicki)

Links? These are just propositions with a single foreign key (PKFK I think you called them). I don't understand why you have renamed these things...

>
> I'm not arguing that this is the best database design.
> JOG said: "Your AL structure corresponds to no statement of
> fact that I can think of." I'm trying to address his claim.
>
> Rob

Honest opinions here Rob. First, while there are issues with this example of course, it is still far better than your web page imo, which was very convoluted (and set my crank alarm bells ringing I'm afraid - best to know that though right?)

Second, I certainly don't think what you have observed is revolutionary and claiming it as "first new relationship to be discovered for 33 years" comes across as a bit silly to my ears. / However/, that is not to say there is not value in there somewhere, so please don't think I'm just doing you down...

I think you have in fact identified a common database design pattern, and awareness of it (though I dislike the nomenclature that you have conjured) is a very useful thing for database designers considering their schemas. And as such, I think you should continue to investigate database schemas, identifying other design patterns, and then collate them all together - that could be useful stuff and ultimately get you a lot more credit for it than any hand wavy stuff.

If you don't agree fair enough, but that is my honest analysis. All best, Jim. Received on Wed Jan 16 2008 - 02:03:49 CET

Original text of this message