Let R (A, B, C, D) be a relational schema with the following functional dependencies:

A → B, B → C, C → D and D → B. The decomposition of R into (A, B), (B, C), (B, D)

**(A)** gives a lossless join, and is dependency preserving**(B)** gives a lossless join, but is not dependency preserving**(C)** does not give a lossless join, but is dependency preserving**(D)** does not give a lossless join and is not dependency preserving**Answer:** **(A)****Explanation:** **Background :**

**Lossless-Join Decomposition:**

Decomposition of R into R1 and R2 is a lossless-join decomposition if at least one of the following functional dependencies are in F+ (Closure of functional dependencies)R1 ∩ R2 → R1 OR R1 ∩ R2 → R2

**Dependency Preserving Decomposition:**

Decomposition of R into R1 and R2 is a dependency preserving decomposition if closure of functional dependencies after decomposition is same as closure of of FDs before decomposition.

A simple way is to just check whether we can derive all the original FDs from the FDs present after decomposition.

**Question :**

Let R (A, B, C, D) be a relational schema with the following functional dependencies:

A -> B, B -> C, C -> D and D -> B. The decomposition of R into (A, B), (B, C), (B, D)

Note that A, B, C and D are all key attributes. We can derive all attributes from every attribute.

Since Intersection of all relations is B and B derives all other attributes, relation is **lossless**.

The relation is **dependency preserving** as well as all functional dependencies are preserved directly or indirectly. Note that C -> D is also preserved with following two C -> B and B -> D.