Databases, Types and the Relational Model (3rd Edition)