| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> comp.databases.theory -> Re: Objects and Relations
Joe Thurbon wrote:
> 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.
>>> 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.
Person is just a name for a predicate. Whether and how it describes anything in 'the real world' is part of the external predicate. The dbms neither knows nor cares about the meaning of the word 'Person'. One could replace the name 'Person' with 'Hornswoggle' or 'x' and the dbms wouldn't care or notice. Hornswoggle would work exactly like Person.
>>> (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.
>>> 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), >>
![]() |
![]() |