|< < 36 > >|

BCNF Decomposition — Details

Decompose a relation

decompose(R: relation, X: set of columns): (relation, relation) C = closure(X) S = new relation from columns in C T = new relation from columns in (R.columns − (C − X)) return S, T
  • (C − X) is the RHS of the FD on which the decomposition is based.
  • (R.columns − (C − X)) includes the LHS, and excludes the RHS.

Example

Decompose BadAlbum(artist, artist_website, title, year, label, label_website) using {artist}.

  • C = {artist, artist_website}
  • new relation S(artist, artist_website)
  • new relation T(artist, title, year, label, label_website)

|< < 36 > >|