Trivial Functional Dependencies

Trivial Functional Dependencies

A FD  A1A2 . . . An → B is said to be trivial if B is one of the A's. For instance,

title year → title

is a trivial FD.

Every trivial FD holds in every relation, since it says that "two tuples that agree in all of A1, A2, . . . , An agree in one of them". Thus, we may assume any trivial FD, without having to justify it on the basis of what FD's are declared for the relation.

In our original definition of FD's, we did not allow a FD to be trivial. However, there is no harm in including them, since they are always true, and they sometimes make the statement of rules simpler.

When we allow trivial FD's, then we also allow (as shorthands) FD's in which some of the attributes on the right are also on the left. We say that a FD  A1A2...An → B1B2...Bm is

●  Trivial if the B's are a subset of the A's.
●  Nontrivial if at least one of the B's is not among the A's.
●  Completely nontrivial if none of the B's is also one of the A's.


title year → year length

is nontrivial, but not completely nontrivial. By removing year from the right side we would get a completely nontrivial FD.

We can always remove from the right side of a FD those attributes that appear on the left. That is:

The FD  A1A2 . . . An → B1B2 ... Bm is equivalent to

A1A2An → C1C2Ck

where the C's are all those B's that are not also A's.

We call this rule, illustrated in the following figure, the trivial-dependency rule.

The trivial-dependency rule