**Armstrong's axioms** are a set of axioms (or, more precisely, inference rules) used to infer all the functional dependencies on a relational database. They were developed by William W. Armstrong in his 1974 paper. The axioms are sound in generating only functional dependencies in the closure of a set of functional dependencies (denoted as
F
+
) when applied to that set (denoted as
F
). They are also complete in that repeated application of these rules will generate all functional dependencies in the closure
F
+
.

More formally, let
⟨
R
(
U
)
,
F
⟩
denote a relational scheme over the set of attributes
U
with a set of functional dependencies
F
. We say that a functional dependency
f
is logically implied by
F
,and denote it with
F
⊨
f
if and only if for every instance
r
of
R
that satisfies the functional dependencies in
F
, r also satisfies
f
. We denote by
F
+
the set of all functional dependencies that are logically implied by
F
.

Furthermore, with respect to a set of inference rules
A
, we say that a functional dependency
f
is derivable from the functional dependencies in
F
by the set of inference rules
A
, and we denote it by
F
⊢
A
f
if and only if
f
is obtainable by means of repeatedly applying the inference rules in
A
to functional dependencies in
F
. We denote by
F
A
∗
the set of all functional dependencies that are derivable from
F
by inference rules in
A
.

Then, a set of inference rules
A
is sound if and only if the following holds:

F
A
∗
⊆
F
+

that is to say, we cannot derive by means of
A
functional dependencies that are not logically implied by
F
. The set of inference rules
A
is said to be complete if the following holds:

F
+
⊆
F
A
∗

more simply put, we are able to derive by
A
all the functional dependencies that are logically implied by
F
.

Let
R
(
U
)
be a relation scheme over the set of attributes
U
. Henceforth we will denote by letters
X
,
Y
,
Z
any subset of
U
and, for short, the union of two sets of attributes
X
and
Y
by
X
Y
instead of the usual
X
∪
Y
; this notation is rather standard in database theory when dealing with sets of attributes.

If
Y
⊆
X
then
X
→
Y

If
X
→
Y
, then
X
Z
→
Y
Z
for any
Z

If
X
→
Y
and
Y
→
Z
, then
X
→
Z

These rules can be derived from the above axioms.

If
X
→
Y
and
X
→
Z
then
X
→
Y
Z

If
X
→
Y
Z
then
X
→
Y
and
X
→
Z

If
X
→
Y
and
Y
Z
→
W
then
X
Z
→
W

Given a set of functional dependencies
F
, an **Armstrong relation** is a relation which satisfies all the functional dependencies in the closure
F
+
and only those dependencies. Unfortunately, the minimum-size Armstrong relation for a given set of dependencies can have a size which is an exponential function of the number of attributes in the dependencies considered.