- Can you even see the join? The select?
- How would join order be reversed?
- How would the select be pushed below the join?
With relational algebra:
- High-level intent is clearer. join(select(R, x = 123), S) replaces a pile
of low-level code.
- Mathematical properties of the operators allow for
transformations that underlie query optimizaiton.