Try reloading this page, or reviewing your browser settings
This video segment explains the concept of functional dependencies.
- relational model
About this video
- Allen Taylor
- First online
- 12 January 2019
- Online ISBN
- Copyright information
- © Allen Taylor 2019
Speaker: Relations have multiple attributes and sometimes the value of one attribute will determine the value of another attribute. Suppose a US business has a database that contains a customer table based on the customer relation in the corresponding relational model. That table could have fields: first name, last name, street, city, state, ZIP code, and email. In this case, knowing a customer’s first name does not tell you anything about their last name, street, or any of the other attributes. Similarly, knowing a person’s city does not necessarily tell you what state they live in. About half the states in the USA have a city named Springfield, for instance. Many other city names show up in multiple states.
However, there is one case here where knowing the value of one attribute tells us the value of another. If we know a customer’s ZIP code, a simple table lookup will tell us what state they live in. This is true because all ZIP codes are completely contained within a single state. The reverse is not true. A state can contain multiple ZIP codes and states with large populations do contain multiple ZIP codes. One way to describe this situation is to say that ZIP code determines state. If we know a customer’s ZIP code, then we know their state. Another way of expressing this relationship is to say that state is functionally dependent on ZIP code. The value of state depends upon the value of ZIP code. You might say to yourself, well, that’s a nice little factoid, but what does it matter? It turns out that it matters a lot. We’ll see why in the next segment which introduces the concept of keys.