Databases Reference
In-Depth Information
Now, it might be argued that some if not all of these quotes are at least vaguely correct—but they're all
hopelessly sloppy, even when they're generally on the right lines. (In case you're wondering, I'll be giving a precise
and accurate definition of 1NF in Chapter 4.)
Let's take a closer look at what's going on here. Here again is the first of the foregoing quotes, now given in
full:
To achieve first normal form, each field in a table must convey unique information. For example, if you had a Customer
table with two columns for the telephone number, your design would violate first normal form. First normal form is
fairly easy to achieve, since few folks would see a need for duplicate information in a table.
OK, so apparently we're talking about a design that looks something like this:
┌────────┬──────────┬──────────┬─────┐
│ CUSTNO │ PHONENO1 │ PHONENO2 │ ... │
├════════┼──────────┼──────────┼─────┤
Now, I can't say whether this is a good design or not, but it certainly doesn't violate 1NF. (I can't say
whether it's a good design because I don't know exactly what “two columns for the telephone number” means. The
phrase “duplicate information in a table” suggests we're recording the same phone number twice, but such an
interpretation is absurd on its face. But even if that interpretation is correct, it still wouldn't constitute a violation of
1NF as such.)
Here's another one:
First Normal Form ... means the table should have no “repeating groups” of fields ... A repeating group is when you
repeat the same basic attribute (field) over and over again. A good example of this is when you wish to store the items
you buy at a grocery store ... [ and the writer goes on to give an example, presumably meant to illustrate the concept of a
repeating group, of a table called Item Table with columns called Customer, Item1, Item2, Item3, and Item4 ]:
┌──────────┬───────┬───────┬───────┬───────┐
│ CUSTOMER │ ITEM1 │ ITEM2 │ ITEM3 │ ITEM4 │
├══════════┼───────┼───────┼───────┼───────┤
Well, this design is almost certainly bad—what happens if the customer doesn't purchase exactly four
items?—but the reason it's bad isn't that it violates 1NF; like the previous example, in fact, it's a 1NF design. And
while it's true that 1NF does mean, loosely, “no repeating groups,” a repeating group is not “when you repeat the
same basic attribute over and over again.” (What it really is I'll explain in Chapter 4, when I explain what 1NF
really is.)
How about this one (a cry for help found on the Internet)? I'm quoting it absolutely verbatim, except that
I've added some boldface:
I have been trying to find the correct way of normalizing tables in Access. From what I understand, it goes from the 1st
normal form to 2nd, then 3rd. Usually, that's as far as it goes, but sometimes to the 5th and 6th. Then, there's also the
Cobb 3rd. This all makes sense to me. I am supposed to teach a class in this starting next week, and I just got the
textbook. It says something entirely different. It says 2nd normal form is only for tables with a multiple-field primary
key, 3rd normal form is only for tables with a single-field key. 4th normal form can go from 1st to 4th, where there are
no independent one-to-many relationships between primary key and non-key fields. Can someone clear this up for me
please?
 
Search WWH ::




Custom Search