Third normal form (3NF) (Data and Programming Techniques)
Third normal form: the table is in 2NF and no non-key field depends on another non-key field (no transitive dependency), e.g. suburb depends on postcode, so move it to its own table.
Understanding Third normal form (3NF) (Data and Programming Techniques) in QCE Digital Solutions Unit 2
What it does: Suburb has been moved out of Students into Postcodes, with Postcode kept in Students as a foreign key. This removes the transitive dependency. 3NF builds on 2NF and then removes transitive dependencies, where a non-key field depends on another non-key field. Normal forms build on each other: 1NF, then 2NF, then 3NF. Removing the repeated suburb data avoids update anomalies, because one change fixes everything. houseCaptain is determined by house, not by studentId. Move house and houseCaptain to a House table to reach 3NF.
Common mistakes: suburb depends on pcode, which is a non-key field, so this is a transitive dependency. suburb must be removed from Cust and stored in the Postcode table. pcode is the field that decides the suburb, so it must be the PRIMARY KEY of the new Postcode table. Customer can then refer to it with a foreign key.
Free printable worksheet with full answer key — or add this module to a class and your students practise it interactively.
This module's key terms are also in a printable crossword (Modules 234–285) and word search (Modules 234–409).
Take this worksheet further — free with Cloodit
Each concept is reinforced from every angle — learned, then applied, then tested.
Cloodit turns curriculum-aligned coding content into journeys students work through one biome at a time.
Over 100 of them, across seven natural biomes.
Turns their work into revision material ready for Flash Cards and Exam study.
Live, competitive practice for the start of the lesson or a teacher-led lesson finisher.
Honour your top performers, or encourage a student who's trying hard — ready to print in seconds.
Quick Questions
Match the Pairs
Key Term
3NFFill in the Blanks
Spot the Error
Student with a class code? Join your class →