Re: Objects and Relations
Date: Thu, 15 Feb 2007 20:59:34 GMT
Message-ID: <WQ3Bh.1608$4c6.731_at_news-server.bigpond.net.au>
JOG wrote:
> On Feb 15, 3:54 am, Joe Thurbon <use..._at_thurbon.com> wrote:
>
> Hi Joe, good to see you are still about.
>
> Remember we need something *in the real world* to identify the things
> we talk about. The problem has to be dealt with way before we even get
> to the database.
>
> >
> > Would I be correct in saying that all OIDs are surrogate identifiers,
> > but that not all surrogate identifiers are OIDs?
> No. OID's are a programming mechanism - they are pointers.
Ok.
>> BUT one entity can have two values for the surrogate identifier.
>
> No. Well it is /possible/ but it is a mistake outside the database-
> one person could have two employee ID's for example, but this would
> cause a lot of confusion. I once ended up with two payroll numbers and
> it caused havoc.
However, the relation, taken alone, does NOT mean that the entity_fred and entity_bill are distinct entities.
>
>> (2) No two entities can share the same OID, AND no entity can have two OIDs.
>
> Again thinking in terms of entities is the path to confusion. Take a
> step back and think about what we are actually communicating and
> recording - propositions.
Sure.
>
>> Cheers, >> Joe
>
> OID's and surrogates are both mechanisms to represent uniquencess.
> Surrogates are externally visible attribute values (goodness). OID's
> are obtuse, hidden pointers (badness),
>
This seems like a really useful, concise description of the difference.
Especially in light of you comment above, i.e. programming construct vs
logical attribute. Did you mean obstruse, or obtuse, though?
I'll have more questions, of course.
Thanks muchly,