• Home
  • What is decomposition in Normalisation?

What is decomposition in Normalisation?

Decomposition is the process of breaking down a complex database into smaller, simpler components. It is a key concept in normalization, which is the process of designing a database to reduce redundancy and eliminate anomalies.

In normalization, decomposition is used to break down a complex database into smaller, simpler tables that are easier to maintain and modify. This helps to eliminate redundancy and improve the integrity of the data in the database.

There are several types of decomposition that can be used in normalization, including:

  1. Horizontal decomposition: Horizontal decomposition is the process of breaking down a table into smaller tables that have a subset of the attributes in the original table. This is also known as “row splitting” because it involves splitting rows of the original table into separate tables.
  2. Vertical decomposition: Vertical decomposition is the process of breaking down a table into smaller tables that have a subset of the attributes in the original table. This is also known as “column splitting” because it involves splitting columns of the original table into separate tables.
  3. Dependency preserving decomposition: Dependency preserving decomposition is the process of breaking down a table into smaller tables that preserve the functional dependencies between attributes. This is used to ensure that the data in the decomposed tables is still dependent on the primary key and can be used to enforce the integrity of the data.
  4. Lossless join decomposition: Lossless join decomposition is the process of breaking down a table into smaller tables that can be joined together to recreate the original table without losing any data. This is used to ensure that the data in the decomposed tables is not lost during the decomposition process.

To decompose a database, you can follow these steps:

  1. Identify the attributes in the database: The first step in decomposition is to identify all the attributes in the database. This includes the primary key, determinant, and dependent attributes.
  2. Determine the functional dependencies: The next step is to determine the functional dependencies that exist between the attributes in the database. A functional dependency is a relationship between two attributes in a database where the value of one attribute (the determinant) determines the value of another attribute (the dependent).
  3. Choose the type of decomposition: The next step is to choose the type of decomposition that will be used to break down the database. There are several types of decomposition that can be used, including horizontal, vertical, dependency preserving, and lossless join decomposition.
  4. Decompose the database: Once you have identified the attributes in the database and determined the functional dependencies, you can use the chosen type of decomposition to break down the database into smaller, simpler components. This may involve creating new tables, adding foreign keys, or modifying the attributes in the original table.

For example, consider a database with the following attributes:

  • Employee ID (primary key)
  • Employee name (determinant)
  • Employee salary (dependent)
  • Employee department (dependent)