In a period-timestamped, relational temporal database, each tuple is timestamped with a period. The timestamp records when the tuple is “alive” in some temporal dimension. Sequenced semantics is a special semantics for evaluating a query in a temporal database. The semantics stipulates that the query must, in effect, be evaluated simultaneously in each time instant using the tuples alive at that instant. Previous research has proposed changes to a database management system's query evaluation engine to support sequenced semantics. We show how to achieve sequenced semantics without modifying a query evaluation engine. Our technique has two pillars. First we use log-segmented timestamps to record a tuple's lifetime. A log-segmented timestamp divides the time-line into segments of known length. Any temporal period can be represented by a small number of such segments. Second, by taking advantage of the properties of log-segmented timestamps, we translate a sequenced query to a non-temporal query, using the operations already present in an unmodified, non-temporal query evaluation engine. The paper provides translations for both relational algebra and SQL. We experimentally evaluate the SQL translation. The primary contribution of this paper is how to implement sequenced semantics using log-segmented timestamped tuples in a generic SQL DBMS.
Read full abstract