ScholarGate
Assistant

Schema Refinement and Decomposition

Schema refinement is the process of decomposing a relation into smaller relations to reach a desired normal form, subject to the requirements that the decomposition be lossless and, ideally, preserve the original dependencies.

Definition

Decomposition replaces a relation schema R with a set of schemas whose attributes together cover R, such that the original relation can be recovered by joining the parts (lossless join) and, when possible, every original functional dependency can be enforced on the parts (dependency preservation).

Scope

This topic covers the algorithms and criteria for decomposing relational schemas: the lossless-join property and how it is tested, dependency preservation and its tension with higher normal forms, and the standard synthesis and decomposition algorithms that produce a 3NF (dependency-preserving and lossless) or BCNF (lossless) design from a set of functional dependencies. It excludes the definitions of the normal forms themselves and of the dependencies that drive decomposition.

Core questions

  • What makes a decomposition lossless, and how is the property tested?
  • What does it mean for a decomposition to preserve dependencies?
  • Why can BCNF decomposition fail to preserve dependencies while 3NF synthesis does not?
  • How do the standard BCNF decomposition and 3NF synthesis algorithms work?
  • How is the choice between BCNF and 3NF made in practice?

Key concepts

  • decomposition of a schema
  • lossless-join property
  • dependency preservation
  • spurious tuples
  • BCNF decomposition algorithm
  • 3NF synthesis algorithm
  • minimal cover
  • trade-off between BCNF and 3NF

Key theories

Lossless-join decomposition
A binary decomposition is lossless if the common attributes of the two parts form a key of at least one of them; losslessness guarantees that joining the parts reconstructs exactly the original relation with no spurious tuples.
Dependency preservation
A decomposition preserves dependencies if the union of the dependencies enforceable on the individual parts implies all original dependencies, so consistency can be checked without recomputing joins.
BCNF decomposition versus 3NF synthesis
The BCNF decomposition algorithm guarantees losslessness but may sacrifice dependency preservation, whereas the 3NF synthesis algorithm from a minimal cover guarantees both a lossless join and dependency preservation at the cost of possibly stopping at 3NF.

Clinical relevance

Decomposition algorithms are how normalization theory becomes an actionable design procedure: applying them yields schemas that avoid redundancy yet can still be reconstructed and validated efficiently, which directly affects the correctness and maintainability of production databases.

History

The theory of lossless-join and dependency-preserving decomposition was developed through the 1970s as researchers formalized when splitting a relation is safe. Synthesis algorithms producing dependency-preserving 3NF designs, and the recognition that BCNF can conflict with dependency preservation, became standard material in database texts and remain central to schema design.

Key figures

  • Edgar F. Codd
  • Jeffrey D. Ullman
  • Philip Bernstein

Related topics

Seminal works

  • silberschatz2019
  • ramakrishnan2003
  • garciamolina2008

Frequently asked questions

What is a spurious tuple and why does it matter?
A spurious tuple is a row that appears when you join the parts of a badly chosen decomposition but does not correspond to any real tuple of the original relation. A lossless-join decomposition is precisely one that produces no spurious tuples, which is why losslessness is a non-negotiable requirement.
Why might I choose 3NF over BCNF?
Decomposing into BCNF always preserves the lossless-join property but can break dependency preservation, meaning some constraints could only be checked by joining tables. The 3NF synthesis algorithm guarantees both losslessness and dependency preservation, so designers accept 3NF when a dependency-preserving BCNF design does not exist.

Methods for this concept

Related concepts