Lesson 95 of 12122 min read

What is Normalization in DBMS? Purpose, Benefits and Drawbacks

Understand what normalization is, why it exists to eliminate data redundancy and anomalies, and its tradeoffs.

Author: CodersNexus

What is Normalization in DBMS? Purpose, Benefits and Drawbacks

Imagine a single, giant table storing every appointment along with the doctor's name, department, and salary repeated on every single row for that doctor. Update that doctor's salary, and you'd need to update it in potentially hundreds of rows — miss even one, and your data becomes silently inconsistent. Normalization is the systematic process of restructuring tables specifically to eliminate this kind of redundancy and the data-integrity problems it causes.

Key Definitions

  • Normalization: The systematic process of organizing database tables and columns to minimize data redundancy and eliminate data anomalies.
  • Update anomaly: A data integrity problem where updating one piece of information requires changing multiple rows, risking inconsistency if not all are updated correctly.
  • Insert anomaly: A problem where certain data cannot be added to the database until unrelated data is also available, due to poor table structure.
  • Delete anomaly: A problem where deleting one piece of information unintentionally causes the loss of other, unrelated information stored in the same row.

What You'll Learn

  • Define normalization and the core problem it solves.
  • Identify the three classic anomalies that unnormalized data causes.
  • List the benefits normalization provides for data integrity.
  • Understand the tradeoffs and drawbacks normalization introduces.

Detailed Explanation

Consider a single unnormalized table combining appointment, doctor, and department details all in one place: appointment_id, patient_name, doctor_name, department_name, doctor_salary. This flat structure causes three classic anomalies. The update anomaly: if Dr. Verma's salary changes, every single appointment row involving Dr. Verma must be updated — miss one, and the database now contains two conflicting salary values for the same doctor. The insert anomaly: if a new doctor joins the hospital but hasn't been assigned any appointments yet, there's no way to record their existence in this table at all, since it's structured around appointments, not doctors independently. The delete anomaly: if the hospital's only appointment with Dr. Sen is cancelled and that row is deleted, all record of Dr. Sen's department and salary vanishes along with it, even though Dr. Sen still works there.

Normalization solves all three anomalies by splitting this flat structure into separate, focused tables — exactly the departments, doctors, patients, and appointments tables used throughout this course — where each piece of information is stored in exactly one place, and relationships are expressed through foreign keys instead of repeated columns.

The benefits are substantial: reduced storage space (no repeated data), guaranteed consistency (a fact lives in exactly one place), and easier maintenance. But normalization isn't free — it introduces drawbacks too. Retrieving a complete picture (like a full appointment with doctor and department names) now requires JOINs across multiple tables instead of a single flat SELECT, which can add query complexity and, in some very high-read scenarios, a performance cost that must be weighed against the benefits, a tradeoff explored further in Lesson 8.12 on denormalization.

Visual Summary

Two side-by-side tables. Left, a wide flat table labeled [Unnormalized: appointment_id, patient_name, doctor_name, department_name, doctor_salary] with a red warning icon labeled 'Redundant doctor/department data repeated on every row'. Right, four smaller connected tables labeled [departments], [doctors], [patients], [appointments], with a green checkmark labeled 'Each fact stored exactly once'.

Quick Reference

AnomalyWhat Goes WrongNormalization Fix
Update anomalyChanging a doctor's salary requires updating many rowsDoctor salary stored once in the doctors table
Insert anomalyCan't add a doctor with no appointments yetDoctors table exists independently of appointments
Delete anomalyDeleting the last appointment erases doctor/department infoDoctor and department data persist in their own tables

SQL Example


-- UNNORMALIZED (illustrative): redundant data repeated per appointment row
-- appointment_id | patient_name | doctor_name | department_name | doctor_salary
-- 301            | Amit Rao     | Dr. Verma   | Cardiology       | 95000
-- 303            | Karan Mehta  | Dr. Verma   | Cardiology       | 95000   <-- repeated!

-- NORMALIZED: the same facts, each stored exactly once
CREATE TABLE departments (
  department_id INT PRIMARY KEY AUTO_INCREMENT,
  department_name VARCHAR(100)
);
CREATE TABLE doctors (
  doctor_id INT PRIMARY KEY AUTO_INCREMENT,
  doctor_name VARCHAR(100),
  salary INT,
  department_id INT,
  FOREIGN KEY (department_id) REFERENCES departments(department_id)
);
CREATE TABLE appointments (
  appointment_id INT PRIMARY KEY AUTO_INCREMENT,
  patient_name VARCHAR(100),
  doctor_id INT,
  FOREIGN KEY (doctor_id) REFERENCES doctors(doctor_id)
);

In the unnormalized version, Dr. Verma's name, department, and salary are repeated on every appointment row involving him — updating his salary correctly requires finding and updating every single one of those rows. In the normalized version, Dr. Verma's salary exists in exactly one row of the doctors table; every appointment simply references his doctor_id, so a single UPDATE to one row keeps the entire database consistent.

Real-World Examples

  • Banking systems rely heavily on normalization to ensure an account holder's details are stored once and referenced everywhere, preventing catastrophic inconsistency in financial records.
  • E-commerce platforms normalize product and customer data separately from order records, so updating a product's price doesn't require touching thousands of historical order rows.
  • Healthcare systems normalize patient and doctor data specifically to avoid the update and delete anomalies that could otherwise compromise critical medical record accuracy.

Common Mistakes to Avoid

  • Assuming normalization always improves performance — it can actually add JOIN overhead in some read-heavy scenarios.
  • Not recognizing all three anomaly types (update, insert, delete) when explaining the purpose of normalization in an exam or interview.
  • Over-normalizing a database beyond what practical use cases require, adding unnecessary complexity.

Interview Questions

Q1. What is normalization and why is it used?

Normalization is the process of organizing database tables to minimize data redundancy and eliminate data anomalies, ensuring each piece of information is stored in exactly one place, which improves consistency, reduces storage, and simplifies maintenance.

Q2. What are the three classic anomalies normalization solves?

Update anomalies (needing to change the same fact in multiple places), insert anomalies (being unable to add certain data due to unrelated missing data), and delete anomalies (losing unrelated information when deleting a row).

Q3. What is a drawback of normalization?

Normalized data is split across multiple tables, so retrieving a complete picture of related data requires JOINs, which adds query complexity and can introduce a performance cost in some very high-read scenarios compared to a single flat table.

Practice MCQs

1. What problem occurs when updating a repeated value requires changing many rows, risking inconsistency?

  1. Insert anomaly
  2. Update anomaly
  3. Delete anomaly
  4. Join anomaly

Answer: B. Update anomaly

Explanation: An update anomaly occurs when redundant data means a single logical change requires updating multiple rows, risking inconsistency if any are missed.

2. What is the primary purpose of normalization?

  1. To make queries always faster
  2. To eliminate data redundancy and prevent anomalies
  3. To reduce the number of tables in a database
  4. To remove the need for primary keys

Answer: B. To eliminate data redundancy and prevent anomalies

Explanation: Normalization's core purpose is minimizing redundant data storage and preventing the update, insert, and delete anomalies that redundancy causes.

Quick Revision Points

  • The three anomalies normalization addresses: update, insert, and delete anomalies — a frequently tested exam list.
  • Normalization improves data integrity and reduces redundancy, but can increase query complexity via JOINs.
  • Normalization is applied incrementally through normal forms (1NF, 2NF, 3NF, BCNF), covered in the following lessons.

Conclusion

  • Normalization eliminates data redundancy by splitting flat, repetitive tables into focused, related tables.
  • It solves three classic anomalies: update, insert, and delete anomalies.
  • The main tradeoff is increased query complexity, since retrieving combined data now requires JOINs.

Normalization is the systematic process of restructuring database tables to eliminate data redundancy and the three classic anomalies it causes: update anomalies (requiring changes in multiple places), insert anomalies (being unable to add certain data independently), and delete anomalies (losing unrelated data when a row is removed). While normalization significantly improves data integrity, consistency, and storage efficiency, it introduces the tradeoff of needing JOINs to reconstruct a complete picture of related data, a balance that later lessons on denormalization revisit for specific high-performance scenarios.

Frequently Asked Questions

Normalization is the process of organizing database tables to reduce data redundancy and prevent data anomalies, ensuring each fact is stored in exactly one place.

Update anomalies (needing to change the same data in many places), insert anomalies (being unable to add certain data independently), and delete anomalies (losing unrelated data when deleting a row).

Reduced data redundancy, improved data consistency, easier maintenance, and more efficient storage, since each fact is stored only once.

Retrieving a complete picture of related data requires JOINs across multiple tables, which adds query complexity and can introduce a performance cost in some high-read scenarios.

Not always. While it's the right default for most transactional systems prioritizing data integrity, some read-heavy analytical systems intentionally denormalize data for performance, a tradeoff covered in Lesson 8.12.