Functional dependencies are used to specify formal measures of goodness of relational designs.
FD are constrain that are derived from the meaning and inter relationship of the data attributes.
Set of attributes X functionally determines a set of attributes Y if the value of X determines a unique value for Y.
X $\rightarrow$ Y holds if whenever two tuples have the same value for X, they must have same value for Y.
If $f_1 [X] = t_2 [X] $ then $t_1 [Y] = t_2 [Y]$
in any relation instance r(R)
Let a table R have two attributes X and Y, the attribute Y is functionally dependent on attribute X if and only if for each value of X no more than one value of Y is associated.
Consider the relation as:
emp (Ename, SeN, Bdate, Address, Dnum)
- The list of FD can be
SSN $\rightarrow$ ename
ename $\rightarrow$ Bdate, Address
SSN $\rightarrow$ Dnumber.
An FD is a property of the attributes in the schema R.
The constraint must hold on every relation instance r(R)
If K is the key of R, then K functionally determines all attributes in R.