Evaluating a database against the normal forms
Test a table against 1NF, then 2NF, then 3NF, naming each dependency problem found (repeating group, partial or transitive) and backing it up with an example row.
Understanding Evaluating a database against the normal forms in QCE Digital Solutions Unit 2
What it does: HouseCaptain depends on House, and House depends on StudentID. A non-key field determined by another non-key field is a transitive dependency, which fails 3NF. Quoting a real row shows the repeated data caused by the dependency problem. This backs up the normal form verdict with evidence. 1NF needs one value per field in every row. Two phone numbers in one cell is a repeating group, so check 1NF first. Each normal form builds on the one before it. A table must pass 1NF before 2NF can be checked, and 2NF before 3NF. Partial dependency means depending on only part of a composite key. With a one-field key, there is no 'part' to depend on.
Common mistakes: StuName depends on only part of the composite key (StuID). That is what makes it a partial dependency. The line should read 'StuName needs StuID only'. The normal forms are checked in order: 1NF, then 2NF, then 3NF. Step 2 should be 'check 2NF'.
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
normal form checkFill in the Blanks
Spot the Error
Student with a class code? Join your class →