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