Armstrong's
axioms are a sound and
complete list of
properties of
functional dependencies. They are used in
relational database maintenance when analyzing the functional dependencies and
normal form of a
database. Changing
normal forms or doing
schema refinement requires manipulation of these
axioms. I have included a brief
explanation of what each axiom is trying to
define in
plain english.
Armstrong's Axioms for attributes A,B,C,X are:
- Reflexivity :
If B is a subset of A then A -> B is trivial
If social security number and name determine a person's name, that relationship is trivial.
- Augmentation :
If A -> B then AX -> BX for any attribute X
If a student ID number determines a student’s name, then student ID plus age determines a student's name plus their age.
- Transitivity :
If A -> B and B -> C then A -> C
This one is fairly obvious. If license plate number determines owner and owner determines social security number, then license plate number can determine social security number.
There are other
basic properties of
functional dependencies, such as if A -> BC then A -> B and A -> C. However these type of properties can all be
derived from Armstrong's Axioms.