3NF (Third Normal Form) is a normalization level where a relation is already in 2NF and has no transitive functional dependencies. A table is in 3NF if:
It is in 2NF (no partial dependencies).
Every non‑key attribute is non‑transitively dependent on the primary key.
In simple terms, in 3NF, each non‑key attribute should depend directly on the primary key, not through another non‑key attribute.
What Is a Transitive Dependency?
A transitive dependency exists when:
and , but does not directly determine by itself.
Then is said to be transitive through .
Example:
Suppose a STUDENT table has:
Roll_No, Branch, HOD_Name.
If:
Roll_No → BranchBranch → HOD_Name
then Roll_No → HOD_Name is a transitive dependency.
This is not allowed in 3NF.
How to Achieve 3NF
To bring a 2NF table into 3NF:
Identify transitive dependencies (non‑key attributes that determine other non‑key attributes).
Create new tables so that each non‑key attribute depends only on the key.
Using the STUDENT example:
Original 2NF table (with transitive dependency):
Here,Branch → HOD_NamesoHOD_Nametransitively depends onRoll_NoviaBranch.
Split into:
BRANCH( Branch, HOD_Name )→ key:BranchSTUDENT( Roll_No, Branch )
Now:
In
BRANCH,Branch → HOD_Name(direct, allowed).In
STUDENT, non‑key attributeBranchdepends only onRoll_No.Both tables are in 3NF.
Why 3NF Matters?
It removes more redundancy (same HOD repeated for every student in a branch).
It reduces update and deletion anomalies when the HOD changes.
It is considered sufficient for most practical database designs.
Summary
3NF in DBMS requires a table to be in 2NF and to have no transitive dependencies: non‑key attributes must depend only on the primary key, not on other non‑key attributes. By splitting tables that contain transitive dependencies, 3NF further cleans up the design and improves data consistency, making it one of the most important normal forms for beginners.