Functional dependency is the ‘mapping’ of sets of attributes, which identifies which sets can be uniquely map to another sets.
Definitions
Let be sets of attributes. Let the primary key be
- Key attribute: In functional dependency, refers to any attribute that belongs to the primary key
- Determinants: Attributes that determine another set of attributes, see below.
- Partial Functional Dependency: A functional dependency where one or more non-key attributes depend upon a proper subset of the primary key. For example: and are partial dependency, but is not.
- Transitive Dependency: A functional dependency consisting of only non-key attributes. is a transitive dependency.
Determinants
In functional dependency, a set of attributes determine another set of attributes if there each value of is associated with only one value of .
This is not the same as injective functions, as there can be multiple values in that map to the same , something that is not allowed in injective functions.
This does not mean each value in is mapped to only one value in
Another example is , meaning and together determine .
Armstrong’s Axioms
Let be sets.
Reflexivity
If is a subset of , then determines . This is obvious, since we can just take that value of that is in and use it on the left side.
This type of functional dependency is known as trivial
Augmentation
We can augment extra sets to a functional dependency, and it will still hold
Transitivity
This is different from transitive functional dependencies!
Functional dependencies are transitive.