Oracle FAQ Your Portal to the Oracle Knowledge Grid

Home -> Community -> Usenet -> c.d.o.server -> Re: Beginner help needed in database design

Re: Beginner help needed in database design

From: Ed Stevens <nospam_at_noway.nohow>
Date: Wed, 02 Feb 2005 11:22:48 -0600
Message-ID: <>

On Wed, 2 Feb 2005 08:52:24 -0700, "Mark A" <> wrote:

>"Ed Stevens" <nospam_at_noway.nohow> wrote in message
>> Oh???? As early as 1985 I was doing applications programming in COBOL
>> against IMS (a hierarchical database by IBM) and they had primary
>> keys. Between 1981 and 1985 it was VSAM KSDS files, also with primary
>> keys. Now, that's been a few years. Maybe they weren't *called*
>> "primary key", but that's what they were -- a value that was unique to
>> a particular record in the data store.
>> Thanks.
>> - Ed Stevens
>Although VSAM has unique indexes, it does not have foreign keys so it does
>not have referential integrity.
>IMS does have referential integrity of sorts, because you must specify a
>valid parent record for each child record that your insert. But IMS is not
>relational. My post specifically said that Relational Databases did not have
>referential integrity (both primary and foreign keys) prior to about 1988. I
>didn't mention anything about hierarchical or network databases.
>There were (and still are) unique indexes in relational databases to enforce
>uniqueness, but no foreign keys that forced dependent tables to have valid
>keys until about 1988. Prior to that time, referential integrity had to
>enforced by the application program.

Sorry, I must have mis-understood what I read ..

"Prior to about 1988, primary and foreign keys did not exist, even in relational databases"

The phrase "even in ..." implied (to me) that you were saying these concepts didn't exist at all .... *even in* relational db's. You said nothing about referential integrity in that paragraph, unless that was what you meant by saying that "primary *and* foreign keys did not exist" (emphasis on the "and") While true that referential integrity -- whether enforced by the dbms or the app -- require primary and foreign keys (however implemented) it does not follow that implementation of a primary key necessarily implies the existence of either foreign keys or RI. It seems to me that a unique index -- or any mechanism that forces a particular column/field to be unique -- pretty much equates to a PK. At least as long as you only have one such unique index on a particular data store.

But we quibble over historical nits.

Cohn's Law: The more time you spend in reporting on what you are doing, the less time you have to do anything. Stability is achieved when you spend all your time doing nothing but reporting on the nothing you are doing. Received on Wed Feb 02 2005 - 11:22:48 CST

Original text of this message