At the basis of relational data bases is the relational algebra, an algebra on sets of tuples (“relations”) defining six operators:

- unary
– select tuples matching to some condition*select* - unary
– make a set of sub-tuples of all tuples (i.e., have less columns)*project* - unary
– change the name of a relation (this is a rather technical operation)*rename* - binary
– the usual cartesian product, except that the tuples are concatenated rather than just put into a pair; this, of course, is not usually actually computed but rather used as a formal step.*cartesian product* - binary
– simple union of sets. This is only defined for “compatible” relations; the technical points don’t matter here*union* - binary
as for union; you could have used intersection and complementing as well, but complementing is harder to specify in the context of relational algebra*set difference*

**Good News:** You don’t * need* to know any of this. But it’s reassuring to know that there’s a solid theory behind all of
this.