Relational Database Programming: A Set-Oriented Approach