Managing Time in Relational Databases: How to Design, Update and Query Temporal Data