TOPICS (Click to Navigate)

Friday, November 28, 2025

What is dependency preserving decomposition - Explanation with example

Database Concepts • Normalization

What is Dependency Preserving Decomposition? Why is it important?

Dependency Preserving Decomposition

A decomposition of a relation R into smaller relations R₁, R₂, ..., Rₙ is said to be dependency preserving if all functional dependencies of R can still be enforced without performing a join.

Formal Definition

Let R be decomposed into R₁, R₂, ..., Rₙ.
If the functional dependencies F of R can be inferred from the union of FDs preserved in each decomposition:

(F₁ ∪ F₂ ∪ ... ∪ Fₙ)+ = F+

then the decomposition is dependency preserving.

Why is it important?

  • We want to maintain constraints (FDs) directly on decomposed tables.
  • If dependencies are not preserved, we must join tables to check or enforce them → costly and inefficient.

Example — Dependency Preserving

Given:

R(A, B, C)
FDs: A → B, B → C

Decompose into:

R1(A, B)
R2(B, C)

Each functional dependency remains inside one of the decomposed relations:

  • In R1: A → B
  • In R2: B → C

To verify the functional dependencies, no need to join decomposed relations — dependency preserving.

Example — Not Dependency Preserving

Given:

R(A, B, C)
FDs: A → BC

Decomposition:

R1(A, B)
R2(A, C)

Here each FD is split and cannot be enforced directly from any single relation.

To verify A → BC, we must join:

R1 ⋈ R2

Therefore not dependency preserving.

No comments:

Post a Comment