GATE CS 2024 Set 1 | Question 44

MSQ · 2 marks

The symbol \(\to\) indicates functional dependency in the context of a relational database. Which of the following options is/are TRUE?

  1. Option A: \((X, Y) \to (Z, W)\) implies \(X \to (Z, W)\)
  2. Option B: \((X, Y) \to (Z, W)\) implies \((X, Y) \to Z\) (correct)
  3. Option C: \(\big((X, Y) \to Z \text{ and } W \to Y\big)\) implies \((X, W) \to Z\) (correct)
  4. Option D: \((X \to Y \text{ and } Y \to Z)\) implies \(X \to Z\) (correct)

Answer

(B), (C), (D)

Explanation

  • A is false. The left side of a dependency cannot just be shrunk. In a relation with the tuples \((X, Y, Z, W) = (0, 0, 0, 0)\) and \((0, 1, 1, 1)\), \((X, Y) \to (Z, W)\) holds because the tuples differ on \((X, Y)\), but \(X \to (Z, W)\) fails.
  • B is true by decomposition: whatever determines \((Z, W)\) also determines \(Z\).
  • C is true (pseudo-transitivity). Augmenting \(W \to Y\) with \(X\) gives \((X, W) \to (X, Y)\), and with \((X, Y) \to Z\) this yields \((X, W) \to Z\).
  • D is true by transitivity, one of Armstrong’s axioms.

Answer: B, C, D