The tables in an RDBMS database should ideally be designed to be normalized.

Essentially, normalization means that no data item should occur more than once in the tables; duplication should be avoided.

Foreign keys are vital for creating normalized database designs. Data that is present in several copies in one table should be split out into a separate table, and a foreign key should be created from the original table to the new one.

For example, the tables in the example contain a column 'species' that contains identical strings. This should be normalized:

There are several different levels of normalization (normal forms). See for example this Berkeley lecture on database desing for more information.

© 2001 Per Kraulis $Date: 2001/05/09 14:56:38 $