Eroxl's Notes
First Normal Form
aliases
1NF

First normal form is the most basic normal form. A relation is in first normal form if and only if every attribute contains only atomic (indivisible) values — that is, no attribute holds a set, list, or nested relation as its value.

Definition

A relation schema is in first normal form if for every valid instance :

  • The domain of each attribute contains only atomic values.
  • Each tuple assigns exactly one value from the domain to each attribute.

This is essentially a requirement of the relational model itself. E.F. Codd's original definition of a relation requires that all attribute values are atomic, so any valid relation is in 1NF by definition.

Violations

A relation violates 1NF when an attribute contains:

  • Multi-valued fields — e.g. a PhoneNumbers attribute storing {555-1234, 555-5678}.
  • Composite fields — e.g. a FullName attribute storing a structured value with sub-components FirstName and LastName.
  • Nested relations — e.g. an Orders attribute containing an entire table of order records within a single tuple.

Resolving Violations

To bring a relation into 1NF:

  1. Multi-valued attributes are resolved by creating a separate tuple for each value, or by decomposing the multi-valued attribute into a separate relation.
  2. Composite attributes are resolved by replacing them with their atomic components.

Note

Most modern relational database systems enforce atomicity at the storage level, making 1NF violations uncommon in practice. However, the theoretical distinction remains important as 1NF is the foundation upon which all higher normal forms are built.