• Relational Algebra operators take sets as input and yield sets as output.

  • A naive implementation reads the input set, operates on it, and produces the output set.

  • This is what you did in Assignment 2 (relational algebra implementation).