What is a “functional dependency”? How does it relate to database table design?