Chaturmind
LearnDSASystem DesignBlogPremium
Sign inGet started
Chaturmind

Structured learning paths for engineers who want to go deep. Written by practitioners.

Learn

  • Java
  • DSA
  • System Design
  • Spring Boot
  • AI / ML

Company

  • Blog
  • Premium
  • Contact

Legal

  • Privacy Policy
  • Terms of Service

© 2026 Chaturmind. All rights reserved.

Built for engineers who want to go deep.


← Database Fundamentals

Database Foundations

  • ACID Properties
  • Indexes & Query Performance
  • Transactions & Isolation Levels

Database Design

  • Normalization (1NF–3NF)
  • SQL Joins & Set Operations
  • Window Functions
Chaturmind
← Database Fundamentals

Database Foundations

  • ACID Properties
  • Indexes & Query Performance
  • Transactions & Isolation Levels

Database Design

  • Normalization (1NF–3NF)
  • SQL Joins & Set Operations
  • Window Functions
HomeLearnDatabasesDatabase FundamentalsDatabase Design
✓ FreeIntermediate· 11 min read

Database Normalization

Learn 1NF through 3NF/BCNF normalization rules to eliminate redundancy and update anomalies.

Published April 4, 2025


Database Normalization

Normalization is the process of structuring a relational database to reduce data redundancy and improve data integrity. Each normal form adds a rule to eliminate a specific type of anomaly.

Why Normalize?

Without normalization, you get update anomalies:

  • Insertion anomaly: can't add data without unrelated data
  • Update anomaly: changing one fact requires updating many rows
  • Deletion anomaly: deleting one record accidentally removes other facts

First Normal Form (1NF)

Eliminate repeating groups; each column must hold atomic values.

❌ Violates 1NF:

| student_id | name  | courses              |
|------------|-------|----------------------|
| 1          | Alice | Java, Spring, DSA    |

✅ 1NF:

| student_id | name  | course  |
|------------|-------|---------|
| 1          | Alice | Java    |
| 1          | Alice | Spring  |
| 1          | Alice | DSA     |

Second Normal Form (2NF)

Must be in 1NF; every non-key attribute must depend on the whole primary key (eliminate partial dependencies).

Applies only to tables with composite keys.

❌ Violates 2NF (course_name depends only on course_id, not the full key):

| student_id | course_id | course_name | grade |

✅ 2NF (split into two tables):

courses:           | course_id | course_name |
enrollments:       | student_id | course_id | grade |

Third Normal Form (3NF)

Must be in 2NF; no transitive dependencies (non-key attribute depending on another non-key attribute).

❌ Violates 3NF (zip_code → city is a transitive dependency):

| employee_id | name | zip_code | city      |

✅ 3NF:

employees:  | employee_id | name | zip_code |
zip_codes:  | zip_code | city |

BCNF (Boyce-Codd Normal Form)

Stricter version of 3NF. Every determinant must be a candidate key.

Rarely violated in practice; 3NF is sufficient for most applications.

Denormalization — When to Break the Rules

Normalization optimises for write integrity. For read performance, you sometimes denormalize intentionally:

  • Store user_name on the orders table to avoid a JOIN on every read
  • Pre-aggregate daily totals into a summary table
  • Use materialized views for expensive reports

Denormalization is a deliberate trade-off: you accept some redundancy in exchange for faster reads.

Quick Reference

Normal FormEliminates
1NFRepeating groups, multi-valued columns
2NFPartial dependencies (composite key tables)
3NFTransitive dependencies
BCNFNon-key determinants

Interview Tips

  1. Be able to identify a normalization violation in a table schema presented during the interview.
  2. Know when not to normalize — read-heavy analytics systems, event stores, and document databases often intentionally denormalize.
  3. The classic answer: "Normalize to 3NF, then selectively denormalize based on profiling."

Previous

Transactions & Isolation Levels

Next

SQL Joins & Set Operations

AI Tutor

Lesson: Database Normalization

Quick actions

AI responses can be inaccurate. Verify critical information.