Re: One-To-One Relationships

From: JOG <jog_at_cs.nott.ac.uk>
Date: Wed, 26 Dec 2007 09:54:47 -0800 (PST)
Message-ID: <8f40a7a6-6cb7-4b6f-a750-fd6fe243cf3a_at_d21g2000prf.googlegroups.com>


On Dec 20, 7:40 pm, rp..._at_pcwin518.campus.tue.nl (rpost) wrote:
> JOG wrote:
> >> >> > We can only ever
> >> >> >identify things from observable attributes (and refer to them by
> >> >> >attributes too!).
>
> >> >> Certainly, but we don't always make those attributes explicit.
>
> >> >Yes we do. Always.
>
> >> Not in my experience.
>
> >Then do you get sent messages from an omnipotent higher being to tell
> >you the identity of something! ;) I simply cannot think of any example
> >of how something is identified without using explicit, identifying
> >attributes!
>
> Yes, you can. Suppose, one morning I feel really ill, so I pick up the
> phone, call our secretary and say: "Hello <name>, I'm not coming today,
> I'm going to have to stay in bed." As a result of this phone call, an
> update is issued on the employee database, to register my absence due
> to illness on this day. The secretary has identified me by my voice,
> not by anything the database registers about me.

Lucky that you didn't have a throat infection I guess. Or that you weren't talking to someone you hadn't seen for ten years (given that voices change). But then, in the context of your example I guess a voice is an explicit identifying attribute. Er, hold on... that's exactly what I said you'd need to use to identify an entity ;)

And then your secretary identifies the construct you correspond to in the db by what? An OID? Course not.

>
> But of course I also have to identify the tuples in the database
> relevant to this update. This identification must ultimately rely
> on externally observable information that is observably associated
> with me (my name, employee number, whatever).

That's exactly what I have been saying. Hell, at least we're agreed there. One has to correspond internal and external entities somehow. It's just your reliance on mutable attributes that won't /generalize/.

> But that identification may not be direct: it can rely on the use of internal references
> (surrogates, oids).

Ok, I'll give it one last spin - I really hope that you give this a real think through, because I am sure it's right Reinier...

Yes /sometimes/ it is possible that items might be able to be identified indirectly - but only in specific applications and situation (people are great at this, we know our history and the context of any situation we're in, and that's probably why all your examples involve people, and not inanimate objects). But this indirect method is not /always/ possible, and that's the key point. We do want a generalized data model after all.

What would happen if every 'indirect' identifier (as you put it) of an entity has changed. Such a situation is perfectly possible, otherwise those attributes would have been 'direct' identifiers. And consider further that the entity in question (an inanimate object say) cannot relay its history to you? No indirect identification possible any more. Because of this we need just one thing that stays consistent. And that one consistent attribute can't be hidden like a surrogate or an OID, because it must be recognizable from the external entity (as I think we've agreed on I think).

A WINTER'S TALE OF OID's...

"Its me. I'm ill. Not coming in for work"
"Who? I can't recognize your voice, because of your cold"
"Sarah who works in finance"
"Look, we have 5 people could Sarah in finance, so that's no help I'm
afraid. "
"I have died red hair?"
"None are on record with red hair."
"Agh, I change it all the time. Fashion, eh"
"What car do you drive? I can tally with that maybe"
"A Porsche"
"Hmmm, No Sarah's with Porches here. Are you sure?"
"Well its pretty new. Not on the system yet I guess."
"What was your old car then?"
"Er... I'm not sure now. It was er... blue? I can't really remember.
Japanese thing I think..."
"Brilliant. Look, why don't you just tell me your OID please and I can update you as ill on the db"
"My what?"
"Your OID - your secret hidden number"
"I have no idea what you are talking about. This is getting ridiculous
- can't I just tell you my bloody employee ID" "No I'm sorry, Reinier fixed up our systems up last week and replaced them with these hidden OID things"
"The one that's kept secret from me?"
"Yup, that's the one"
"Forget it. I'm going back to bed."


>
> I notice the discussion has progressed elsewhere so I won't continue here.
>
> --
> Reinier
Received on Wed Dec 26 2007 - 18:54:47 CET

Original text of this message