Normalization is the process of organizing data into a related table; it also eliminates redundancy and increases the integrity which improves performance of the query. To normalize a database, we divide the database into tables and establish relationships between the tables.
Database normalization can essentially be defined as the practice of optimizing table structures. Optimization is accomplished as a result of a thorough investigation of the various pieces of data that will be stored within the database, in particular concentrating upon how this data is interrelated.
Normalization Avoids:
Duplication of Data - The same data is listed in multiple lines of the database
Insert Anomaly - A record about an entity cannot be inserted into the table without first inserting information about another entity - Cannot enter a customer without a sales order
Delete Anomaly - A record cannot be deleted without deleting a record about a related entity. Cannot delete a sales order without deleting all of the customer's information.
Update Anomaly - Cannot update information without changing information in many places. To update customer information, it must be updated for each sales order the customer has placed
Normalization is a Six stage process - After the first stage, the data is said to be in first normal form, after the second, it is in second normal form and so on.