2NF is based on the concept of full functional dependency and the table must be in 1NF. A relation schema R is in 2NF if every nonprime attribute A in R is fully functional dependent on the primary key of R.
- Anomalies can occur when attributes are dependent on only part of a multi-attribute (composite) key.
- A relation is in second normal form when all non-key attributes are dependent on the whole key. That is, no attribute is dependent on only a part of the key.
- Any relation having a key with a single attribute is in second normal form.
Take the following table structure as an example
Student_ID | Sub_Code | Course | Student_Name | Student_Add |
A981 | M101 | MCA | Tom | Green Valley |
A982 | MB102 | MBA | Sam | Sun City |
Here we should realize that there are two functional dependencies, to make this table 2NF these attribute must be removed and placed somewhere else.
- Course is functionally dependent on Student_ID and Sub_Code,
- Student_Name and Student_Add are functionally dependent on Student_ID
Course Table:-
Student_ID | Sub_Code | Course |
A981 | M101 | MCA |
A982 | MB102 | MBA |
Student Table:-
Student_ID | Student_Name | Student_Add |
A981 | Tom | Green Valley |
A982 | Sam | Sun City |





