The 1st level of normalization or the 1st normal form deals with data redundancy within each table record. In order to determine if a database table is in the 1st normal form, traverse the table design from column to column within the same row and check if the row is free from redundant data.
Consider the following database table design for bank customers:
customers table
column | |
cust_id |
primary key |
lastname |
|
firstname |
|
ssn |
|
product_1 |
|
product_2 |
|
product_3 |
|
Let's assume that a bank is using such a table to store information about a customer and the type of financial products that the customer has 'purchased' - e.g. credit card, checking account, savings account, etc.
It is quite obvious that there is redundant data in each row - i.e. the product information. Another deficiency is that the design assumes that each customer will have a maximum of 3 products. These problems can easily be removed by normalizing the table to it's 1st normal form. The resulting design will be as follows:
customers table
column | |
cust_id |
primary key |
lastname |
|
firstname |
|
ssn |
|
products table
column | |
product_id |
primary key |
cust_id |
foreign key |
The normalization results in 2 tables. The product table is tied back to the customer table through the use of a
foreign key - in this case, the cust_id field.
See also:
2nd normal form and
3rd normal form