LOSSLESS DECOMPOSITION Prof. Sin-Min Lee Department of Computer Science San Jose State University
Definition of Decomposition A decomposition of a relation R is a set of relations { R1, R2,…, Rn } such that each Ri is a subset of R and the union of all of the Ri is R
Example of Decomposition From R( A B C ) we can have two subsets as: R1( A C ) and R2( B C ) if we union R1 and R2 we will get R R = R1 U R2
Definition of Lossless Decompotion A decomposition {R1, R2,…, Rn} of a relation R is called a lossless decomposition for R if the natural join of R1, R2,…, Rn produces exactly the relation R.
Example R( A1, A2, A3, A4, A5 ) R1( A1, A2, A3, A5 ); R2( A1, A3, A4 ); R3( A4, A5 ) are subsets of R. We have FD1: A1 --> A3 A5 FD2: A2 A3 --> A2 FD3: A5 --> A1 A4 FD4: A3 A4 --> A2
A1 A2 A3 A4 A5 a(1) a(2) a(3) b(1,4) a(5) a(1) b(2,2) a(3) a(4) b(2,5) b(3,1) b(3,2) b(3,3) a(4) a(5)
By FD1: A1 --> A3 A5 we have a new result table A1 A2 A3 A4 A5 a(1) a(2) a(3) b(1,4) a(5) a(1) b(2,2) a(3) a(4) a(5) b(3,1) b(3,2) b(3,3) a(4) a(5)
By FD2: A2 A3 --> A4 we don’t have a new result table because we don’t have any equally elements. Therefore, the result doesn’t change.
By FD3: A5 --> A1 A4 we have a new result table A1 A2 A3 A4 A5 a(1) a(2) a(3) a(4) a(5) a(1) b(2,2) a(3) a(4) a(5) b(3,1) b(3,2) b(3,3) a(4) a(5)
By FD4: A3 A4 --> A2 we get a new result table A1 A2 A3 A4 A5 a(1) a(2) a(3) a(4) a(5) b(3,1) b(3,2) b(3,3) a(4) a(5) tuple1 and tuple2 are lossless because they have all a(I)
Summary A decomposition { R1, R2,…, Rn } of a relation R is called a lossless decomposition for R if the natural join of R1, R2,…, Rn produces exactly the relation R NOTE: not every decomposition is lossless. It is possible to produce a decomposition that is lossy, one that losses information.