Issue No. 04 - August (1995 vol. 7)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/69.404032
<p><it>Abstract</it>—Efficiently managing the history of a time-evolving system is one of the central problems in many database environments, like database systems that incorporate versioning, or object-oriented databases that implicitly or explicitly maintain the history of persistent objects. In this paper we propose algorithms that reconstruct past states of an evolving system for two general cases, i.e., when the system’s state is represented by a set or by a hierarchy (a forest of trees). Sets are widely used as a canonical form of representing information in databases or program states. For more complex applications, like schema evolution in object-oriented databases, it becomes necessary to manage the history of data structures that have the form of forests or even graphs. The proposed algorithms use minimal space (proportional to the number of changes occurring in the evolution) and have the advantage of being on-line (in the amortized sense). Any past system state <it>s</it>(<it>t</it>) is reconstructed in time <it>O</it>(|<it>s</it>(<it>t</it>)|+ loglog<it>T</it>), where |<it>s</it>(<it>t</it>)| is the size of the answer and <it>T</it> is the maximal evolution time. For all practical cases the loglog<it>T</it> factor is a constant, therefore our algorithms provide almost random access to any past system state. Moreover, we show that the presented algorithms are optimal among all algorithms that use space linear in the number of changes in the system’s evolution.</p>
Temporal databases, historical queries, access methods, data-structures, versioning.
G. W. Hart, V. J. Tsotras and B. Gopinath, "Efficient Management of Time-Evolving Databases," in IEEE Transactions on Knowledge & Data Engineering, vol. 7, no. , pp. 591-608, 1995.