In this lesson, you will learn how to break down cluttered tables into organized structures to eliminate duplicated data and prevent inconsistencies.
The Problem with "Fat" Tables
In transactional (OLTP) systems, storing all your data in one giant table is a recipe for disaster. Imagine a Sales table where you store the Customer_Name, Customer_Address, and Order_Date in every single row. If a customer moves to a new house, you have to hunt down every order they ever placed and update the address manually. This is what we call data redundancy.
If you miss one row, your database now has conflicting information—an anomaly that compromises data quality.
Decomposing for Consistency
Normalization is the process of organizing data to minimize this redundancy. We do this by splitting the "fat" table into smaller, focused tables related by keys.
Instead of repeating customer details in every order, we split them:
Original (Redundant):
| Order_ID | Customer_Name | Address |
|---|---|---|
| 101 | Alice Smith | 123 Maple St |
| 102 | Alice Smith | 123 Maple St |
Normalized (Efficient):
Table: Customers
| Customer_ID | Name | Address |
|---|---|---|
| 1 | Alice Smith | 123 Maple St |
Table: Orders
| Order_ID | Customer_ID |
|---|---|
| 101 | 1 |
| 102 | 1 |
By extracting the customer information into its own table, we now store the address exactly once. If Alice moves, we only update one row in the Customers table, and all her orders automatically reflect the correct address via the Customer_ID link.
Why This Matters
By decomposing tables, you ensure that every piece of data is "the source of truth." This eliminates update anomalies (where changing data in one place doesn't propagate) and deletion anomalies (where deleting an order accidentally deletes a customer's record entirely). While OLAP systems might prefer denormalized structures for speed, normalization is the bedrock of reliable, consistent transactional database design.
Key Takeaway: Normalization reduces data redundancy by decomposing complex tables into linked, smaller units, ensuring that each data point is stored in exactly one place.