SyntaxStudy
Sign Up
MySQL Fourth and Fifth Normal Forms
MySQL Advanced 5 min read

Fourth and Fifth Normal Forms

4NF and 5NF

4NF eliminates multi-valued dependencies. 5NF eliminates join dependencies. These are rarely needed in practice but matter in complex, fact-table schemas.

Example
-- 4NF violation: emp_skills and emp_languages in one table
-- emp_id | skill | language  (independent facts mixed)

-- 4NF fix: two separate tables
CREATE TABLE emp_skills    (emp_id INT, skill    VARCHAR(50), PRIMARY KEY(emp_id, skill));
CREATE TABLE emp_languages (emp_id INT, language VARCHAR(50), PRIMARY KEY(emp_id, language));
Pro Tip

If you find yourself needing 4NF/5NF, the data model is likely complex enough to reconsider the design.