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:

  • XYX \to Y and YZY \to Z, but XX does not directly determine ZZ by itself.

  • Then XZX \to Z is said to be transitive through YY.

Example:
Suppose a STUDENT table has:

  • Roll_No, Branch, HOD_Name.

If:

  • Roll_No → Branch

  • Branch → 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:

  1. Identify transitive dependencies (non‑key attributes that determine other non‑key attributes).

  2. Create new tables so that each non‑key attribute depends only on the key.

Using the STUDENT example:

  • Original 2NF table (with transitive dependency):

    Roll_NoBranchHOD_Name
    101CSEDr. A
    102ECEDr. B
    103CSEDr. A
    Here, Branch → HOD_Name so HOD_Name transitively depends on Roll_No via Branch.

  1. Split into:

    • BRANCH( Branch, HOD_Name ) → key: Branch

    • STUDENT( Roll_No, Branch )

Now:

  • In BRANCH, Branch → HOD_Name (direct, allowed).

  • In STUDENT, non‑key attribute Branch depends only on Roll_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.