Major "Normal Forms" of Relational Databases

Normalisation is most useful in bottom-up approaches to database design, as the steps progressively repair problems associated with the faulty designs that can easily arise. A top-down approach, e.g. using an Entity-Relationship Model, is less likely to display the faults that require a technique such as normalisation to repair.

So, consider a poorly considered design and then progress through the steps to improve the design.


Extract repeating data

An attribute shouldn't contain multiple values of the same type.

Note: this is not the same as multiple attributes with semantically identical function (such as [Note1], [Note2], [Note3].. etc, but while this doesn't break 1NF condition, it is poor design.


Extract redundant data

If an attribute depends on only part of a composite key, then the other part will be repeated, potentially many times.


Extract data unrelated to the whole key

Attributes should be facts about the key, not just part of composite key or independent of the key entirely.


Boyce-Codd Normal Form

In tables that have more than one multi-valued candidate key, the attributes of those keys should be independent


Isolate independent multiple relationships

No table may contain two or more 1:n or n:m relationships that are not directly related.


Isolate semantically related multiple relationships

As for 4NF, but focuses on sematic relationships rather than data relationships - a much more fuzzy concept.


For more detail, refer to one of the many fine expositions on normalization in relational databases. Here's one.