|< < 17 > >|

Functional Dependencies

Not every table has a lossless decomposition

E.g., the XYZ table could not be decomposed in this way.

Where "could not be decomposed" means: there is no lossless join decomposition.
XY = project(XYZ[X, Y]) XZ = project(XYZ[X, Z]) XYZ ⊂ join(XY, XZ)

Why?

Functional Dependencies
  • BadAlbum has the functional dependency artist → artist_website

  • LessBadAlbum has the functional dependency label → label_website

  • XYZ has no functional dependencies that lead to a non-trivial lossless join decomposition

|< < 17 > >|