7.19

A functional dependency \(\alpha \rightarrow \beta\) is called a partial dependency if there is a proper subset \(\gamma\) of \(\alpha\) such that \(\gamma \rightarrow \beta\); we say that \(\beta\) is partially dependent on \(\alpha\). A relation schema \(R\) is in second normal form (2NF) if each attribute \(A\) in \(R\) meets one of the following criteria:

  • It appears in a candidate key.
  • It is not partially dependent on a candidate key.

Show that every 3NF schema is in 2NF. (Hint: Show that every partial dependency is a transitive dependency.)


Referring to the definitions in Exercise 7.18, a relation schema \(R\) is said to be in 3NF if there is no nonprime attribute \(A\) in \(R\) for which \(A\) is transitively dependent on a key for \(R\).

We can also rewrite the definition of 2NF given here as:

“A relation schema \(R\) is in 2NF if no nonprime attribute \(A\) is partially dependent on any candidate key for \(R\).”

To prove that every 3NF schema is in 2NF, it suffices to show that if a nonprime attribute \(A\) is partially dependent on a candidate key \(\alpha\), then \(A\) is also transitively dependent on the key \(\alpha\).

Let \(A\) be a nonprime attribute in \(R\). Let \(\alpha\) be a candidate key for \(R\). Suppose \(A\) is partially dependent on \(\alpha\).

Thus we conclude that \(\alpha \rightarrow A\) is a transitive dependency. Hence we have proved that every 3NF schema is also in 2NF.