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.