4NF (Fourth Normal Form) is a normalization level that deals with multivalued dependencies (MVDs). A relation is in 4NF if it is already in BCNF and has no non‑trivial multivalued dependencies except those implied by candidate keys.
4NF is used when a table stores multiple independent sets of values for a single key, which can cause redundancy even if the table is in BCNF.
What Is a Multivalued Dependency?
A multivalued dependency means that for a given value of , there are multiple independent values of .
Example:
In a TEACHING table:
Course_ID, Professor_Name, Textbook
If a course can have multiple professors and multiple textbooks, and these two lists are independent of each other, there are multivalued dependencies:
Course_ID \twoheadrightarrow Professor_NameCourse_ID \twoheadrightarrow Textbook
Problems in Non‑4NF Tables
Without 4NF, inserting, updating, or deleting records becomes messy:
To add a new professor for a course, you must repeat all combinations with existing textbooks.
To add a new textbook, you must repeat all combinations with existing professors.
This creates lot of redundant rows and anomalies.
How to Achieve 4NF
To bring a table into 4NF:
Identify multivalued dependencies that are not caused by a key.
Decompose the table so that each MVD is isolated in its own table.
Using the TEACHING example:
Original table (BCNF but not 4NF):
Here, for each course, every professor is paired with every textbook—redundancy due to MVDs.
Split into:
COURSE_TEXT(Course_ID, Textbook)COURSE_PROF(Course_ID, Professor_Name)
Now each table has only one multivalued attribute per key, and the design is in 4NF.
Why 4NF Matters?
It removes redundancy caused by independent multiple values (like multiple professors and multiple textbooks for the same course).
It improves data integrity and makes inserts and deletes more straightforward.
4NF is used in advanced database designs where such multi‑valued relationships are common.
Summary
4NF in DBMS requires that a table in BCNF must not have non‑trivial multivalued dependencies except those implied by candidate keys. By splitting tables that store multiple independent sets of values, 4NF eliminates extra redundancy and improves the cleanliness of the schema. For beginners, 4NF shows how to handle situations where a single entity is associated with several independent repeating lists.