Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lossless Decomposition Elias Aseged SE 157B - DB 2.

Similar presentations


Presentation on theme: "Lossless Decomposition Elias Aseged SE 157B - DB 2."— Presentation transcript:

1 Lossless Decomposition Elias Aseged SE 157B - DB 2

2 What is Decomposition? Decomposition – the process of breaking down in parts or elements. Decomposition in database means breaking tables down into multiple tables From Database perspective means going to a higher normal form

3 Decomposition Important that decompositions are “good”, Two Characteristics of Good Decompositions 1) Lossless 2) Preserve dependencies

4 What is lossless? Lossless means functioning without a loss. In other words, retain everything. Important for databases to have this feature.

5 Formal Definition Let R be a relation schema. Let F be a set of functional dependencies on R. Let and form a decomposition of R. The decomposition is a lossless-join decomposition of R if at least one of the following functional dependencies are in F + 1) R1 ∩ R2  R1 2) R1 ∩ R2  R2

6 In Simpler Terms… R1 ∩ R2  R1 R1 ∩ R2  R2 If R is split into R1 and R2, for the decomposition to be lossless then at least one of the two should hold true. Projecting on R1 and R2, and joining back, results in the relation you started with

7 Why lossless? Ensures that attributes involved in the natural join (R1 ∩ R2) are a candidate key for at least one of the two relations. This ensures we can never get the situation where false tuples are generated, as for any value on the join attributes there will be a unique tuple in one of the relations.

8 A decomposition is lossless if we can recover: R(A,B,C) R1(A,B) R2(A,C) R’(A,B,C) should be the same as R(A,B,C) Must ensure R’ = R Decompose Recover Lossless Decomposition

9 Sometimes the same set of data is reproduced: (Word, 100) + (Word, WP)  (Word, 100, WP) (Oracle, 1000) + (Oracle, DB)  (Oracle, 1000, DB) (Access, 100) + (Access, DB)  (Access, 100, DB) NamePriceCategory Word100WP Oracle1000DB Access100DB NamePrice Word100 Oracle1000 Access100 NameCategory WordWP OracleDB AccessDB

10 Lossy Decomposition Sometimes it’s not: (Word, WP) + (100, WP) = (Word, 100, WP) (Oracle, DB) + (1000, DB) = (Oracle, 1000, DB) (Oracle, DB) + (100, DB) = (Oracle, 100, DB) (Access, DB) + (1000, DB) = (Access, 1000, DB) (Access, DB) + (100, DB) = (Access, 100, DB) NamePriceCategory Word100WP Oracle1000DB Access100DB CategoryName WPWord DBOracle DBAccess CategoryPrice WP100 DB1000 DB100 What’s wrong?

11 Ensuring lossless decomposition R(A 1,..., A n, B 1,..., B m, C 1,..., C p ) If A 1,..., A n  B 1,..., B m or A 1,..., A n  C 1,..., C p Then the decomposition is lossless R 1 (A 1,..., A n, B 1,..., B m ) R 2 (A 1,..., A n, C 1,..., C p ) Note: don’t need both

12 Identifying a Loss Decomposition Make a table for sub schemas of R Fill in table with distinguished variables (corresponding to the sub schemas) – If one row is full of distinguished variables, it’s lossless – If no one row is full, add distinguished variables To add distinguished variables 1)2 or more rows with distinguished variables on LHS 2)1 or more rows with distinguished variables on RHS 3)1 or more rows with non-distinguished variables on RHS

13 Example 1 (From Class) R(A B C D E) FD1 = (A  B) FD2 = (BC  E) FD3 = (ED  A) R 1 =(AB); R 2 =(ACDE);

14 Answer aa aaaAa A B C D E R1 R2 *This decomposition is lossless

15 Example 2 Is this decomposition lossless? R (A B C D E) FD1 – AB  C FD2 – C  E FD3 – B  D FD4 – E  A R 1 =(BCD); R 2 =(ACE);

16 Answer If you do this procedure and you don’t have one row full of distinguished variables, then the decomposition is lossy. a aaa a aaa A B C D E R1 R2 *This decomposition is lossless

17 R(A B C D E) FD1: A  BC FD2: BD  CE FD3: E  AD FD4: CE  A R1(ABC) = R2 (BCDE) =

18 Conclusion Decomposing is the act of breaking tables down in order to achieve higher normal form. Decompositions should always be lossless. This confirms that information in the original relation can be accurately reconstructed based on the decomposed relations. Remember that for a decomposition to be considered “GOOD” it must also preserve functional dependencies.

19 Questions?

20 References http://infolab.stanford.edu/~ullman/fcdb/spr 99/lec14.pdf http://infolab.stanford.edu/~ullman/fcdb/spr 99/lec14.pdf http://www.cs.sfu.ca/CC/354/zaiane/material /notes/Chapter7/node7.html http://www.cs.sfu.ca/CC/354/zaiane/material /notes/Chapter7/node7.html http://www.cs.sjsu.edu/~lee/cs157b/29SpCS1 57BL14HuffmanCode&LosslessDecomposition.ppt http://www.cs.sjsu.edu/~lee/cs157b/29SpCS1 57BL14HuffmanCode&LosslessDecomposition.ppt


Download ppt "Lossless Decomposition Elias Aseged SE 157B - DB 2."

Similar presentations


Ads by Google