Types for databases: the Galileo experience