Informal Guidelines by Elmasri and Navathe
Design a relation so that it is easy to explain its meaning.
Design so that no insertion, deletion, or modification anomalies can occur.
Avoid attributes whose values can be null.
Design so that reasonable joins do not produce spurious tuples.