DBMS Notes
Normalization is a systematic technique in database design used to organize relations (tables) in a way that reduces data redundancy and eliminates...
What is Normalization?
Normalization is a systematic technique in database design used to organize relations (tables) in a way that reduces data redundancy and eliminates undesirable anomalies such as insertion, update, and deletion anomalies. It involves decomposing a relation into two or more smaller relations while preserving the data and the relationships among the data.
Think of normalization as the process of cleaning up a poorly designed database. Just as you might reorganize a cluttered room by putting each type of item in its proper place, normalization ensures that each piece of information is stored in exactly one logical location, referenced from elsewhere through keys rather than being duplicated.
Normalization Solves These Problems
Normalization decomposes the problematic flat table into well-structured smaller tables:
Now each entity's information is stored exactly once. Updates affect single rows. New courses can be added without students. Dropping all enrollments does not delete course or instructor data.
The Normalization Process
Normalization proceeds through a series of normal forms — each addressing a specific type of redundancy:
| Normal Form | What It Eliminates | Test |
|---|---|---|
| 1NF | Multi-valued attributes, repeating groups | Are all values atomic? |
| 2NF | Partial dependencies | Do non-key attributes depend on full key? |
| 3NF | Transitive dependencies | Do non-key attributes depend only on the key? |
| BCNF | Non-superkey determinants | Is every determinant a superkey? |
| 4NF | Multi-valued dependencies | Are independent multi-valued facts separated? |
| 5NF | Join dependencies | Can it be decomposed further without loss? |
Each normal form builds on the previous one — a relation in 3NF is automatically in 2NF and 1NF.
Functional Dependencies: The Foundation of Normalization
Normalization decisions are driven by functional dependencies (FDs) — relationships between attributes where the value of one set of attributes uniquely determines the value of another set.
| Notation: X | Y (X functionally determines Y) |
| Meaning | If two rows have the same value for X, they MUST have the same value for Y |
| StudentID | StudentName, Address (knowing the ID determines the name and address) |
| CourseID | CourseName, Credits (knowing the course ID determines its details) |
| (StudentID, CourseID) | Grade (a specific student in a specific course has one grade) |
The types of functional dependencies present in a relation determine which normal form it satisfies and what decomposition is needed.
Practical Goals of Normalization
The practical goals are summarized by a simple motto: each attribute should depend on the key, the whole key, and nothing but the key.
- The key: every attribute must be determined by a candidate key (eliminates transitive dependencies → 3NF)
- The whole key: attributes must depend on the entire key, not just part of it (eliminates partial dependencies → 2NF)
- Nothing but the key: attributes must not depend on anything other than a superkey (BCNF)
When to Stop Normalizing
In practice, most databases are normalized to 3NF or BCNF. Higher normal forms (4NF, 5NF) address rare scenarios involving multi-valued and join dependencies. The decision to stop depends on:
- Performance requirements: Highly normalized databases require more joins, which can slow queries
- Application workload: Read-heavy applications might benefit from some controlled redundancy (denormalization)
- Data update frequency: If data changes frequently, higher normalization prevents update anomalies
- Storage constraints: While less critical today, normalization reduces storage by eliminating duplicates
Normalization vs. Denormalization
| Aspect | Normalization | Denormalization |
|---|---|---|
| Redundancy | Minimal | Intentional duplication |
| Anomalies | Eliminated | May reintroduce |
| Query complexity | More joins needed | Fewer joins, simpler queries |
| Write performance | Better (update one place) | Worse (update multiple places) |
| Read performance | May be slower (joins) | Faster (pre-joined data) |
| Best for | OLTP systems (transactions) | OLAP systems (analytics, reporting) |
Understanding both normalization and strategic denormalization is essential — real-world database design requires knowing when each approach is appropriate.
Exam Focus
Revise definitions, diagrams, examples, and short-answer points for Normalization — Introduction.
Interview Use
Prepare one clear explanation, one practical example, and one common mistake for this Database Management Systems (DBMS) topic.
Search Terms
dbms, database management systems (dbms), unit, normalization, introduction, normalization — introduction
Related Database Management Systems (DBMS) Topics