Decompositions

10
Decompositions Given a relation schema R that is not in 3NF (or perhaps BCNF) decomposition can be used to help fix this problem Decomposition replaces R with R1,...,RN where 1) attributes of Ri are a subset of the attributes of R 2) each attribute of R is in at least one Ri Binary decomposition: R R1,R2

description

Decompositions. Given a relation schema R that is not in 3NF (or perhaps BCNF) decomposition can be used to help fix this problem Decomposition replaces R with R1,...,RN where 1) attributes of Ri are a subset of the attributes of R 2) each attribute of R is in at least one Ri - PowerPoint PPT Presentation

Transcript of Decompositions

Page 1: Decompositions

Decompositions

• Given a relation schema R that is not in 3NF (or perhaps BCNF) decomposition can be used to help fix this problem

• Decomposition replaces R with R1,...,RN where – 1) attributes of Ri are a subset of the attributes of R– 2) each attribute of R is in at least one Ri

• Binary decomposition: R R1,R2•

Page 2: Decompositions

Example Decomposition

• Hourly_Emps relation with attributes– (Ssn, name, rating, hourly wage, hours worked)

• FD: rating hourly wage

• Hourly_Emps is not in 3NF (why?)• Decompose Hourly_Emps into

– R1: (ssn, name, rating)– R2: (rating, hourly wage)

• Key question: can we recover any legal row in Hourly_Emps from rows in R1 and R2?

Projections of Hourly_Emps

Page 3: Decompositions

Desirable Properties of Decompositions

• Lossless-Join– A decomposition R R1,R2 has the lossless join

property if R can be exactly reconstructed from NATURAL_JOIN(R1,R2)

• Dependency Preserving – A decomposition R R1,R2 is dependency

preserving if we can enforce all FDs on R by examining either only R1 or R2 whenever a row is inserted or modified

• LJ property is essential, DP is nice• 3NF normalization w/ LJ & DP always possible• DP BCNF normalization may not be possible

Page 4: Decompositions

Example 1 of Lossy Decomposition

Page 5: Decompositions

Example 2 of Lossy Decomposition

• Hourly_Emps relation with attributes– (Ssn, name, rating, hourly wage, hours worked)

• FD: rating hourly wage

• Decompose Hourly_Emps into – R1: (ssn, rating)– R2: (rating, name, hourly wage)

• Why?

Page 6: Decompositions

A test for lossless decomposition

• The binary decomposition R with functional dependencies F into R1, R2 is lossless if and only if F contains either:– R1 ∩ R2 R1 or– R1 ∩ R2 R2

• That is, attrs common to R1 and R2 must be key of either R1 or R2.• Consequence 1:

If FD X Y holds over R and X ∩ Y is emptythendecomposition of R into (R-Y) and XY is lossless.

• Consequence 2: If R R1, R2 AND R1 R1a, R1b are both lossless then R R1a,R1b,R2 is lossless.

Page 7: Decompositions

Normalization by Decomposition into BCNF

• If R is not in BCNF, it is possible to obtain a lossless join decomposition into a collection of BCNF relation schmas

• However, there may not by any dependency preserving decompositions into BCNF relations

Page 8: Decompositions

Normalization by Decomposition into BCNF

• Suppose that R is not in BCNF and XA be a FD that violates BCNF

1) Decompose R into R-A and XA

2) If either R-A or XA is not in BCNF, decompose further by recursive application

• In general there may be alternate ways to normalize to BCNF. The theory does not help discriminate among these.

Page 9: Decompositions

What about normalizing to 3NF

• An dependency preserving algorithm for normalizing to 3NF exists

• Extension of BCNF normalization approach• See section 11.2.3

Page 10: Decompositions

Summary of Database Design Theory

• Constructing relation schemas is called DB design

• Poor design can lead to insert, update and delete anomalies because of redundancy

• Good design reduces redundancy by normalizing all relations to 3NF or BCNF

• The theory of functional dependencies plays a major role in DB design