Education logo

Good and Bad Decomposition in DBMS

Evaluating Database Design: Key Factors for Optimal Decomposition

By Pushpendra SharmaPublished 28 days ago 3 min read

What's Decomposition in DBMS?

Decomposition in database management systems (DBMS) is dividing a large table into smaller tables to increase data storage. The process of decomposition helps in keeping the storage efficient.

This procedure selects the functional dependencies inside the table and break them into smaller tables to reduce storage wastage and guarantee data integrity.

There are two types: Good and Bad Decomposition in DBMS.

Good Decomposition

Good decomposition is characterized by the following properties:

1. Loss-less Join Decomposition:

  • It makes sure that no information is lost after decomposed relations are joined back together.
  • The authentic/original relation can be achieved by joining the decomposed relations.
  • If a relation R is decomposed into R1 and R2, then R=R1*R2.

2. Dependency Preservation:

  • All functional dependencies are present and prevent in the decomposed relations.
  • It makes sure that the constraints on the data are safe without the need of joining tables.
  • Helps in enforcing data integrity directly with in the decomposed relations.

3. Minimization of Redundancy:

  • Reduces the quantity of duplicity of data within the database.
  • Helps in saving storage and improve the speed of data transfer.
  • Reduces the chances of update anomalies (insertion, deletion, and modification).

4. Improved Query Performance:

  • By dividing large relation into smaller, more focused relations and queries are easy to optimize to run more efficiently.
  • Smaller tables mean a smaller number of rows to scan while querying, which can result in faster execution time.


If a relation R (A, B, C) with functional dependencies A-B and B-C.

A good decomposition is

R1 (A, B) with A-B

R2 (B, C) with B-C

This decomposition is lossless and dependency-preserving because joining R1 and R2 on attribute B will reconstruct the original relation R, and all functional dependencies are preserved.

Bad Decomposition

Bad decomposition is the opposite of Good Composition, it fails to meet one or more of the properties mentioned above and can cause several potential issues:

1. Loss Decomposition:

  • Information is lost when decomposed relations are joined back with each other.
  • The original relation can't be reconstructed with full accuracy, which lead to data loss.
  • This violates the principle of lossless-join decomposition which is the property of Good Decomposition.

2. Loss of Functional Dependencies:

  • Functional dependencies are not prevented in the decomposed relations.
  • Causes difficulties in enforcing data integrity and constraints.
  • Made anomalies and inconsistencies in the database.

3. Introduction of Redundancy:

  • In place of reducing redundancy, poor decomposition can make new redundancies.
  • Increases the storage requirements and reduce the performance.
  • Higher chances of anomalies (such as insertion, deletion, and modification anomalies).

4. Degraded Query Performance:

  • Improperly decomposed relations can make queries complex and inefficient.
  • Requirement of frequently join multiple tables can increase the execution time of query.
  • Require costly hardware and reduced general performance of the system.


If a relation, R (A, B, C) with functional dependencies A-B and B-C.

A bad decomposition is:

• R1(A,C)

• R2(A,C)

This decomposition will loss full because joining R1 and R2 on attribute A does not guarantee the original relation R because there is no direct connection between B and C through A. It also fails to prevent the functional dependency B-C.


Good decomposition in Database Management System (DBMS) is very important for achieving an efficient, consistent, and reliable database design which is fast too. It makes sure that the joins are lossless, functional dependencies is preserved, reduces redundancy, and optimizes the performance of query.

Oppositely, Bad Decomposition can cause data loss, integrity issues, increases redundancy, and poor and slow query performance, undermining the benefits of a well-structured database. That's why meaningful analysis and application of principles of decomposition are very important in database design.

Vocalteacherstudenthigh schooldegreecollege

About the Creator

Pushpendra Sharma

I am currently working as Digital Marketing Executive in Tutorials and Examples.

Reader insights

Be the first to share your insights about this piece.

How does it work?

Add your insights


There are no comments for this story

Be the first to respond and start the conversation.

Sign in to comment

    Find us on social media

    Miscellaneous links

    • Explore
    • Contact
    • Privacy Policy
    • Terms of Use
    • Support

    © 2024 Creatd, Inc. All Rights Reserved.