The GATE Grind

GATE 2024 DA – Question 26

Database Management and Warehousing · Relational algebra, tuple calculus and SQL · 1 mark · Multiple choice

Consider a database that includes the following relations:
Defender(name, rating, side, goals)
Forward(name, rating, assists, goals)
Team(name, club, price)

Which ONE of the following relational algebra expressions checks that every name occurring in Team appears in either Defender or Forward, where $\phi$ denotes the empty set?

  1. $\Pi_{name}(Team) \setminus (\Pi_{name}(Defender) \cap \Pi_{name}(Forward)) = \phi$
  2. $(\Pi_{name}(Defender) \cap \Pi_{name}(Forward)) \setminus \Pi_{name}(Team) = \phi$
  3. $\Pi_{name}(Team) \setminus (\Pi_{name}(Defender) \cup \Pi_{name}(Forward)) = \phi$
  4. $(\Pi_{name}(Defender) \cup \Pi_{name}(Forward)) \setminus \Pi_{name}(Team) = \phi$

Practise this question in The GATE Grind →

Show answer and explanation

Correct answer: (C) $\Pi_{name}(Team) \setminus (\Pi_{name}(Defender) \cup \Pi_{name}(Forward)) = \phi$

Explanation

Every name in Team must be in Defender or in Forward, which is a union. The set of Team names that are not in this union must be empty: $\Pi_{name}(Team) \setminus (\Pi_{name}(Defender) \cup \Pi_{name}(Forward)) = \phi$. Option A uses an intersection, and B and D take the difference the wrong way round.