Re: ID field as logical address

From: Brian Selzer <brian_at_selzer-software.com>
Date: Mon, 1 Jun 2009 22:42:38 -0400
Message-ID: <yk0Vl.18154$%54.10435_at_nlpi070.nbdc.sbc.com>


"Kevin Kirkpatrick" <kvnkrkptrck_at_gmail.com> wrote in message news:a5076075-7ae9-4ab1-abf0-297ae601eb06_at_n21g2000vba.googlegroups.com...
> On Jun 1, 2:27 pm, "Brian Selzer" <br..._at_selzer-software.com> wrote:
> > "Kevin Kirkpatrick" <kvnkrkpt..._at_gmail.com> wrote in message
> >
> > news:895891d5-fe55-478d-81d7-e984bc37fff9_at_r13g2000vbr.googlegroups.com...
> >
> > > On Jun 1, 11:39 am, "Brian Selzer" <br..._at_selzer-software.com> wrote:
> > > > "Kevin Kirkpatrick" <kvnkrkpt..._at_gmail.com> wrote in message
> >
> > > >news:670a228b-b752-47eb-b2e4-68c966c449d9_at_s31g2000vbp.googlegroups.com...
> >
> > > > > What is the poor HR person to do when Mary Smith returns from a
> > > > > week
> > > > > long Vegas trip and reports that she'd gotten married on Monday
> > > > > and
> > > > > divorced on Friday?
> >
> > > > That should be obvious: issue two updates in succession, one for
> > > > each
> > > > event.
> >
> > > Am I reading that right? You think the data entry person should
> > > enter, as a fact to the database, "Mary Smith is currently Married",
> > > at a time when Mary Smith is definitely not married?
> >
> > Yes, you're reading that right. The data entry person should enter, as a
> > fact into the database, "Mary Smith got Married", at a time when it is
> > true
> > that Mary Smith got Married, and then "Mary Smith got Divorced" at a
> > time
> > when it is true that Mary Smith got Divorced.

>

> Sorry, I misinterpretted the relation {L, F, Stat} to indicate
> "The person with last name <L> and first name <F> is currently <Stat>"
>

> It seems like you intended the relation to mean:
>

> "The person with last name <L> and first name <F> got <Stat>"
>

That's an interesting way to express the "meaning" of a relation, but the verb tenses are wrong.

The "meaning" of the relation {L, F, Stat} is:

"The person that has up to now had last name <L> and first name <F> has up to now been <Stat>."

The "meaning" of an update {L, F, Stat, L', F', Stat'} is:

"The person that had up to now had last name <L> and first name <F> and had up to now been <Stat> now has last name <L'> and first name <F'> and is <Stat'>."

In the same way, the "meaning" of a delete {L, F, Stat} is:

"The person that had up to now had last name <L> and first name <F> and had up to now been <Stat> no longer exists."

and the "meaning" of an insert {L', F', Stat'} is:

"There exists a person that has last name <L'> and first name <F'> and is <Stat'>."

Just one point I need to make about these "meanings:" formally, in a fixed Universe, existence must be in fact a predicate, not a quantifier. To have existed is to have become actual; to exist is to still actually be. Distinguishing existence from being permits the quantifier, "there is" to range over all kinds of things, including things that have a past, present or possible locus in time as well as things that are independent of time.

> But I'm still confused... at the time it was true that "Mary Smith got
> Divorced", and the database tuple changed from {"Smith", "Mary",
> "Married"} to {"Smith", "Mary", "Divorced"}, doesn't that imply that
> it was no longer true that "Mary Smith got Married"?
>

"Mary Smith got Divorced" implies that "Mary Smith got Married" as a consequence of the transition constraint that prohibits Single people from getting Divorced.

> > The database has to be
> > informed that a marriage occurred and then that a divorce occurred,
> > since it
> > is not just states that are being constrained, but changes of state.

>
>

> "The database has to be informed that a marriage occurred"
>

> I thought the UoD was limited to a person's current marital status
> (hence the single relation {L, F, Stat}). Is the fact that "a
> marriage occured" part of the UoD? If so, how is this fact
> represented in the data model?
Received on Tue Jun 02 2009 - 04:42:38 CEST

Original text of this message