A temporal database stores data relating to time instances. It offers temporal data types and stores information relating to past, present and future time.
Temporal databases could be uni-temporal, bi-temporal or tri-temporal.
More specifically the temporal aspects usually include
valid time
In temporal databases, valid time (VT) is the time period during which a database fact is valid in the modeled reality. As of December 2011, ISO/IEC 9075, Database Language SQL:2011 Part 2: SQL/Foundation included clauses in table definitions to d ...
,
transaction time
In temporal databases, transaction time (TT) is the time during which a fact stored in the database is considered to be true. As of December 2011, ISO/IEC 9075, Database Language SQL:2011 Part 2: SQL/Foundation included clauses in table definitio ...
or
decision time
Decision may refer to:
Law and politics
*Judgment (law), as the outcome of a legal case
*Landmark decision, the outcome of a case that sets a legal precedent
* ''Per curiam'' decision, by a court with multiple judges
Books
* ''Decision'' (novel ...
.
* Valid time is the time period during which a fact is true in the real world.
* Transaction time is the time at which a fact was recorded in the database.
* Decision time is the time at which the decision was made about the fact.
Uni-temporal
A uni-temporal database has one axis of time, either the validity range or the system time range.
Bi-temporal
A bi-temporal database has two axes of time:
* valid time
* transaction time or decision time
Tri-temporal
A tri-temporal database has three axes of time:
* valid time
* transaction time
* decision time
This approach introduces additional complexities.
Temporal databases are in contrast to
current database
A current database is a conventional database that stores data that is valid ''now''.
For example, if a user inserts "John Smith" into the Staff table of a current database, this asserts that the fact is valid ''now'' and until it is subsequentl ...
s (not to be confused with currently available databases), which store only facts which are believed to be true at the current time.
Features
Temporal databases support managing and accessing temporal data by providing one or more of the following features:
* A time period datatype, including the ability to represent time periods with no end (infinity or forever)
* The ability to define valid and transaction time period attributes and bitemporal relations
* System-maintained transaction time
* Temporal
primary keys In relational database management systems, a unique key is a candidate key that is not the primary key of the relation. All the candidate keys of a relation can uniquely identify the records of the relation, but only one of them is used as the pri ...
, including non-overlapping period constraints
* Temporal constraints, including non-overlapping uniqueness and
referential integrity
Referential integrity is a property of data stating that all its references are valid. In the context of relational databases, it requires that if a value of one attribute (column) of a relation (table) references a value of another attribute (ei ...
* Update and deletion of temporal records with automatic splitting and coalescing of time periods
* Temporal queries at current time, time points in the past or future, or over durations
* Predicates for querying time periods, often based on
Allen's interval relations
History
With the development of SQL and its attendant use in real-life applications, database users realized that when they added date columns to key fields, some issues arose. For example, if a table has a primary key and some attributes, adding a date to the primary key to track historical changes can lead to creation of more rows than intended. Deletes must also be handled differently when rows are tracked in this way. In 1992, this issue was recognized but standard database theory was not yet up to resolving this issue, and neither was the then-newly formalized standard.
Richard Snodgrass proposed in 1992 that temporal extensions to SQL be developed by the temporal database community. In response to this proposal, a committee was formed to design extensions to the 1992 edition of the SQL standard (ANSI X3.135.-1992 and ISO/IEC 9075:1992); those extensions, known as TSQL2, were developed during 1993 by this committee.
[Snodgrass, 1999, p. 9] In late 1993, Snodgrass presented this work to the group responsible for the American National Standard for Database Language SQL, ANSI Technical Committee X3H2 (now known as NCITS H2). The preliminary language specification appeared in the March 1994 ACM SIGMOD Record. Based on responses to that specification, changes were made to the language, and the definitive version of the TSQL2 Language Specification was published in September, 1994
An attempt was made to incorporate parts of TSQL2 into the new SQL standard
SQL:1999, called SQL3. Parts of TSQL2 were included in a new substandard of SQL3, ISO/IEC 9075-7, called SQL/Temporal.
The TSQL2 approach was heavily criticized by
Chris Date
Chris Date (born 1941) is an independent author, lecturer, researcher, and consultant, specializing in relational database theory.
Biography
Chris Date attended High Wycombe Royal Grammar School (U.K.) from 1951 to 1958 and received his BA i ...
and
Hugh Darwen
Hugh Darwen is a computer scientist who was an employee of IBM United Kingdom from 1967. to 2004, and has been involved in the development of the relational model.
Work
From 1978 to 1982 he was a chief architect on Business System 12, a da ...
. The ISO project responsible for temporal support was canceled near the end of 2001.
As of December 2011, ISO/IEC 9075, Database Language
SQL:2011 Part 2: SQL/Foundation included clauses in table definitions to define "application-time period tables" (
valid time
In temporal databases, valid time (VT) is the time period during which a database fact is valid in the modeled reality. As of December 2011, ISO/IEC 9075, Database Language SQL:2011 Part 2: SQL/Foundation included clauses in table definitions to d ...
tables), "system-versioned tables" (
transaction time
In temporal databases, transaction time (TT) is the time during which a fact stored in the database is considered to be true. As of December 2011, ISO/IEC 9075, Database Language SQL:2011 Part 2: SQL/Foundation included clauses in table definitio ...
tables) and "system-versioned application-time period tables" (
bitemporal tables). A substantive difference between the TSQL2 proposal and what was adopted in SQL:2011 is that there are no hidden columns in the SQL:2011 treatment, nor does it have a new data type for intervals; instead two date or timestamp columns can be bound together using a
PERIOD FOR
declaration. Another difference is replacement of the controversial (prefix) statement modifiers from TSQL2 with a set of temporal predicates.
Other features of
SQL:2011 standard related to temporal databases are automatic time period splitting, temporal primary keys, temporal referential integrity, temporal predicates with
Allen's interval algebra
''For the type of boolean algebra called interval algebra, see Boolean algebra (structure)''
Allen's interval algebra is a calculus for temporal reasoning that was introduced by James F. Allen in 1983.
The calculus defines possible relations b ...
and time-sliced and sequenced queries.
Example
For illustration, consider the following short biography of a fictional man, John Doe:
:John Doe was born on April 3, 1975 in the Kids Hospital of Medicine County, as son of Jack Doe and Jane Doe who lived in Smallville. Jack Doe proudly registered the birth of his first-born on April 4, 1975 at the Smallville City Hall. John grew up as a joyful boy, turned out to be a brilliant student and graduated with honors in 1993. After graduation, he went to live on his own in Bigtown. Although he moved out on August 26, 1994, he forgot to register the change of address officially. It was only at the turn of the seasons that his mother reminded him that he had to register, which he did a few days later on December 27, 1994. Although John had a promising future, his story ends tragically. John Doe was accidentally hit by a truck on April 1, 2001. The coroner reported his date of death on the very same day.
Using a non-temporal database
To store the life of John Doe in a current (non-temporal) database we use a table . (In order to simplify ''Name'' is defined as the
primary key
In the relational model of databases, a primary key is a ''specific choice'' of a ''minimal'' set of attributes (Column (database), columns) that uniquely specify a tuple (Row (database), row) in a Relation (database), relation (Table (database), t ...
of ''Person''.)
John's father officially reported his birth on April 4, 1975. On this date a Smallville official inserted the following entry in the database:
Person(John Doe, Smallville)
.
Note that the date itself is not stored in the database.
After graduation, John moves out, but forgets to register his new address. John's entry in the database is not changed until December 27, 1994, when he finally reports it. A Bigtown official updates his address in the database. The ''Person'' table now contains
Person(John Doe, Bigtown)
.
Note that the information of John living in Smallville has been overwritten, so it is no longer possible to retrieve that information from the database. An official accessing the database on December 28, 1994, would be told that John lives in Bigtown.
More technically: if a database administrator ran the query on December 26, 1994, the result would be
Smallville
. Running the same query 2 days later would result in
Bigtown
.
Until his death, the database would state that he lived in Bigtown. On April 1, 2001, the coroner deletes the John Doe entry from the database. After this, running the above query would return no result at all.
Using a single axis: valid time or transaction time
Valid time
In temporal databases, valid time (VT) is the time period during which a database fact is valid in the modeled reality. As of December 2011, ISO/IEC 9075, Database Language SQL:2011 Part 2: SQL/Foundation included clauses in table definitions to d ...
is the time for which a fact is true in the real world. A valid time period may be in the past, span the current time, or occur in the future.
For the example above, to record valid time, the ''Person'' table has two fields added, ''Valid-From'' and ''Valid-To''. These specify the period when a person's address is valid in the real world.
On April 4, 1975, John's father registered his son's birth. An official then inserts a new entry into the database stating that John lives in Smallville from April 3. Note that although the data was inserted on the fourth, the database states that the information is valid since the third. The official does not yet know if or when John will move to another place, so the ''Valid-To'' field is set to
infinity
Infinity is that which is boundless, endless, or larger than any natural number. It is often denoted by the infinity symbol .
Since the time of the ancient Greeks, the philosophical nature of infinity was the subject of many discussions amo ...
(∞). The entry in the database is:
Person(John Doe, Smallville, 3-Apr-1975, ∞).
On December 27, 1994, John reports his new address in Bigtown where he has been living since August 26, 1994. A new database entry is made to record this fact:
Person(John Doe, Bigtown, 26-Aug-1994, ∞).
The original entry
Person (John Doe, Smallville, 3-Apr-1975, ∞)
is not deleted, but has the ''Valid-To'' attribute updated to reflect that it is now known that John stopped living in Smallville on August 26, 1994.
The database now contains two entries for John Doe
Person(John Doe, Smallville, 3-Apr-1975, 26-Aug-1994).
Person(John Doe, Bigtown, 26-Aug-1994, ∞).
When John dies his current entry in the database is updated stating that John does not live in Bigtown any longer. The database now looks like this
Person(John Doe, Smallville, 3-Apr-1975, 26-Aug-1994).
Person(John Doe, Bigtown, 26-Aug-1994, 1-Apr-2001).
Using two axes: valid time and transaction time
Transaction time
In temporal databases, transaction time (TT) is the time during which a fact stored in the database is considered to be true. As of December 2011, ISO/IEC 9075, Database Language SQL:2011 Part 2: SQL/Foundation included clauses in table definitio ...
records the time period during which a database entry is accepted as correct. This enables queries that show the state of the database at a given time. Transaction time periods can only occur in the past or up to the current time. In a transaction time table, records are never deleted. Only new records can be inserted, and existing ones updated by setting their transaction end time to show that they are no longer current.
To enable transaction time in the example above, two more fields are added to the Person table: ''Transaction-From'' and ''Transaction-To''. ''Transaction-From'' is the time a transaction was made, and ''Transaction-To'' is the time that the transaction was superseded (which may be infinity if it has not yet been superseded). This makes the table into a
bitemporal table.
What happens if the person's address as stored in the database is incorrect? Suppose an official accidentally entered the wrong address or date? Or, suppose the person lied about their address for some reason. Upon discovery of the error, the officials update the database to correct the information recorded.
For example, from 1-Jun-1995 to 3-Sep-2000, John Doe moved to Beachy. But to avoid paying Beachy's exorbitant residence tax, he never reported it to the authorities. Later during a tax investigation, it is discovered on 2-Feb-2001 that he was in fact in Beachy during those dates. To record this fact, the existing entry about John living in Bigtown must be split into two separate records, and a new record inserted recording his residence in Beachy. The database would then appear as follows:
Person(John Doe, Smallville, 3-Apr-1975, 26-Aug-1994).
Person(John Doe, Bigtown, 26-Aug-1994, 1-Jun-1995).
Person(John Doe, Beachy, 1-Jun-1995, 3-Sep-2000).
Person(John Doe, Bigtown, 3-Sep-2000, 1-Apr-2001).
However, this leaves no record that the database ever claimed that he lived in Bigtown during 1-Jun-1995 to 3-Sep-2000. This might be important to know for auditing reasons, or to use as evidence in the official's tax investigation. Transaction time allows capturing this changing knowledge in the database, since entries are never directly modified or deleted. Instead, each entry records when it was entered and when it was superseded (or logically deleted). The database contents then look like this:
Name, City, Valid From, Valid Till, Entered, Superseded
Person(John Doe, Smallville, 3-Apr-1975, ∞, 4-Apr-1975, 27-Dec-1994).
Person(John Doe, Smallville, 3-Apr-1975, 26-Aug-1994, 27-Dec-1994, ∞ ).
Person(John Doe, Bigtown, 26-Aug-1994, ∞, 27-Dec-1994, 2-Feb-2001 ).
Person(John Doe, Bigtown, 26-Aug-1994, 1-Jun-1995, 2-Feb-2001, ∞ ).
Person(John Doe, Beachy, 1-Jun-1995, 3-Sep-2000, 2-Feb-2001, ∞ ).
Person(John Doe, Bigtown, 3-Sep-2000, ∞, 2-Feb-2001, 1-Apr-2001 ).
Person(John Doe, Bigtown, 3-Sep-2000, 1-Apr-2001, 1-Apr-2001, ∞ ).
The database records not only what happened in the real world, but also what was officially recorded at different times.
Using three axes: valid time, decision time, and transaction time
Decision time
Decision may refer to:
Law and politics
*Judgment (law), as the outcome of a legal case
*Landmark decision, the outcome of a case that sets a legal precedent
* ''Per curiam'' decision, by a court with multiple judges
Books
* ''Decision'' (novel ...
is an alternative to the transaction time period for recording the time at which a database entry may be accepted as correct. This enables queries that show the officially recognized facts at a given time, even if there was a delay in committing those facts to the database. Support for decision time preserves the entire history and prevents the loss of information during updates.
Decision time periods can only occur in the past or up to the transaction time. As in a transaction time table, records are never deleted. Only new records can be inserted, and existing ones updated by setting their decision end time to show that they are no longer current.
To enable decision time, two more fields are added to a database table: ''Decision From'' and ''Decision To''. ''Decision From'' is the time a decision was made, and ''Decision-To'' is the time that the decision was superseded (which may be infinity if it has not yet been superseded). When combined with transaction time, this makes the table into a
tritemporal table.
The following is a list of real-world events that occurred between the
United States presidential election
The election of the president and the vice president of the United States is an indirect election in which citizens of the United States who are registered to vote in one of the fifty U.S. states or in Washington, D.C., cast ballots not dire ...
s of 1964 and 1976:
Suppose there is a constant 7-day delay between the decision time and the transaction time committed to the database. Then following the election of 1976 the database contents would be:
President, Vice President, Valid From, Valid Till, Decision From, Decision To, Transaction From, Transaction To
----------------------------------------------------------------------------------------------------------------------------------
Administration(Lyndon Johnson, Hubert Humphrey, 20-Jan-1965, 20-Jan-1969, 3-Nov-1964, ∞, 10-Nov-1964, ∞)
Administration( Richard Nixon, Spiro Agnew, 20-Jan-1969, 20-Jan-1973, 5-Nov-1968, ∞, 12-Nov-1968, ∞)
Administration( Richard Nixon, Spiro Agnew, 20-Jan-1973, 20-Jan-1977, 7-Nov-1972, ∞, 14-Nov-1972, 17-Oct-1973)
Administration( Richard Nixon, Spiro Agnew, 20-Jan-1973, 20-Jan-1977, 7-Nov-1972, 10-Oct-1973, 17-Oct-1973, ∞)
Administration( Richard Nixon, Spiro Agnew, 20-Jan-1973, 10-Oct-1973, 10-Oct-1973, ∞, 17-Oct-1973, ∞)
Administration( Richard Nixon, (Vacant), 10-Oct-1973, 20-Jan-1977, 10-Oct-1973, ∞, 17-Oct-1973, 13-Dec-1973)
Administration( Richard Nixon, Gerald Ford, ∞, 20-Jan-1977, 12-Oct-1973, ∞, 19-Oct-1973, 13-Dec-1973)
Administration( Richard Nixon, (Vacant), 10-Oct-1973, 20-Jan-1977, 10-Oct-1973, 6-Dec-1973, 13-Dec-1973, ∞)
Administration( Richard Nixon, (Vacant), 10-Oct-1973, 6-Dec-1973, 6-Dec-1973, ∞, 13-Dec-1973, ∞)
Administration( Richard Nixon, Gerald Ford, ∞, 20-Jan-1977, 12-Oct-1973, 6-Dec-1973, 13-Dec-1973, ∞)
Administration( Richard Nixon, Gerald Ford, 6-Dec-1973, 20-Jan-1977, 6-Dec-1973, ∞, 13-Dec-1973, 15-Aug-1974)
Administration( Richard Nixon, Gerald Ford, 6-Dec-1973, 20-Jan-1977, 6-Dec-1973, 8-Aug-1974, 15-Aug-1974, ∞)
Administration( Richard Nixon, Gerald Ford, 6-Dec-1973, 9-Aug-1974, 8-Aug-1974, ∞, 15-Aug-1974, ∞)
Administration( Gerald Ford, (Vacant), 9-Aug-1974, 20-Jan-1977, 8-Aug-1974, ∞, 15-Aug-1974, 26-Dec-1974)
Administration( Gerald Ford, Nelson Rockefeller, ∞, 20-Jan-1977, 20-Aug-1974, ∞, 27-Aug-1974, 26-Dec-1974)
Administration( Gerald Ford, (Vacant), 9-Aug-1974, 20-Jan-1977, 8-Aug-1974, 19-Dec-1974, 26-Dec-1974, ∞)
Administration( Gerald Ford, (Vacant), 9-Aug-1974, 19-Dec-1974, 19-Dec-1974, ∞, 26-Dec-1974, ∞)
Administration( Gerald Ford, Nelson Rockefeller, ∞, 20-Jan-1977, 20-Aug-1974, 19-Dec-1974, 26-Dec-1974, ∞)
Administration( Gerald Ford, Nelson Rockefeller, 19-Dec-1974, 20-Jan-1977, 19-Dec-1974, ∞, 26-Dec-1974, ∞)
Administration( Jimmy Carter, Walter Mondale, 20-Jan-1977, 20-Jan-1981, 2-Nov-1976, ∞, 9-Nov-1976, ∞)
Consider the question of who would be president and vice president for a valid time of 1-Jan-1977:
* Nixon/Agnew when using a decision time and transaction time of 14-Nov-1972
* Nixon/(Vacant) when using a decision time and transaction time of 17-Oct-1973
* Nixon/Ford when using a decision time and transaction time of 8-Aug-1974
* Ford/(Vacant) when using a decision time of 8-Aug-1974 and transaction time of current
* Ford/Rockefeller when using a decision time and transaction time of current
Bitemporal Modelling
A
bitemporal model contains both valid and transaction time. This provides both historical and rollback information. Historical information (e.g.: "Where did John live in 1992?") is provided by the valid time. Rollback (e.g.: "In 1992, where did the database believe John lived?") is provided by the transaction time. The answers to these example questions may not be the same the database may have been altered since 1992, causing the queries to produce different results.
The valid time and transaction time do not have to be the same for a single fact. For example, consider a temporal database storing data about the 18th century. The valid time of these facts is somewhere between 1701 and 1800. The transaction time would show when the facts were inserted into the database (for example, January 21, 1998).
Schema evolution
A challenging issue is the support of temporal queries in a transaction time database under evolving
schema
The word schema comes from the Greek word ('), which means ''shape'', or more generally, ''plan''. The plural is ('). In English, both ''schemas'' and ''schemata'' are used as plural forms.
Schema may refer to:
Science and technology
* SCHEMA ...
. In order to achieve perfect archival quality it is of key importance to store the data under the schema version under which they first appeared. However, even the most simple temporal query rewriting the history of an attribute value would be required to be manually rewritten under each of the schema versions, potentially hundreds as in the case of MediaWik
This process would be particularly taxing for users. A proposed solution is to provide automatic query rewriting,
although this is not part of SQL or similar standards.
Approaches to minimize the complexities of
schema evolution In computer science, schema versioning and schema evolution, deal with the need to retain current data and software system functionality in the face of changing database structure. The problem is not limited to the modification of the schema. It, i ...
are:
* to use a semi-structured database/NoSQL database which reduces the complexities of modeling attribute data but provides no features for handling multiple time axes.
* to use a database capable of storing both semi-structured data for attributes and structured data for time axes (e.g.,
SnowflakeDB, PostgreSQL)
Implementations in notable products
The following implementations provide temporal features in a relational database management system (RDBMS).
*
MariaDB
MariaDB is a community-developed, commercially supported fork of the MySQL relational database management system (RDBMS), intended to remain free and open-source software under the GNU General Public License. Development is led by some of the ori ...
version 10.3.4 added support for
SQL:2011 standard as "System-Versioned Tables".
*
Oracle Database
Oracle Database (commonly referred to as Oracle DBMS, Oracle Autonomous Database, or simply as Oracle) is a multi-model database management system produced and marketed by Oracle Corporation.
It is a database commonly used for running online t ...
Oracle Workspace Manager is a feature of Oracle Database which enables application developers and DBAs to manage current, proposed and historical versions of data in the same database.
*
PostgreSQL
PostgreSQL (, ), also known as Postgres, is a free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance. It was originally named POSTGRES, referring to its origins as a successor to the In ...
version 9.2 added native ranged data types that are capable of implementing all of the features of the pgFoundry temporal contributed extension. The PostgreSQL range types are supported by numerous native operators and functions.
*
Teradata
Teradata Corporation is an American software company that provides cloud database and analytics-related software, products, and services. The company was formed in 1979 in Brentwood, California, as a collaboration between researchers at Caltech a ...
provides two products. Teradata version 13.10 and
Teradata version 14 have temporal features based on TSQL2 built into the database.
*
IBM Db2
Db2 is a family of data management products, including database servers, developed by IBM. It initially supported the relational model, but was extended to support object–relational features and non-relational structures like JSON a ...
version 10 added a feature called "time travel query"
[
] which is based on the temporal capabilities of the
SQL:2011 standard.
[Kulkarni, Krishna, and Jan-Eike Michels.]
Temporal features in SQL: 2011
. ACM SIGMOD Record 41.3 (2012): 34-43.
*
Microsoft SQL Server
Microsoft SQL Server is a relational database management system developed by Microsoft. As a database server, it is a software product with the primary function of storing and retrieving data as requested by other software applications—which ma ...
introduced Temporal Tables as a feature for SQL Server 2016. The feature is described in a video on Microsoft's "Channel 9" web site.
Non-relational, NoSQL database management systems that provide temporal features including the following:
*
TerminusDB
TerminusDB is an open source knowledge graph and Document-oriented database, document store. It is used to build versioned data products. It is a Native (computing), native Version control, revision control database that is architecturally simil ...
is a fully featured
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
graph database
A graph database (GDB) is a database that uses graph structures for semantic queries with nodes, edges, and properties to represent and store data. A key concept of the system is the ''graph'' (or ''edge'' or ''relationship''). The graph relat ...
that natively supports version control, time-travel queries and diffing functions. It has an immutable layer architecture based on
delta encoding
Delta encoding is a way of storing or transmitting data in the form of '' differences'' (deltas) between sequential data rather than complete files; more generally this is known as data differencing. Delta encoding is sometimes called delta compre ...
and
succinct data structure In computer science, a succinct data structure is a data structure which uses an amount of space that is "close" to the information-theoretic lower bound, but (unlike other compressed representations) still allows for efficient query operations. Th ...
s.
*
MarkLogic
MarkLogic Corporation is an American software business that develops and provides an enterprise NoSQL database, also named ''MarkLogic''. The company was founded in 2001 and is based in San Carlos, California. MarkLogic is a privately held compa ...
introduced bitemporal data support in version 8.0. Time stamps for Valid and System time are stored in JSON or XML documents.
SirixDBstores snapshots of (currently) XML- and JSON-documents very efficiently in a binary format due to a novel versioning algorithm called sliding snapshot, which balances read-/write-performance and never creates write peaks. Time-travel queries are supported natively as well as diffing functions.
XTDB(formerly Crux) provides point-in-time bitemporal
Datalog
Datalog is a declarative logic programming language. While it is syntactically a subset of Prolog, Datalog generally uses a bottom-up rather than top-down evaluation model. This difference yields significantly different behavior and properties ...
queries over transactions and documents ingested from semi-immutable Kafka logs. Documents are automatically indexed to create
Entity–attribute–value model
Entity–attribute–value model (EAV) is a data model to encode, in a space-efficient manner, entities where the number of attributes (properties, parameters) that can be used to describe them is potentially vast, but the number that will actuall ...
indexes without any requirement to define a schema. Transaction operations specify the effective Valid times. Transaction times are assigned by Kafka and enable horizontal scalability via consistent reads.
RecallGraphis a point-in-time, unitemporal (transaction time) graph database, built on top of
ArangoDB
ArangoDB is a free and open-source native graph database system developed by ArangoDB Inc. ArangoDB is a multi-model database system since it supports three data models (graphs, JSON documents, key/value) with one database core and a unified q ...
. It runs on ArangoDB'
Foxx Microservicesub-system. It features
VCS-like semantics in many parts of its interface, and is backed by a
transactional event tracker. Bitemporality is listed as one of the items in it
development roadmap
Alternatives
Slowly changing dimension
A slowly changing dimension (SCD) in data management and data warehousing is a dimension which contains relatively static data which can change slowly but unpredictably, rather than according to a regular schedule. Some examples of typical slowly ...
s can be used to model temporal relations.
Further reading
*
C.J. Date
Chris Date (born 1941) is an independent author, lecturer, researcher, and consultant, specializing in relational database theory.
Biography
Chris Date attended High Wycombe Royal Grammar School (U.K.) from 1951 to 1958 and received his BA i ...
,
Hugh Darwen
Hugh Darwen is a computer scientist who was an employee of IBM United Kingdom from 1967. to 2004, and has been involved in the development of the relational model.
Work
From 1978 to 1982 he was a chief architect on Business System 12, a da ...
,
Nikos Lorentzos
Nikos Lorentzos is a Greek professor of Informatics. He is a specialist on the Relational Model of Database Management, having made contributions in the field of temporal databases, where he has co-authored a book with Hugh Darwen
Hugh Darwe ...
(2002). ''Temporal Data & the Relational Model, First Edition'' (The Morgan Kaufmann Series in Data Management Systems); Morgan Kaufmann; 1st edition; 422 pages. .
*
Joe Celko Joe Celko is an American relational database expert from Austin, Texas. He has participated on the ANSI X3H2 Database Standards Committee, and helped write the SQL-89 and SQL-92 standards. He is the author of a Morgan-Kaufmann series of books on S ...
(2014). ''Joe Celko's SQL for Smarties: Advanced SQL Programming'' (The Morgan Kaufmann Series in Data Management); Morgan Kaufmann; 5th edition. .—Chapters 12 and 35 in particular discuss temporal issues.
* Snodgrass, Richard T. (1999). (Morgan Kaufmann Series in Data Management Systems); Morgan Kaufmann; 504 pages;
See also
*
Anchor Modeling
*
Database theory
Database theory encapsulates a broad range of topics related to the study and research of the theoretical realm of databases and database management systems.
Theoretical aspects of data management include, among other areas, the foundations of q ...
*
Event store
{{more citations needed, date=September 2015
An event store is a type of database optimized for storage of events.
Conceptually, in an event store, only the ''events'' of a dossier or policy are stored. The idea behind it is that the dossier or ...
*
Spatiotemporal database
A spatiotemporal database is a database that manages both space and time information. Common examples include:
* Tracking of moving objects, which typically can occupy only a single position at a given time.
* A database of wireless communication n ...
*
Time series database
A time series database (TSDB) is a software system that is optimized for storing and serving time series through associated pairs of time(s) and value(s). In some fields, ''time series'' may be called profiles, curves, traces or trends. Several ea ...
References
External links
*
Temporal Relations in RDFTemporal Scope for RDF Triples series of articles by Randy Weis and Tom Johnston
by Martin Fowler
{{DEFAULTSORT:Temporal database
Database management systems
Database theory
Transaction processing
Temporal databases