Overview of Existing Terms

The following list of temporal database terms appeared as complete glossary entries in ``Jensen, C. S., J. Clifford, S. K. Gadia, A. Segev, and R. T. Snodgrass: A Glossary of Temporal Database Concepts, ACM SIGMOD Record, Vol. 21, No. 3, September 1992, pp. 35–43.

bitemporal relation
A bitemporal relation is a relation with exactly one system supported valid time and exactly one system-supported transaction time.

chronon
A chronon is the shortest duration of time supported by a temporal DBMS—it is a nondecomposable unit of time. A particular chronon is a subinterval of fixed duration on time-line.

Various models of time have been proposed in the philosophical and logical literature of time (e.g., van Benthem). These view time, among other things, as discrete, dense, or continuous. Intuitively, discrete models of time are isomorphic to the natural numbers, i.e., there is the notion that every moment of time has a unique successor. Dense models of time are isomorphic to (either) the real or rational numbers: between any two moments of time there is always another. Continuous models of time are isomorphic to the real numbers, i.e., both dense and also, unlike the rational numbers, with no ``gaps.''

event
An event is an isolated instant in time. An event is said to occur at time t if it occurs at any time during the chronon represented by t.

interval
An interval is the time between two events. It may be represented by a set of contiguous chronons.

lifespan
The lifespan of a database object is the time over which it is defined. The valid-time lifespan of a database object refers to the time when the corresponding object exists in the modeled reality, whereas the transaction-time lifespan refers to the time when the database object is current in the database.

If the object (attribute, tuple, relation) has an associated timestamp then the lifespan of that object is the value of the timestamp. If components of an object are timestamped, then the lifespan of the object is determined by the particular data model being employed.

snapshot relation
Relations of a conventional relational database system incorporating neither valid-time nor transaction-time timestamps are snapshot relations.

snapshot, valid- and transaction-time, and bitemporal as modifiers
The definitions of how ``snapshot,'' ``valid-time,'' ``transaction-time,'' and ``bitemporal'' apply to relations provide the basis for applying these modifiers to a range of other concepts. Let x be one of snapshot, valid-time, transaction-time, and bitemporal. Twenty derived concepts are defined as follows (+E1).

relational database
An x relational database contains one or more x relations.
relational algebra
An x relational algebra has relations of type x as basic objects.
relational query language
An x relational query language manipulates any possible x relation. Had we used ``some'' instead of ``any'' in this definition, the defined concept would be very imprecise (-E9).
data model
An x data model has an x query language and supports the specification of constraints on any x relation.
DBMS
An x DBMS supports an x data model.

The two model-independent terms, data model and DBMS, may be replaced by more specific terms. For example, ``data model'' may be replaced by ``relational data model'' in ``bitemporal data model.''

span
A span is a directed duration of time. A duration is an amount of time with known length, but no specific starting or ending chronons. For example, the duration ``one week'' is known to have a length of seven days, but can refer to any block of seven consecutive days. A span is either positive, denoting forward motion of time, or negative, denoting backwards motion in time.

temporal as modifier
The modifier temporal is used to indicate that the modified concept concerns some aspect of time.

temporal database
A temporal database supports some aspect of time, not counting user-defined time.

temporal element
A temporal element is a finite union of n-dimensional time boxes. Temporal elements are closed under the set theoretic operations of union, intersection and complementation.

Temporal elements may be used as timestamps. Special cases of temporal elements occur as timestamps in valid-time relations, transaction-time relations, and bitemporal relations. These special cases are termed valid-time elements, transaction time elements, and bitemporal elements. They are defined as finite unions of valid-time intervals, transaction-time intervals, and bitemporal rectangles, respectively.

temporal expression
A temporal expression is a syntactic construct used in a query that evaluates to a temporal value, i.e., an event, an interval, a span, or a temporal element.

In snapshot databases, expressions evaluate to relations and therefore they may be called relational expressions to differentiate them from temporal expressions. All approaches to temporal databases allow relational expressions. Some only allow relational expressions, and thus they are unisorted. Some allow relational expressions, temporal expressions and also possibly boolean expressions. Such expressions may defined through mutual recursion.

temporally homogeneous
A temporal tuple is temporally homogeneous if the lifespan of all attribute values within it are identical. A temporal relation is said to be temporally homogeneous if its tuples are temporally homogeneous. A temporal database is said to be temporally homogeneous if all its relations are temporally homogeneous. In addition to being specific to a type of object (tuple, relation, database), homogeneity is also specific to some time dimension, as in ``temporally homogeneous in the valid-time dimension'' or ``temporally homogeneous in the transaction-time dimension.''

The motivation for homogeneity arises from the fact that no timeslices of a homogeneous relation produce null values. Therefore a homogeneous relational model is the temporal counterpart of the snapshot relational model without nulls. Certain data models assume temporal homogeneity. Models that employ tuple timestamping rather than attribute value timestamping are necessarily temporally homogeneous—only temporally homogeneous relations are possible.

time-invariant attribute
A time-invariant attribute is an attribute whose value is constrained to not change over time. In functional terms, it is a constant-valued function over time.

timestamp
A timestamp is a time value associated with some time-stamped object, e.g., an attribute value or a tuple. The concept may be specialized to valid timestamp, transaction timestamp, interval timestamp, event timestamp, bitemporal element timestamp, etc.

transaction time
A database fact is stored in a database at some point in time, and after it is stored, it may be retrieved. The transaction time of a database fact is the time when the fact is stored in the database. Transaction times are consistent with the serialization order of the transactions. Transaction time values cannot be after the current time. Also, as it is impossible to change the past, transaction times cannot be changed. Transaction times may be implemented using transaction commit times.

transaction-time relation
A transaction-time relation is a relation with exactly one system supported transaction time. As for valid-time relations, there are no restrictions as to how transaction times may be associated with the tuples.

transaction timeslice operator
The transaction timeslice operator may be applied to any relation with a transaction time. It also takes as argument a time value not exceeding the current time, NOW. It returns the state of the argument relation that was current at the time specified by the time argument.

user-defined time
User-defined time is an uninterpreted attribute domain of date and time. User-defined time is parallel to domains such as ``money'' and integer—unlike transaction time and valid time, it has no special query language support. It may be used for attributes such as ``birth day'' and ``hiring date.''

Conventional database management systems generally support a time and/or date attribute domain. The SQL2 standard has explicit support for user-defined time in its datetime and interval types.

valid time
The valid time of a fact is the time when the fact is true in the modeled reality. A fact may have associated any number of events and intervals, with single events and intervals being important special cases.

valid-time relation
A valid-time relation is a relation with exactly one system supported valid time. In agreement with the definition of valid time, there are no restrictions on how valid times may be associated with the tuples (e.g., attribute value time stamping may be employed).

valid timeslice operator
The valid timeslice operator may be applied to any relation with a valid time. It takes as argument a time value. It returns the state of the argument relation that was valid at the time of the time argument.