Re: Article claims the following table is not in 1NF

From: paul c <toledobythesea_at_oohay.ac>
Date: Thu, 23 Oct 2008 14:19:11 GMT
Message-ID: <zJ%Lk.3664$fF3.2170_at_edtnps83>


xyzzy wrote:
> On Oct 23, 5:38 am, Sru..._at_gmail.com wrote:
...

>> 2) My book claims that if table is not normalized, then primary key
>> can’t be made out of just one attribute. But how can that ALWAYS be
>> true, since even if a table has multi-valued attributes or duplicative
>> columns, we could still have an attribute ( ORDER_ID ) that would
>> uniquely identify the row:
>>
>> ORDER ( ORDER_ID, ITEM1, ITEM2, ITEM3 )
>>

>
> Ahh... only if ORDER_ID is unique. If so, then it's probably a
> dataless, unique, unchanging, unambiguous sequence number you made up
> to go with the items, in which case it is called a surrogate key and a
> primary key. If so, your example is not 1NF any more because every
> non-key attribute is completely dependent on the PK.
> ,,,

Regardless, by Codd's "rough" depiction below, ORDER is in 1NF. As far as I know, keys weren't involved at all in his notion of 1NF. I get the impression most of the book authors haven't read anything he said.

(from Codd, 1970):

(quote) The terms attribute and repeating group in present data base terminology are roughly analogous to simple domain and nonsimple domain, respectively. Much of the confusion in present terminology is due to failure to distinguish between type and instance (as in “record”) and between components of a user model of the data on the one hand and their machine representation counterparts on the other hand (again, we cite “record” as an example). 1.4. NORMAL FORM
A relation whose domains are all simple can be represented in storage by a two-dimensional column-homogeneous array of the kind discussed above. Some more complicated data structure is necessary for a relation with one or more nonsimple domains. For this reason (and others to be cited below) the possibility of eliminating nonsimple domains appears worth investigating! There is, in fact, a very simple elimination procedure, which we shall call normalization.
(end quote) Received on Thu Oct 23 2008 - 16:19:11 CEST

Original text of this message