Decomposition
Decomposition
Decomposition
Decompose a relation schema that has many
attributes into several schemas with fewer
attributes
Let R be a relation schema
A set of relation schemas { R1, R2,…, Rn } is a
decomposition of R if
R = R1 U R2 U …..U Rn
each Ri is a subset of R ( for i = 1,2…,n)
But careless decomposition may lead to bad
form of a design
For relation R(x,y,z) there can be 2 subsets:
R1(x,z) and R2(y,z)
E If we union R1 and R2, we get R
X
A
R = R1 U R2
M
P Decomposition
L
E
R1 R2
Model Name Category Price Category
Thus,R’ = R
Model Name Price Category
a11 100 Canon
E R s20 200 Nikon
X
a70 150 Canon
A
M
P
R1 R2
L
E Model Name Price Model Name Category
R1 = (A, B, C) R2 = (A, D, E)
E The set of functional dependencies:
X A → BC, CD → E, B → D, E → A
A 1. R1 ∩ R2 = A;
M
P 2. Compute A+
(A → BC)
L (A → ABC)
E A ABCD
(A → ABCDE)
E R1 = (A, B, C) R2 = (A, D, E)
The set of functional dependencies is:
X
A → BC, E → A
A
M 1. R1 ∩ R2 = A;
P
2. Compute A+
L
(A → BC)
E (A → ABC)
FD1: AB
FD2: BC
FD3: CD
Decomposition:
R1(A B C) R2(C D)
FD1: AB
FD2: BC
FD3: CD
R 1( A B C )
FD1
FD2
FD1: AB
FD2: BC
FD3: CD
R2( C D )
FD3
FD1: A B
FD2: BC
FD3: CD
R1( A B C ) R2( C D )
FD1 FD3
FD2
FD1: AB
FD2: BC
FD3: CD
Decomposition:
R1(A C D) R2(B C)
FD1: AB
FD2: BC
FD3: CD
R1( A C D )
FD3
FD1: AB
FD2: BC
FD3: CD
R2( B C )
FD2
FD1: A B
FD2: BC
FD3: CD
R1( A C D ) R2( B C )
FD3 FD2
FD1: AB
FD2: BC D
Decomposition:
R1(A C E) R2(B C D)
R3(A B)
FD1: AB
FD2: BC D
R1( A C E )
No Dependencies
FD1: AB
FD2: BC D
R2( B C D )
FD2
FD1: AB
FD2: BC D
R 3( A B )
FD1
FD1: AB
FD2: BC D
R1( A C E )R2( B C D )
FD2
R3( A B )
FD1