Temporal Indexing

OUDB Faculty Sponsor OUDB Members DB Research Links Publications Tools

Previous Page

A temporal database supports the storage and querying of information that varies over time. Each data value is associated with a time interval corresponding to the transaction time, valid time, or both in the case of bitemporal databases. Data are usually not removed. Instead, updates are made by adding new records. Such a database is expected to be much larger than its conventional counterpart; so its indexing is much more critical. Conventional indexing techniques such as B+-trees and hash-based indexes are not particularly useful for indexing interval data.

Our goal is to develop an object-oriented indexing technique that accommodates temporal characteristics so as to capture sophisticated semantics and provide a close model of future real-world applications. Specifically, we are striving to develop an indexing and storage technique for object-oriented temporal data that would be efficient for temporal queries while remaining optimal for non-temporal ones.

One issue that arises is how to evaluate an indexing and storage scheme, such as determining the different criteria that make it efficient and if those criteria are the same for temporal and non-temporal indexes. In the case of a static database where all the data have already been collected and the database is of fixed size, the efficiency problem can be addressed by analyzing the data and their associated queries statistically so as to store them optimally. However, for most applications, temporal databases are dynamic, and it is practically impossible to reorganize the storage and indexing each time new data values become available.

Another issue in dynamic temporal databases is to store the data so as to minimize the disk I/O for both temporal and non-temporal queries. This could be done by grouping successive updates of a given object or category of objects together within the same disk sector. Also, we could place the most frequently accessed information in main memory. The issue, then, is to find out what information is accessed most frequently. In our model, such information consisted of the index and the most recent data values.

In the case of bitemporal databases, the temporal ordering according to the valid time may not be the same as the ordering according to the transaction time. In that case, an issue is determining if it is still possible to index both time axes optimally.

All of the issues present in OODBMSs are also issues in temporal OODBMSs. For instance, the model representing the objects in the database may affect the indexing scheme, as may the class hierarchy and use of nested predicates and methods in queries. References between objects may be another important factor.

 

For problems or questions regarding this web contact database@cs.ou.edu.