Tuesday, January 26, 2010

First Normal form (INF)

First Normal Form (INF):- A table is said to be in a First Normal Form (1NF)if it satisfy the following conditions:-
1)If the columns of the table only contain atomic values (Single, indivisible).
2)Primary key is defined for the table
3)All the columns of the table are defined on the primary key.

The first condition also implies that no column should contain the set of values. For example, suppose we have a table EmpDetails

Table Name :-EmpDetails
Primary Key:- EmpId

EmpId     EmpName              EmpRegdate         ExpertiseDomain
1                Raman                      23/04/2006              eLearning
2               Vivek Johari               02/01/2006           {Banking, financial, eLearning}

Now, in the above table the column ExpertiseDomain contains a set of values for the EmpId 2. Therefore this table is not in the 1NF form. To make this table in the 1NF, we need to break this table into two tables, one contains the employee information EmpInfo (EmpId, EmpName, and EmpRegdate) and the other table contains the employee expertisedomain information EmpexpertDomain (EmpId, ExpertiseDomain). In both the tables, EmpId will be the primary key.

Table Name:- EmpInfo
Primary Key:- EmpId

EmpId     EmpName            EmpRegdate
1               Raman                   23/04/2006
2               Vivek Johari           02/01/2006

Table Name:- EmpexpertDomain
Primary Key:-( EmpId , ExpertiseDomain)

EmpId           ExpertiseDomain
1                         eLearning
2                         Banking
2                         financial
2                         eLearning

Now these tables is said to be in the 1NF since all the columns of these tables contains the atomic values and all the values of the columns are dependent on the primary keys.

13 comments:

  1. the primary key of EmpexpertDomain table should be empid and expertisedomain as compositely.

    Thank you.

    ReplyDelete
    Replies
    1. Thanks for your feedback. I have corrected the error.Keep visiting my articles. I am looking forward to your more comments. :-)

      Delete
  2. prove helpful..thnks

    ReplyDelete
  3. very helpful informations ....thans vivek

    ReplyDelete
  4. Thanxx.....IT's very easy to understand.

    ReplyDelete
  5. Thanx alot sir your article is helping me for understanding SQL from depth !!!!

    Regards

    Ashutosh Srivastava

    ReplyDelete
  6. Very nice article and interesting..

    I hav 1 doubt...Primary key has unique values..How in this table "EmpexpertDomain",Primary key column "Empid" has repeated value "2"??? in this case this column not considered to be Primary key,right?

    ReplyDelete
    Replies
    1. Hi Vijila,
      Again thanks for your comments. As mention in the article, primary key is the combination of the two columns ( EmpId , ExpertiseDomain). So the single column Empid can contains duplicate value but the combination of these two columns do not contains same value for more than one rows.

      Delete