Re: Does entity integrity imply entity identity?

From: Nilone <reaanb_at_gmail.com>
Date: Thu, 6 Aug 2009 16:23:28 -0700 (PDT)
Message-ID: <d218288c-7a72-4b77-900e-8fa39fcdae6a_at_l34g2000vba.googlegroups.com>


On Aug 6, 10:13 pm, "Mr. Scott" <do_not_re..._at_noone.com> wrote:
> <snip>
>
>
>
> > > > How, exactly? If you have columns K, A, B, and C such that for a given
> > > > K
> > > > it is permissible for the values for A, B or C to be at present
> > > > unknown,
> > > > but not both A and B, how would you lay out the tables and referential
> > > > constraints without using nulls?
>
> > > Here's a more concrete example. Software can be delivered to a customer
> > > over the internet or through the mail or both, but in order to deliver
> > > over
> > > the internet there must be an e-mail address, and in order to deliver
> > > through the mail there must be a snail-mail address. There may also be a
> > > delivery contact phone number. So for a given order K, there must be at
> > > least one of an e-mail address A or a snail-mail address B, and there
> > > may be
> > > a delivery phone number C.
>
> > Three separate relations: {K -> A}, {K -> B}, {K -> C}.  It doesn't
> > enforce the requirement for at least A or B, but neither does {K -> A,
> > B, C} where A, B and C are nullable.
>
> CREATE TABLE T
> (
>     K INT NOT NULL PRIMARY KEY,
>     A VARCHAR(40) NULL,
>     B VARCHAR(160) NULL,
>     C VARCHAR(20) NULL,
>     CHECK (A IS NOT NULL OR B IS NOT NULL)
> )
>
> enforces the requirement for either A or B.

I see your point. While searching for information on this topic, I came across the following paper:

Incorporating record subtyping into a relational data model http://dbis.eprints.uni-ulm.de/377/1/KaDa94.pdf

If anyone has any opinions or further information on record subtyping, I'd like to hear about it. Received on Fri Aug 07 2009 - 01:23:28 CEST

Original text of this message