A school stores data about students, the courses they take, and the teachers who teach each course. The original data is held in a single flat file.
StudentID | StudentName | DateOfBirth | CourseID | CourseName | TeacherID | TeacherName | TeacherEmail | Grade |
|---|---|---|---|---|---|---|---|---|
| S01 | Alice Smith | 2007-03-12 | CS1 | Computing | T01 | Mr Davies | davies@sch.uk | A |
| S01 | Alice Smith | 2007-03-12 | MA1 | Maths | T02 | Ms Patel | patel@sch.uk | B |
| S02 | Bob Jones | 2007-09-05 | CS1 | Computing | T01 | Mr Davies | davies@sch.uk | B |
| S02 | Bob Jones | 2007-09-05 | EN1 | English | T03 | Mr Brown | brown@sch.uk | A |
| S03 | Cara Lee | 2008-01-20 | MA1 | Maths | T02 | Ms Patel | patel@sch.uk | A |
Update Anomaly
Changing one fact (e.g. a teacher's email) requires updating every row that contains it. If any row is missed, the data becomes inconsistent.
Insert Anomaly
You cannot record a new item (e.g. a new course) without also inserting other data (e.g. a student enrolment). This forces artificial or incomplete rows.
Delete Anomaly
Deleting a record unintentionally loses other data. E.g. deleting a student's last course removes all their personal information from the database.
Exam Tip
State the anomaly type AND give a specific example: "If a teacher changes their email address, every row for that teacher must be updated. Missing one row causes inconsistency."
Key Concepts
What is a flat file?
A single table storing all data together. No separate tables, no defined relationships, just rows and columns.
Why normalise?
Normalisation removes redundancy and anomalies. Each fact is stored in exactly one place, making updates, inserts, and deletes safe and consistent.
Normal Forms