Database normalization Rule 3: Eliminate columns not dependent on key. If attributes do not contribute to a description of the key, remove them to a separate table.

Puppy Table
puppy number
puppy name
kennel code
kennel name

The puppy table satisfies the first normal form, since in contains no repeating groups. It satisfies the second normal form, since it does not have a multivalued key. But the key is puppy number , and the kennel name and the kennel location describe only a kennel, not a puppy. To achieve the third normal form, they must be moved into a separate table. Since they describe a kennel, kennel code becomes the key of the new “kennels” table.

Third Normal Form

Puppies

puppy number
puppy name
kennel code

Kennel
kennel code
kennel name
kennel location

Tricks
trick ID
trick name

Puppy Tricks
puppy number
trick ID

trick where learned
skill level

The motivation for this is the same as for the second normal form. We want to avoid update and delete anomalies. For example suppose no puppies from the Puppy Farm were currently stored in the database. With the previous design, there would be no record of its existence.