If a relational decomposition is not dependency-preserving, which one of the following relational operators will be executed more frequently in order to maintain the dependencies?
Answer
(C)
Explanation
A functional dependency is cheap to enforce when all its attributes sit in one relation of the decomposition: each insert or update is checked against that relation alone. In a decomposition that is not dependency-preserving, some dependency \(X \to Y\) cannot be derived from the dependencies holding within the individual relations, because its attributes are spread over several of them. To check it after every change, those relations must first be joined to bring \(X\) and \(Y\) back together, so joins are executed far more often. Selection, projection and set union cannot reunite attributes stored in different relations.
Answer: C