Temporal Databases: Theory, Design, and Implementation