1NF — First Normal Form
All attributes are atomic (single value, not a list or repeating group). Each row is unique. A primary key is defined.
Violation: storing multiple phone numbers in one cell like "01234, 05678"
2NF — Second Normal Form
Must be in 1NF. Every non-key attribute is fully functionally dependent on the WHOLE primary key (not just part of it). Applies when the PK is a composite key.
Violation: in OrderLine(OrderID, ProductID, ProductName, Qty) — ProductName depends only on ProductID, not the full PK. Partial dependency → extract into a Product table.
3NF — Third Normal Form
Must be in 2NF. No transitive dependencies — non-key attributes must depend ONLY on the primary key, not on other non-key attributes.
Violation: in Student(StudentID, TutorID, TutorName) — TutorName depends on TutorID (a non-key), not StudentID. Transitive dependency → extract into Tutor(TutorID, TutorName).