Tuesday, January 26, 2010

Second Normal Form (2NF)


Second Normal Form (2NF) :-A table is said to be in its Second Normal Form if it satisfied the following conditions:-
1) It satisfies the condition for the First Normal Form (1NF),
2) It do not includes any partial dependencies where a column is dependent only a part of a primary key.

For example suppose we have a table EmpProjDetail, which contains the employee details and its project details like projected, project name and durations in terms of days on which he/she is allocated to the project.

Table Name:-EmpProjDetail
Primary Key :- EmpId + projectid

EmpId
ProjectId
EmpName
ProjectName
Days
1
1
Vivek
Abc Bank
35
2
2
Sudeep
AbeBook
10

In this table, the primary key is composition of two columns EmpId and ProjectId. Now this table is in 1NF but it is not in the 2NF since the column EmpName can be depended on the column EmpId and the column ProjectName can be depended on the column ProjectId which violates the second condition for the 2NF.

We can break this table into three different tables to convert it into the 2NF. These tables are given below:-

Table name:- EmpDetails
Primary Key: - EmpId

EmpId
EmpName
1
Vivek
2
Sudeep

Table name:- ProjDetails
Primary Key: - ProjectId

ProjectId
ProjectName
1
Abc Bank
2
AbeBook



Table name:- EmpProjdetails
Primary Key: - empId + ProjectId

EmpId
ProjectId
Days
1
1
35
2
2
10

Now all the three tables are in 1NF and all the columns of these tables are fully depended on their respective primary keys.

7 comments:

  1. Thank you for your simple and clear examples. Studied this in college a long time ago, this is a good refresher.

    ReplyDelete
  2. why the sound clip is in hurry way

    ReplyDelete
  3. Replies
    1. Thanks Swapna for your valuable feedback... Hoping for more feedback from you..


      Regards
      Vivek

      Delete
  4. I have a doubt in 2NF it is said that "All attributes of an entity should be fully dependent on the whole primary key" . Then how come third table is said to be 2NF because it depends on composite key (combination of both empId + ProjectId) . Days allocated to a particular project need not depend fully on emp id it can also depend only on project id.can u please clarify by giving so more detailed explaination.I am newbie in SQL and now Iam still more confused

    ReplyDelete
    Replies
    1. In third table, we have to add one column more to identify the row uniquely and this column should be primary key.

      Delete
  5. I have a doubt in 2NF it is said that "All attributes of an entity should be fully dependent on the whole primary key" . Then how come third table is said to be 2NF because it depends on composite key (combination of both empId + ProjectId) . Days allocated to a particular project need not depend fully on emp id it can also depend only on project id.can u please clarify by giving so more detailed explaination.I am newbie in SQL and now Iam still more confused

    ReplyDelete