**Functional Dependency**

Functional Dependency is the starting point for the process of normalization. Functional dependency exists when a relationship between two attributes allows you to uniquely determine the corresponding attribute’s value. If ‘X’ is known, and as a result you are able to uniquely identify ‘Y’, there is functional dependency. Combined with keys, normal forms are defined for relations.

**Examples**

Bear Number determines Student Name:

BearNum ---> StuName

Department Number and Job Rank determine Security Clearance:

(DeptNum, JRank) --->SecClear

Social Security Number determines Employee Name and Salary:

SSN ---> (EmpName, Salary)

Additionally, the above can be read as:

SSN --->EmpName and SSN Salary

**Armstrong’s Axioms**

William W. Armstrong established a set of rules which can be used to infer the functional dependencies in a relational database (from umbc.edu - no external linking, Google Database Design UMBC):

**Reflexivity rule:**If*A*is a set of attributes, and*B*is a set of attributes that are completely contained in*A*, then*A*implies*B.***Augmentation rule:**If*A*implies*B*, and*C*is a set of attributes, then if*A*implies*B*, then*AC*implies*BC*.**Transitivity rule:**If*A*implies*B*and*B*implies*C,*then*A*implies*C*.

These can be simplified if we also use:

**Union rule:**If*A*implies*B*and*A*implies*C*, the*A*implies B*C*.**Decomposition rule:**If*A*implies*BC*then*A*implies*B*and*A*implies*C*.**Pseudotransitivity rule:**If*A*implies*B*and*CB*implies*D,*then*AC*implies*D*.

**Normalization**

Normalization, as previously mentioned, makes use of functional dependencies that exist in relations and the primary key or candidate keys when analyzing tables. Multivalued Dependencies are also part of the normalization process, at levels higher than Third Normal Form.

**Links**

http://en.wikipedia.org/wiki/Armstrong's_axioms

http://www.mahipalreddy.com/dbdesign/dbqa.htm

Normalization Powerpoint – Dr. Obaidi, George Mason University