The 2nd level of normalization or the 2nd normal form
deals with data redundancy that occurs vertically across
the different rows in a table. In order to determine
if a database table is in the 2nd normal form, traverse
the actual table record data from top to bottom for
each column in the table and check if each column is
free from redundant data.
Consider the following database table for bank customers
(let's assume that the bank's policy allows each customer
to have only 1 product):
cust_id lastname firstname product
------- -------- --------- -------
0001 henry john
credit card
0002 smith adam
savings
0003 johnson mary
credit card
0004 bailey harry
credit card
0005 morgan alex
savings
It is quite obvious that there is redundant data in
the product column. This redundancy can easily be removed
by normalizing the table to it's 2nd normal form. The
resulting design will be as follows:
products table
==============
product_id (primary key)
name
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 product_id field.