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.