The term Normalization is a process by which we can efficiently organize the data in a database. It associates relationship between individual tables according to policy designed both to care for the data and to create the database more flexible by eliminating redundancy and inconsistent dependency.
In other words, Database normalization is a process by which a presented database is tailored to bring its component tables into compliance with a sequence of progressive standard forms. It is an organized way of ensuring that a database construction is appropriate for general purpose querying and also includes the functions of insertion, deletion and updating.
Edgar Frank Codd was the person who introduced the process of database normalization firstly in his paper called A Relational Model of Data for Large Shared Data Banks. The two main objective of database normalization is eliminating redundant data and ensuring data dependencies make sense and make sure that every non-key column in every table is directly reliant on the key and the whole key.
Redundant data or unnecessary data will take more and more space in the database and later, creates the maintenance problem in the database. If data that exists in more than one place must be changed because it wastes disk space and the data must be changed in exactly the same way in all locations of the table.
Data dependencies can make data easier to access because it is easy to find the path of the data. Inconsistent dependencies will create the huge problem to find the data of particular person or thing. For example, if a user look in the employee table for the salary of a particular employee, it may not make sense to look there for the HRA or PF of the employee who calls on that customer. The employee's HRA of PF is related to, or dependent on, the employee.
In the next section, we will take a look on the different form of Normalization.