59.1k views
0 votes
Consider the relation schema R = (A, B, C, D, E) and the set F of functional dependencies:

A →, BC

CD →, E

B →, D

E → A

(a) Suppose schema R is decomposed into R1 = (A, B, C) and R2 = (A, D, E). Is this decomposition a lossless-join decomposition? Why? Is this decomposition a dependency preserving decomposition? Why?

User Ioums
by
7.4k points

1 Answer

2 votes

Yes, the decomposition of R into R1 and R2 is both lossless-join and dependency-preserving.

Here is my analysis on the given relation schema.

a) Consider the relation schema R = (A, B, C, D, E) and the set F of functional dependencies:

A → BC

CD → E

B → D

E → A

Suppose schema R is decomposed into R1 = (A, B, C) and R2 = (A, D, E).

Lossless-join decomposition:

A decomposition is lossless-join if we can reconstruct the original relation R from the decomposed relations R1 and R2. In this case, we can reconstruct R from R1 and R2 using the following steps:

1. Join R1 and R2 on attribute A. This will give us a relation with attributes (A, B, C, D, E).

2. Project the resulting relation on attributes (A, B, C, D, E). This will give us the original relation R.

Therefore, the decomposition of R into R1 and R2 is lossless-join.

Dependency-preserving decomposition:

A decomposition is dependency-preserving if every functional dependency in the original schema R is also satisfied in at least one of the decomposed relations R1 and R2. In this case, all of the functional dependencies in F are satisfied in R1. Therefore, the decomposition of R into R1 and R2 is dependency-preserving.

Yes, the decomposition of R into R1 and R2 is both lossless-join and dependency-preserving.

User Zeitnot
by
8.5k points