Bitemporal Data Model: making it happened in Postgres

Date: 2016-09-15
Time: 09:00 - 09:50
Room: Ft. Worth 2
Level: Advanced

The first attempts to include a time dimension into relational data go back to early 80’s, when the first works of Dr. Richard Snodrass were published. Since that time numerous scientists contributed to further development of the temporal relational theory. Later it became apparent, that just one time dimension is not enough to adequately reflect all the changes happening in the environment the databases are modeling and the concept of the second time dimension, most often referred to as “a system time” was introduced.

Nowadays a bitemporal data management is becoming a mainstream: IBM’s DB2, Teradata and Oracle - all started toinclude some components to time dimensions. We believe that Postgres provides even more capabilities for such support than any industrial DBMS due to the already existing support of ranges, including the time ranges and implementation of gist indexes with exclusion.

In our work we have taken a slightly different approach than the one mentioned above. We base our implementation of bitemporal time on the concepts highlighted in the book “Managing Time in Relational Databases” by Johnson and Weis (Morgan Kaufmann, 2010). Following their Asserted Versioning Framework (AVF) we introduce the concepts of effective time and asserted time and implement all basic operations on bitemporal tables and bitemporal constraints.

This talk will present our research and development in progress, including the concepts and operations, which are already successfully implemented, the mathematical proofs of correctness of our implementations, as well as what’s in works and our current challenges. Then presentation will be concluded with a demo.


Chad Slaughter
Henrietta Dombrovskaya