Normalization Theory

Lossless-Join Decomposition

I think this stuff is actually super useful in databases to prevent redundancy. But it’s actually a little hard to wrap my head around.

Dependency-preserving means that no info into the FD is lost when you split. An example which is not dependency preserving:

When you merge back, you should get the original info

I have no idea wtf is going on, but I basically when you do the lossless-join decomposition, you need to check that the intersection of these two relations form a key.

Lossless-Join Decomposition

A decomposition of is a lossless-join decomposition if, for any instance of , the natural join of and has no spurious tuples.

Theorem

A decomposition of is a lossless-join decomposition if and only if the common attributes of and form a superkey for either schema, that is, either or is a logical consequence of the integrity constraints.