Skip to content

When designing a database, poor structure leads to data redundancy (duplicate data), update anomalies, and wasted storage. Normalisation is the process of organising tables to minimise these problems.

Definition
Normalisation is the process of organising a database to reduce redundancy and improve data integrity by following a series of rules called normal forms.

First Normal Form (1NF)

Definition
A table is in First Normal Form (1NF) if:
• Each cell contains only atomic (single, indivisible) values
• There are no repeating groups or arrays
• Each record is unique (has a primary key)
Worked Example
Worked Example: Achieving 1NF

NOT in 1NF (repeating groups):
StudentIDNameCourses
S001AliceMaths, Physics, Chemistry
S002BobMaths, Biology
Problem: Courses column contains multiple values

IN 1NF (atomic values):
StudentIDNameCourse
S001AliceMaths
S001AlicePhysics
S001AliceChemistry
S002BobMaths
S002BobBiology
Now each cell contains ONE value only

Second Normal Form (2NF)

Definition
A table is in Second Normal Form (2NF) if:
• It is already in 1NF
• All non-key attributes are fully dependent on the ENTIRE primary key (no partial dependencies)
Worked Example
Worked Example: Achieving 2NF

IN 1NF but NOT 2NF:
StudentIDCourseIDStudentNameCourseNameGrade
S001C001AliceMathsA
S001C002AlicePhysicsB
S002C001BobMathsB
Primary key: (StudentID, CourseID) - composite key

Problem: StudentName depends only on StudentID, not CourseID. CourseName depends only on CourseID, not StudentID. These are PARTIAL dependencies.

IN 2NF (split into separate tables):

Student Table:
StudentIDStudentName
S001Alice
S002Bob
Course Table:
CourseIDCourseName
C001Maths
C002Physics
Enrolment Table:
StudentIDCourseIDGrade
S001C001A
S001C002B
S002C001B
Now all non-key attributes depend on the full primary key

Third Normal Form (3NF)

Definition
A table is in Third Normal Form (3NF) if:
• It is already in 2NF
• No non-key attribute depends on another non-key attribute (no transitive dependencies)
Worked Example
Worked Example: Achieving 3NF

IN 2NF but NOT 3NF:
StudentIDNameTutorIDTutorNameTutorOffice
S001AliceT01Mr BrownRoom 12
S002BobT01Mr BrownRoom 12
S003CharlieT02Ms GreenRoom 15
Problem: TutorName and TutorOffice depend on TutorID, not StudentID. StudentID → TutorID → TutorName (transitive dependency).

IN 3NF (remove transitive dependency):

Student Table:
StudentIDNameTutorID
S001AliceT01
S002BobT01
S003CharlieT02
Tutor Table:
TutorIDTutorNameTutorOffice
T01Mr BrownRoom 12
T02Ms GreenRoom 15
Now no non-key attribute depends on another non-key attribute
Exam Tip
Benefits of Normalisation:
• Reduces data redundancy (no duplicate data)
• Prevents update anomalies (change once, applies everywhere)
• Saves storage space
• Improves data integrity
• Makes database easier to maintain