Back to Lossless Join
¡ñ If we project R onto R1,R2,…,Rk can we recover R by rejoining?
¡ñ We will get all of R.
¡ð Any tuple in R can be recovered from its
projected fragments. This is guaranteed. ¡ñ But will we get only R?
¡ð Can we get a tuple we didn¡¯t have in R? This part we must check.
Aside: when we don¡¯t need to test for lossless Join
¡ñ Both BCNF decomposition and 3NF synthesis guarantee lossless join.
¡ñ So we don¡¯t need to test for lossless join if the schema was generated via BCNF decomposition or 3NF synthesis.
¡ñ But merely satisfying BCNF or 3NF does not guarantee a lossless join!
The Chase Test
¡ñ Suppose tuple t appears in the join.
¡ñ Then t is the join of projections of some tuples of
R, one for each Ri of the decomposition.
¡ñ Can we use the given FD¡¯s to show that one of
these tuples must be t ?
Chase Test example and worksheet