El control de versiones de tuplas (también denominado punto en el tiempo ) es un mecanismo utilizado en un sistema de gestión de bases de datos relacionales para almacenar estados anteriores de una relación . Normalmente, solo se captura el estado actual.
Si se utilizan técnicas de control de versiones de tuplas, normalmente se almacenan dos valores de tiempo junto con cada tupla : una hora de inicio y una hora de finalización. Estos dos valores indican la validez del resto de los valores de la tupla.
Normalmente, cuando se utilizan técnicas de control de versiones de tuplas, la tupla actual tiene una hora de inicio válida, pero un valor nulo para la hora de finalización. Por lo tanto, es fácil y eficiente obtener los valores actuales de todas las tuplas consultando la hora de finalización nula.
Una única consulta que busque tuplas con una hora de inicio menor que y una hora de finalización mayor que una hora determinada (donde la hora de finalización nula se trata como un valor mayor que la hora determinada) dará como resultado las tuplas válidas en la hora determinada.
Por ejemplo, si el trabajo de una persona cambia de Ingeniero a Gerente, habrá dos tuplas en una tabla de Empleados , una con el valor Ingeniero para el trabajo y la otra con el valor Gerente para el trabajo. La hora de finalización de la tupla Ingeniero sería igual a la hora de inicio de la tupla Gerente.
El patrón conocido como log trigger utiliza esta técnica para almacenar automáticamente información histórica de una tabla en una base de datos .
Véase también
Referencias
- Salzberg, Betty; Tsotras, Vassilis J. (1999). "Comparación de métodos de acceso para datos que evolucionan en el tiempo". ACM Computing Surveys . 31 (2): 158–221. doi :10.1145/319806.319816.