Why Normalize?
Normalization is the process of organizing a database to reduce redundancy and improve data integrity. Without normalization, you end up with duplicate data, update anomalies, and wasted storage.
The Problems Without Normalization
UNNORMALIZED: StudentCourses Table
โโโโโโฌโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ID โ Name โ Courses โ
โโโโโโผโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ 1 โ Alice โ Databases, Networking โ
โ 2 โ Bob โ Databases, OS โ
โโโโโโดโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโ
Problems:
โ Redundancy: "Alice" and "Databases" stored multiple times
โ Update anomaly: If Alice changes name, must update multiple rows
โ Insert anomaly: Can't add a course without a student
โ Delete anomaly: Deleting Bob might lose course information
Normalization Process
NORMALIZED:
Students Enrollments Courses
โโโโโโฌโโโโโโโโโโ โโโโโโฌโโโโโโโโโโ โโโโโโฌโโโโโโโโโโโโโ
โ ID โ Name โ โSID โCrsID โ โ ID โ Title โ
โโโโโโผโโโโโโโโโโค โโโโโโผโโโโโโโโโโค โโโโโโผโโโโโโโโโโโโโค
โ 1 โ Alice โ โ 1 โ 101 โ โ101 โ Databases โ
โ 2 โ Bob โ โ 1 โ 102 โ โ102 โ Networking โ
โโโโโโดโโโโโโโโโโ โ 2 โ 101 โ โ103 โ OS โ
โ 2 โ 103 โ โโโโโโดโโโโโโโโโโโโโ
โโโโโโดโโโโโโโโโโ
โ No redundancy
โ Update name? One place to change
โ Add course without student? Yes
โ Delete student? Course data preserved