Database Normalization Explained Simply
Imagine a university database that stores student names, course names, and lecturer names in one large table.
When many students enrol in the same course, the course and lecturer information gets repeated again and again.
This might seem harmless, but what happens when a lecturer’s name changes? You may need to update several rows. If you miss one, your database contains inconsistent information.
Database normalisation helps solve this problem.
What Is Database Normalisation?
Database normalisation is the process of organising data into related tables to reduce unnecessary duplication and prevent data inconsistencies.
Instead of storing everything in one table, we separate information based on what it represents.
For example, a university database could have three tables:
- Students: Student ID and student name
- Courses: Course ID and course name
- Enrollments: Student ID and course ID
Now, student and course information can be stored separately, while the enrollments table connects them.
Understanding the Three Main Normal Forms
1NF — First Normal Form
Each field should contain a single value.
Get Ravinduvimukthi’s stories in your inbox
Join Medium for free to get updates from this writer.
Instead of storing C101, C102 in one Courses cell, store each course enrollment as a separate row.
2NF — Second Normal Form
The table must be in 1NF, and non-key attributes must depend on the whole of every candidate key, not just part of a composite key.
For example, a student’s name depends on the Student ID, not on the combination of Student ID and Course ID.
3NF — Third Normal Form
The table must be in 2NF, and non-key attributes must not depend transitively on a candidate key.
For example, store lecturer details in a separate Lecturers table and connect them to courses using a Lecturer ID.
Why Does Normalisation Matter?
Normalisation helps developers:
- Reduce unnecessary duplicate data.
- Keep information consistent.
- Avoid common data update problems.
- Create databases that are easier to maintain.
However, normalisation is not always about creating as many tables as possible. The goal is to organise data according to its relationships and requirements.
Final Thought
A well-designed database is not simply a place to store information. It is a structure that helps applications manage information accurately and efficiently.
Understanding normalisation is an important step toward building reliable software.
Start small, understand the relationships, and design your database carefully.










