Code360 powered by Coding Ninjas X Naukri.com. Code360 powered by Coding Ninjas X Naukri.com
Table of contents
1.
Introduction
2.
What are the Anomalies in DBMS?
3.
How are Anomalies Caused in DBMS?
4.
Example of Anomalies in DBMS
5.
Types of Anomalies in DBMS
5.1.
Insert anomaly
5.1.1.
Example
5.2.
Update anomaly
5.2.1.
Example
5.3.
Delete anomaly
5.3.1.
Example
6.
What are the Common Causes of Database Anomalies?
7.
How to Avoid Database Anomalies?
8.
Removal of Anomalies
9.
Frequently Asked Questions
9.1.
How can normalization help prevent anomalies in DBMS?
9.2.
How do the anomalies affect the database?
9.3.
How do you overcome anomalies in DBMS?
9.4.
Why do we need to detect anomalies?
10.
Conclusion
Last Updated: Mar 27, 2024
Medium

Anomalies in DBMS

Master Python: Predicting weather forecasts
Speaker
Ashwin Goyal
Product Manager @

Introduction

Database anomaly is a flaw in databases because of poor planning and storing everything in a flat database. Anomalies occur when there is too much redundancy in the database. Poor table design has related data scattered over various tables. Any new change in the database should be updated in many places. It is also possible that the information is only half present. It's there in one table, but missing in another one. 

In this article, we will dive deeper into learning in database anomalies. Start reading with What are Anomalies in DBMS first.

Anomalies in DBMS

What are the Anomalies in DBMS?

We are already aware about the term normalization. Normalization is the process of splitting the relations into smaller relations to do the operations more efficiently without any inconsistency. Without normalization, the integrity of the table will not be maintained over time. When attempting to load an integrated conceptual model into the DBMS, several issues can arise without normalization. Anomalies are the relations that cause these issues because they are produced straight from user views. So we can say that A Database anomaly is a flaw that frequently results from poor planning and storing everything in a flat database. 

Get the tech career you deserve, faster!
Connect with our expert counsellors to understand how to hack your way to success
User rating 4.7/5
1:1 doubt support
95% placement record
Akash Pal
Senior Software Engineer
326% Hike After Job Bootcamp
Himanshu Gusain
Programmer Analyst
32 LPA After Job Bootcamp
After Job
Bootcamp

How are Anomalies Caused in DBMS?

Anomalies in DBMS arise primarily due to flawed database design, particularly when normalization rules are not properly applied. These issues manifest in three main forms:

  • Insertion Anomaly: Occurs when you cannot add data to the database due to the absence of other related data. For instance, being unable to add a new employee because their department does not exist in the database yet.
  • Deletion Anomaly: Happens when removing a record also unintentionally removes other valuable data. For example, deleting the last employee in a department might inadvertently remove the entire department from the database.
  • Update Anomaly: Arises when a piece of information that appears in multiple places is updated in one location but not the others, leading to inconsistent data across the database.

Example of Anomalies in DBMS

Assume a manufacturing company stores employee details in a table called Employee having four attributes:

  • Emp_id for employee's id.
  • Emp_name for employee's name.
  • Emp_address for employee's address.
  • Emp_dept for the department details in which the employee works.


The table will look like this. The table given below is not normalized. We will see how problems arise when a table is not normalized.

e_id e_name e_address e_dept
101 Rick Delhi D001
101 Rick Delhi D002
123 Maggie Agra D890
166 Glenn Chennai D900
166 Glenn Chennai D004

Types of Anomalies in DBMS

There are 3 types of database anomalies:

  1. Insertion Anomalies
  2. Deletion Anomalies
  3. Update Anomalies
  • Insert Anomaly: The term "insertion anomaly" is used to describe when a new row is added to a table and it causes an inconsistency.
  • Update Anomaly: If there are some changes in the database, we have to apply that change in all the rows. And if we miss any row, we will have one more field, creating an update anomaly in the database.  
  • Delete Anomaly: The term "deletion anomaly in the database" is used when we delete some rows from a table and any necessary additional information or data is also lost from the database.

Insert anomaly

If a tuple is inserted in referencing relation and referencing attribute value is not present in referenced attribute, it will not allow inserting in referencing relation. 

Example

Assume that a new employee is joining the company under training and not assigned to any department. Then, we would not insert the data into the table if the emp_dept field doesn't allow nulls.

Update anomaly

If a tuple is updated from referenced relation and the referenced attribute value is used by referencing attribute in referencing relation. In that case, it will not allow updating the tuple from referenced relation.

Example

In the given table, we have two rows for an employee named Rick, and he belongs to two different departments of the company. If we need to update Rick's address, we must update the same address in two rows. Otherwise, the data will become inconsistent. 

If, in some way, we can update the correct address in one department but not the other, then according to the database, Rick will have two different addresses, which is not correct and would lead to inconsistent data. 

Delete anomaly

If a tuple is deleted from referenced relation and the referenced attribute value is used by referencing attribute in referencing relation, it will not allow deleting the tuple from referenced relation. 

Example

Assume that if the company closes the department D890, then deleting the rows that have emp_dept as D890 would also delete the information of employee Maggie since she is assigned only to this department.

What are the Common Causes of Database Anomalies?

The common causes of database anomalies are mentioned below:

  1. Redundancy: Duplicate data entries lead to inconsistencies during updates.
  2. Update Anomalies: Inconsistent modifications may occur due to incomplete updates.
  3. Insertion Anomalies: Challenges arise when attempting to insert data into tables with missing required attributes.
  4. Deletion Anomalies: Removing data may unintentionally eliminate necessary information.
  5. Improper Structural Design: Poorly designed table structures can contribute to anomalies.

How to Avoid Database Anomalies?

To avoid database anomalies, adopting proper normalization techniques is crucial. Normalization involves organizing data to minimize redundancy and dependency issues. By breaking down tables into smaller, more manageable entities and establishing relationships, normalization ensures data integrity.

Additionally, enforcing referential integrity constraints, utilizing primary and foreign keys, and conducting thorough data modeling contribute to a robust database structure, mitigating anomalies and enhancing overall system reliability. Regular maintenance and periodic reviews of the database design help identify and address potential anomalies as the system evolves.

Removal of Anomalies

To prevent anomalies, we need to normalize the database by efficiently organizing the data in a database. Normalization is a systematic approach to eliminate data redundancy and Insertion, Modification, and Deletion Anomalies by decomposing tables. The database designer organizes the data to eliminate unnecessary duplications and provides a quick search path to all necessary information.

According to Edgar F Codd, the inventor of relational databases, the goals of normalization include:

  • removing all redundant (or repeated) data from the database
  • removing undesirable insertions, updates, and deletion dependencies
  • reducing the need to restructure the entire database every time new fields are added to it
  • making the relationships between tables more useful and understandable. 

Frequently Asked Questions

How can normalization help prevent anomalies in DBMS?

Normalization in DBMS helps prevent anomalies by organizing data to eliminate redundancy and dependencies. It ensures data consistency, minimizes update anomalies, and maintains relational integrity, reducing the risk of inconsistencies and errors in the database.

How do the anomalies affect the database?

Relational databases are affected by 3 types of anomalies, Insertion, Updation, and Deletion anomaly. They occur due to the presence of data redundancy and inconsistent data. Anomalies can lead to incorrect query results and difficulty in the management of your database.

How do you overcome anomalies in DBMS?

You can overcome anomalies in database by using the following measures, normalization techniques, performing validation on user-submitted data, using transactions wherever they are necessary, and avoiding denormalization while attempting to improve performance. 

Why do we need to detect anomalies?

Anomalies in your database can be detected by implementing data quality checks and using validation rules to identify inconsistent values present in your database. SQL queries can be used for applying quality checks and validating the data for detecting anomalies.

Conclusion

In this article, we have discussed Anomalies in database in detail. We have learnt about deleting, updating, and inserting anomalies and the situation in which they can occur. Normalization is the solution to all kinds of anomalies. It helps to remove anomalies and give structured data.

Recommended Readings:

Also read, File System vs DBMS

Visit here to learn more about different topics related to database and management systems. Ninjas don’t stop here. Check out the Top 100 SQL Problems to master frequently asked questions in big companies and land your dream job. You can also consider our Database Management Course to give your career an edge over others.

Previous article
Relational Data Models
Next article
Data Integrity Constraints in DBMS
Live masterclass