A functional dependency exists when one attribute is related to another and one of the attributes determines the other. Functional dependencies can be full, partial or transitive, depending on how the derivation of the attribute in question is formulated.
Full dependencies exist where an attribute is determined entirely by another (e.g. a student telephone number is entirely dependent upon a student id number). Partial dependencies exist when part of the primary key (assuming there is only one) determines the related attribute (e.g. a social security number may be partially dependent, or contain, the person’s date of birth). Transitive dependencies, which are more difficult to identify, occur when the primary key (again assuming there is only one) determines an attribute which, in turn, determines the resulting attribute (e.g. perhaps a social security number, giving a date of birth from which current age is determined).
The main issue with the declaration of functional dependencies is in many-to-many relationships, as these cannot be essentially functional. Coronel (2009) states that the identification of all functional dependencies is part of normalisation (so as to provide a complete design) however a great deal of research has been conducted into the exploitation of William Ward Armstrong’s 1974 Axioms, which describe the inference rules of all functional dependencies in relational databases, to develop algorithms to infer functional dependencies from sample data. Yoa and Hamilton (2006) and Akutsu and Takasu (2007) found that, depending on the uniformity of distribution of the sample tables, it was possible to reliably infer functional dependencies, however this was only tested on relatively simple data sets and they concluded that a great deal more study was required.
Akutsu, T & Takasu, A (2007) AAAI: Knowledge Discovery in Databases Workshop 1993 [Online]. Available at http://www.aaai.org/Papers/Workshops/1993/WS-93-02/WS93-02-013.pdf (Accessed 02 May 2010).
Coronel, Morris & Rob (2009) Database Systems: Design, Implementation, and Management (9th Edition). Cengage Learning.
Yao, H & Hamilton, H (2006) Mining functional dependencies from data [Online]. Available from: University of Liverpool Online Library (Accessed 02 May 2010).