Most of the time, we have our data distributed across multiple tables, and those tables are "related" to each other in some way. For example, let's say we have a table for logging how well students do on their tests, and we include emails in case we need to email parents about slipping grades:
There is one big thing to realize about these tables: they are describing relational data. They are describing data that relates to each other.
When the same data is replicated across multiple tables, there can be interesting consequences.
It is often preferable to make sure that a particular column of data is only stored in a single location, so there are less places to update and less risk of having different data in different places.
If we do that, we need to make sure we have a way to relate the data across the tables.