Second Normal Form (2NF)
Second Normal Form (2NF)
Normalisation is a crucial step in relational database design that ensures data consistency and gets rid of redundancy. The Second Normal Form (2NF) plays an important role in this process by building upon the First Normal Form (1NF). In this blog, we’ll understand what 2NF is, explore its principles with real-life examples, and see why even 2NF isn’t always enough.
Machine Learning Tutorial:–Click Here
Data Science Tutorial:-Click Here
Complete Advance AI topics:-Â CLICK HERE
Deep Learning Tutorial:-Â Click Here
What is Second Normal Form (2NF)?
Second Normal Form is used for a relationship if:
- It is already in First Normal Form (1NF), and
- All non-key attributes are fully functionally dependent on the entire primary key—not just a part of it.
In simple terms, this means that no non-key attribute should be dependent on a part (subset) of a composite primary key.The table needs to be broken down if there are any such partial dependencies.
Example: Teacher and Subject Data
Assume that a school keeps records of its instructors and the courses they instruct. This is how the data may initially appear:
TEACHER Table
TEACHER_ID | SUBJECT | TEACHER_AGE |
---|---|---|
25 | Chemistry | 30 |
25 | Biology | 30 |
47 | English | 35 |
83 | Math | 38 |
83 | Computer | 38 |
In the above table, the combination of TEACHER_ID
and SUBJECT
acts as a composite key. However, TEACHER_AGE
depends only on TEACHER_ID
, not on the full composite key. This is a partial dependency, which violates 2NF.
Converting to 2NF
To resolve this, we decompose the table into two separate relations:
TEACHER_DETAIL Table
TEACHER_ID | TEACHER_AGE |
---|---|
25 | 30 |
47 | 35 |
83 | 38 |
TEACHER_SUBJECT Table
TEACHER_ID | SUBJECT |
---|---|
25 | Chemistry |
25 | Biology |
47 | English |
83 | Math |
83 | Computer |
Now, both tables are in 2NF as all non-key attributes are fully dependent on their respective primary keys.
Anomalies in 2NF
Even after achieving 2NF, a relation can still suffer from insertion, deletion, and update anomalies. Let’s explore these with another example.
Consider the STUDENT Table:
Stu_Id | Stu_Name | Teach_Id | Teach_Name | Teach_Qual |
---|---|---|---|---|
2523 | Anurag | 201 | Mohan | MCA |
3712 | Raju | 202 | Ravi | M.Tech |
4906 | Raman | 203 | Mahima | Ph.D |
2716 | Jyoti | 204 | Anjali | MCA |
1768 | Meetali | 205 | Sonia | M.Tech |
Here, Stu_Id
is the primary key. While the table is technically in 2NF, it still has several flaws.
Insertion Anomaly
Assume that Mayank, a new instructor with Teach_Id = 206 and MCA certification, is to be added. However, the Stu_Id would be NULL because Mayank hasn’t been given any students yet, which is against the entity integrity constraint.
Stu_Id | Stu_Name | Teach_Id | Teach_Name | Teach_Qual |
---|---|---|---|---|
NULL | NULL | 206 | Mayank | MCA |
This insertion is not possible, revealing a flaw in the current design.
Deletion Anomaly
Imagine student Stu_Id = 1768
(Meetali) leaves the college. Deleting her record would also delete information about her teacher Sonia (Teach_Id = 205
)—even if Sonia is still part of the faculty. Important data about teachers is lost unintentionally.
Update Anomaly
Suppose the qualification of teacher Anjali (Teach_Id = 204
) is updated from MCA to Ph.D. If this information appears in multiple rows (for different students), we must update it everywhere. A single missed update leads to inconsistent data across the table.
Why 2NF Isn’t Enough
While 2NF reduces redundancy and solves partial dependencies, it does not address all forms of anomalies. Insertion, deletion, and update anomalies can still exist. Therefore, 2NF is not the final stage in logical database design. To eliminate these issues, we must further refine the schema into Third Normal Form (3NF).
Complete Python Course with Advance topics:-Click Here
SQL Tutorial :-Click Here
Download New Real Time Projects :-Click here
Final Thoughts
Second Normal Form is a crucial milestone in database normalization, but it doesn’t guarantee a fully optimized schema. As we saw, certain data anomalies still persist even after reaching 2NF. The next step—Third Normal Form—further strengthens data integrity by removing transitive dependencies.
Stay tuned for our upcoming post on 3NF, where we’ll guide you through its concept, benefits, and real-world application.
third normal form
second normal form example
first normal form
second normal form in dbms
third normal form in dbms
partial dependency in 2nf
1nf, 2nf, 3nf with example
third normal form example
second normal form 2nf in dbms
second normal form 2nf example
second normal form 2nf geeksforgeeks
Post Comment