Database Normalization Rule 4: Isolate independent multiple relationships. No table may contain two or more 1:n (one-to-many) or n:m (many-to-many) relationships that are not directly related.

This applies only to designs that include one-to-many and many-to-many relationships. An example of a one-to-many relationship is that one kennel can hold many puppies. An example of a many-to-many relationship is that a puppy can know many tricks and several puppies can know the same tricks.

Puppy Tricks and Costumes
puppy number
trick ID
trick where learned
skill level
costume

suppose we want to add a new attribute to the puppy-trick table, “Costume”, this way we can look for puppies that can both “set-up-and-beg” and wear a Groucho Marx mask, for example. The forth normal form dictates against this (i.e. against using the puppy-tricks table not against begging while wearing a Groucho mask). The two attributes do not share a meaningful relationship. A puppy may be able to wear a wet suit. This does not mean it can simultaneously sit up and beg. How will you represent this if you store both attributes in the same table?

Forth Normal Form

Puppies
puppy number
puppy name
kennel code

Kennels
kennel code
kennel name
kennel location

Tricks
trick ID
trick name

Puppy-Tricks
puppy number
trick ID

trick where learned
skill level

Costumes
costume number
costume name

Puppy-Custumes
puppy number
costume number