Modifying a database to 3NF
Third normal form: move fields that depend on a non-key field into a new table with its own primary key, then link the tables with a foreign key. Check no data is lost.
Understanding Modifying a database to 3NF in QCE Digital Solutions Unit 2
What it does: Joining on the foreign key and primary key rebuilds the original data, so you can compare it with the old table to confirm nothing was lost. houseName depends on houseId, a non-key field. That is a transitive dependency. Move it to a House table and keep houseId in Students as a foreign key. Copy the data first, then drop the old columns. Dropping them first loses data. 2NF only removes partial dependencies. 3NF also needs the transitive dependency removed. To reach 3NF you split the dependent fields into a new table, and that table needs its own primary key (teacherId).
Common mistakes: The fields that depend on a non-key field must go into a NEW table. The classes table already exists, so the new table needs its own name, such as rooms. Without DISTINCT, every product row copies its supplier, so the new table gets repeated suppliers. Use SELECT DISTINCT supplier so each supplier is stored once.
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 305–336) 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 →