Second normal form (2NF) (Data and Programming Techniques)
Second normal form: the table is in 1NF and every non-key field depends on the WHOLE primary key, so no field depends on only part of a composite key. Move partial fields to their own table.
Understanding Second normal form (2NF) (Data and Programming Techniques) in QCE Digital Solutions Unit 2
What it does: subjectName depends only on subjectId, so it moves to a Subjects table where subjectId is the primary key. A mark is decided by both the student and the subject together, so it depends on the whole key and the table meets 2NF. 2NF builds on 1NF and removes partial dependencies, so every non-key field must depend on the WHOLE primary key. A composite key uses two or more fields together to identify a record. Student has a single-field key. productName is determined by productId alone, which is only part of the key. quantity needs both fields, so it is fine.
Common mistakes: A table must already be in 1NF before it can be in 2NF. The line should say 2NF: in 1NF, no partial deps. 3NF comes after 2NF. A composite key is made of two or more fields combined. A key with one field is a simple key, not a composite 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
2NFFill in the Blanks
Spot the Error
Student with a class code? Join your class →