Functional dependencies (FDs) describe relationships between attributes in a database relation. FDs constrain the values that can appear across attributes for each tuple. They are used to define database normalization forms.
Some examples of FDs are: student ID determines student name and birthdate; sport name determines sport type; student ID and sport name determine hours practiced per week.
FDs can be trivial, non-trivial, multi-valued, or transitive. Armstrong's axioms provide rules for inferring new FDs. The closure of a set of attributes includes all attributes functionally determined by that set according to the FDs. Closures are used to identify keys, prime attributes, and equivalence of FDs.