# Encyclopedia of Database Systems

Living Edition
| Editors: Ling Liu, M. Tamer Özsu

# Second Normal Form (2NF)

• Marcelo Arenas
Living reference work entry
DOI: https://doi.org/10.1007/978-1-4899-7993-3_1263-2

## Definition

Let R(A 1,..., A n ) be a relation schema and Σ a set of functional dependencies over R(A 1,..., A n ). An attribute A i (i ∈{1,...,n}) is a prime attribute if A i is an element of some key of R(A 1,..., A n ). Then specification (R, Σ) is said to be in second normal form (2NF) if for every nontrivial functional dependency X → A implied by Σ, it holds that A is a prime attribute or X is not a proper subset of any (candidate) key for R [1].

## Key Points

In order to avoid update anomalies in database schemas containing functional dependencies, 2NF was introduced by Codd in [1]. This normal form is defined in terms of the notions of prime attribute and key as shown above. For example, given a relation schema R(A, B, C) and a set of functional dependencies Σ = {A → B}, it does not hold that (R(A, B, C), Σ) is in 2NF since B is not a prime attribute and A is a proper subset of the key AC. On the other hand, (S(A, B, C), Γ) is in 2NF if Γ = {A → B, B → C}, since A is a key (and thus it is not a proper subset of any candidate key) and B is not contained in any (candidate) key for S.

It should be noticed that relation schema S(A, B, C) above is in 2NF if Γ = {A → B, B → C}, although this schema is not in 3NF. In fact, 3NF is strictly stronger than 2NF; every schema in 3NF is in 2NF, but there exist schemas (as the one shown above) that are in 2NF but not in 3NF.