Path: news.netfront.net!ctu-peer!news.nctu.edu.tw!news.glorb.com!postnews.google.com!e60g2000hsh.googlegroups.com!not-for-mail
From: JOG <jog@cs.nott.ac.uk>
Newsgroups: comp.databases.theory
Subject: Re: what are keys and surrogates?
Date: Sat, 16 Feb 2008 19:44:40 -0800 (PST)
Organization: http://groups.google.com
Lines: 68
Message-ID: <4541af5e-4ebc-4c70-8a23-1c9bfe022462@e60g2000hsh.googlegroups.com>
References: <15b312ea-1f66-4f22-abbb-63581e0eca73@x69g2000hsx.googlegroups.com> 
 <28d78bff-17d4-4560-b060-ff5a7a6dd9b9@u10g2000prn.googlegroups.com> 
 <f387a$47b48071$839b4533$30541@news1.tudelft.nl> <e987d0be-304e-4c7f-8204-54c1b2b851a9@e60g2000hsh.googlegroups.com> 
 <34e9c$47b7674b$839b4533$9257@news1.tudelft.nl>
NNTP-Posting-Host: 82.7.72.10
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
X-Trace: posting.google.com 1203219880 16381 127.0.0.1 (17 Feb 2008 03:44:40 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Sun, 17 Feb 2008 03:44:40 +0000 (UTC)
Complaints-To: groups-abuse@google.com
Injection-Info: e60g2000hsh.googlegroups.com; posting-host=82.7.72.10; 
 posting-account=H0ckjQoAAADRgkguzQRGVwl65wXgA5te
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; 
 rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12,gzip(gfe),gzip(gfe)
Xref: news.netfront.net comp.databases.theory:47773

On Feb 16, 10:44 pm, rp...@pcwin518.campus.tue.nl (rpost) wrote:
> JOG wrote:
> >I totally agree -  in the example a name alone does not identify a
> >person.  What is illogical is to then jump to saying "hence we need an
> >OID". It's bizarre.
>
> >If there are two Jesus's and to distinguish them in real life you need
> >to specify their parent, as in "Jesus, son of Joseph, currently lives
> >in Nazareth", then that's what you use in the database:
>
> >(Name: Jesus, Parent:Joseph, Lives:Nazareth)
> >(Name: Jesus, Parent:Frank, Lives:Eindhoven)
>
> Wait, in my example we didn't specify "Lives", we only had "Name"
> and "Parent" (actually, "Father" and "Mother" but the Bible only uses
> "Father".
>
> >Above you'd have PK(name, parent).
>
> Yes, thus far we agree.  Now the point of the example is that Parent
> cannot be the *name* of a parent,
> but must be a reference to a person
> (i.e. to a tuple in the relation).

Why on earth can't people be identified inside the database by their
name, and parent's name, if that works outside? If you are saying that
its because two people may have the same name and the same
Parent_name, of course yes  that would break things, but it would /
equally/ stump you in real life too.

So to deal with it in real life you might specify the Grandparent's
name too. And if that were the same, then the Great-GrandParent as
well. If that gives you the way to identify the person uniquely,
excellent - you now know if you ever need to build a database for the
info, you can use a table with a PK(Name, P, GP, GPP). If not, just
keep on going with those ancestors.

No OID's necessary.

> This is because many persons have
> the same names.  And that's what the oids are for.
>
> >If that's not enough and you need
> >grandparents to distinguish them, then use that too, and so on. Just
> >work out how you identify something in real life and then use that in
> >the database.
>
> Yes, that's exactly what I've been doing here.

No, I meant if you use someone's ancestors to identify them in real
life, then that's exactly what you should use to identify them in a
tuple.

I'm baffled why you'd think you'd corresponded to real life at all by
inventing invisible numbers. There are no OID's in the bible. And your
example showed people being successfully referred to by their parent,
grandparent, etc, so its absolutely clear we don't need anything else
to identify them.

In fact the example is a cracker - I can use it in the future not only
to explain why we don't need OID's, but also to show that identifiers
can get very long, and that's why we make up things like SSN's to make
life easier.

>
> --
> Reinier

