Bases de datos temporales

2,867 views
2,668 views

Published on

Como manejar el tiempo en las bases de datos

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,867
On SlideShare
0
From Embeds
0
Number of Embeds
82
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Bases de datos temporales

  1. 1. Temporalidad en bases de datos "El mejor profeta del futuro es el pasado"http://en.wikipedia.org/wiki/Temporal_database
  2. 2. Motivaciones• La información es “variante en el tiempo” .• El tiempo es un atributo esencial de la información.• Convencionalmente las bases de datos representan el estado de los datos en un solo momento en el tiempo.• Muchas aplicaciones necesitan representar la información acerca del pasado. – financiera(pagos) – Médicos(historia del paciente) – Gobierno• Las bases de datos temporales, es un sistema que administra los datos considerando la variación en el tiempo de los mismos. JOSÉ CUARTAS BASES DE DATOS 2
  3. 3. Motivaciones• El objetivo de un sistema que administra el tiempo, es describir la evolución histórica de los datos. Idealmente de manera que esta descripción sea lo suficientemente precisa como para ser capaz de justificar o mantener la trazabilidad de los cambios en la propia información. “The database is not the database-the log is the database, and the database is just an optimized access path to the most recent version of the log.” B.-M. SCHUELER JOSÉ CUARTAS BASES DE DATOS 3
  4. 4. Transacciones del tiempo 1 2 4 8 10 15 16 17 25 28 30 33 41 42 45 47 48 51 53 u b f c d g id p j k i m eLa base de datos evoluciona atravez de inserciones y actualizaciones JOSÉ CUARTAS BASES DE DATOS 4
  5. 5. Comparaciones• Las DB temporales: – Mantiene información histórica. – Los cambios se consideran como adiciones a la información almacenada en la base de datos. – Incorpora la noción de tiempo en el Sistema. – Acceso eficiente a los estados pasados.• Las DB convencionales: – Evolucionan a través de transacciones de un estado a otro. – Los cambios se consideran como modificaciones en el estado. – No hay información sobre el pasado. – Es una Instantánea de la empresa. JOSÉ CUARTAS BASES DE DATOS 5
  6. 6. Bases datos temporales• Modelos de datos temporales: es una extensión del modelo relacional mediante la cual se adicionan atributos temporales a cada relación.• Lenguaje de consulta temporales: TQUEL, SQL3• Adicionan métodos temporales de indexación y el procesamiento de consultas. JOSÉ CUARTAS BASES DE DATOS 6
  7. 7. Tiempo de validez en las DB• El tiempo evoluciona continuamente.• Cada objeto es una línea que representa un intervalo de tiempo .• Tiempo valido • Es el tiempo en que un echo es una realidad. • Es el periodo para el cual un echo es real.• Soporte a las operaciones para un intervalo de tiempo: – Eliminación para cualquier instante de tiempo – La inserción para cualquier instante de tiempo – Cambio de valor (modificación) de cualquier instan te de tiempo (sin un orden predefinido) JOSÉ CUARTAS BASES DE DATOS 7
  8. 8. Tiempo de validez en las DB• La eliminación física, no permite saber los estados anteriores de los datos.• La noción de “futuro”, “presente” y “pasado” es relativo a cierto instante(timestamp) del echo que ocurrio.• Requisitos para los métodos de indexación: – Almacena la última colección de objetos de un intervalo. – Soporta cambios de adicionar/ eliminar/ modi en la colección. – Consulta eficiente de los intervalos de la colección • Consultas por fecha y hora. • Consulta por Intervalo (período). JOSÉ CUARTAS BASES DE DATOS 8
  9. 9. Tiempo de transacción en la DB• Tiempo de transacción – Describe el punto en el tiempo cuando la información fue ingresada en la base de datos.El tiempo evoluciona de forma discreta, por lo general seasocia con el número de transacción.Soporte a las operaciones para un intervalo de tiempo: – Las actualizaciones pueden hacerse sólo con el estado actual, el pasado no se puede cambiar – Se tiene la caracteristica de regressar l estado anterior conocido como "Rollback" – La eliminación es lógica (no se elimina físicamente!). JOSÉ CUARTAS BASES DE DATOS 9
  10. 10. Tiempo de transacción en la DBRequisitos para los métodos de indexación:• Almacenamiento lógico de los estados del pasado.• Soporte para los cambios en los objetos o datos actuales(adicionar/eliminación/modificación).• Acceso y consulta eficiente de cualquier estado de la base de datos. JOSÉ CUARTAS BASES DE DATOS 10
  11. 11. Taxonomía del tiempo• Los tiempos de transacción y de validez de una BD no tienen porqué coincidir para un mismo hecho: – El tiempo de transacción viene marcado por el reloj interno del sistema. – El tiempo de validez de un hecho puede ser: • Posterior al tiempo de transacción, lo que se llama actividad proactiva. • Anterior al tiempo de transacción, lo que se llama actividad retroactiva. • Simultáneo al tiempo de transacción, se llama actividad simultánea. JOSÉ CUARTAS BASES DE DATOS 11
  12. 12. Bitemporalidad• Tablas o DB Bi-temporal: – Soporta ambas nociones del tiempo.• Una base de datos de transacciones en tiempo, pero el historial de cada uno es un intervalo (además de los otros atributos de los registros)• Mantener la evolución de una colección dinámica de intervalo de los objetos• En cada fecha y hora, es una base de datos de tiempo válido JOSÉ CUARTAS BASES DE DATOS 12
  13. 13. Bitemporalidad C(t1) C(t2) C(t3) C(t4) C(t5) t3 t4 t5 t t1 t2 v v v v v Iy Iy Iz Iy Iz Iy Iy Iw Iw IwIx Ix Ix Ix Ix JOSÉ CUARTAS BASES DE DATOS 13
  14. 14. Información y cambios de estado• Preguntas:• cómo se relaciona con la estructura de la información y cómo un cambio de estado afecta a la información?.• Enfoques :• Información transitoria: – la característica principal es que la alteración y borrado de los registros existentes destruyen físicamente el contenido previo de la información. – Este tipo de información se encuentra habitualmente en los entornos operacionales. JOSÉ CUARTAS BASES DE DATOS 14
  15. 15. Información y cambios de estado• Información periódica: – Un registro nunca se borra físicamente ni su contenido es modificado. – siempre se añaden nuevos registros para reflejar actualizaciones o incluso borrados. – La información periódica, por tanto, contiene un completo registro de los cambios que han ocurrido. JOSÉ CUARTAS BASES DE DATOS 15
  16. 16. Información y cambios de estado• Información tipo “snapshot”: – Snapshot o fotografía representa una vista estable de la información tal y como existe en un momento dado del tiempo. – Es un tipo especial de información periódica. – Generalmente los “snapshots”: • Representan la información en un momento concreto del pasado, utilizado para reporte no modificables. • Una serie de “snapshots” tomadas en distintos puntos del tiempo proporcionar una vista de la historia de los datos. JOSÉ CUARTAS BASES DE DATOS 16
  17. 17. TIPOS DE HISTORIA en la DB• Historia: se trata de datos históricos almacenados en tablas de una base de datos relacional. JOSÉ CUARTAS BASES DE DATOS 17
  18. 18. TIPOS DE HISTORIA en la DB• Historia reconstruible: datos sobre el estado pasado de algo, obtenidos restaurando un archivo de backup y aplicando después las transacciones de actualización capturadas en un archivo de log del DB. • Requiere la intervención del personal de TI y por tanto no es en tiempo real. • Son copias de respaldo periódicas de archivos o bases de datos y un log de transacciones • No existen datos históricos recuperables. JOSÉ CUARTAS BASES DE DATOS 18
  19. 19. TIPOS DE HISTORIA en la DB• Historia consultable: datos sobre el estado pasado de algo, obtenidos mediante una consulta SQL, sin la necesidad de restaurar archivos de backup y reaplicar transacciones capturadas en el archivo de log del DB. – Este tipo de historia puede ser en tiempo real. – La historia consultable se almacena como un registro de eventos(Historia de eventos) o como un registro de estados( Historia de estados). JOSÉ CUARTAS BASES DE DATOS 19
  20. 20. TIPOS DE HISTORIA en la DBHistoria de eventos: datos sobre eventos quehan alterado el estado de las cosas. – Estos datos se capturan como transacciones en tablas. – Este método consiste en almacenar el estado inicial de algo y posteriormente almacenar todas las transacciones que lo van actualizando. JOSÉ CUARTAS BASES DE DATOS 20
  21. 21. TIPOS DE HISTORIA en la DBHistoria de estados: datos históricos capturados comocopias del estado actual de un objeto, bien periódicamenteo en respuesta a un evento de actualización específico. – Es un método de gestión de datos temporales que mantiene todas las inserciones y borrados con sus dos imágenes, anterior y posterior, para cada modificación. – Se aplica para todas aquellas datos que tienen estados, es decir, que pueden cambiar a lo largo del tiempo. – La historia de estados se puede almacenar bien como fotografías o como versiones. JOSÉ CUARTAS BASES DE DATOS 21
  22. 22. TIPOS DE HISTORIA en la DB• Historia fotografiada: conjunto coordinado de copias en una base de datos relacional. – Las fotografías (o snapshots) se toman habitualmente considerando la base de datos completa, o también a veces incluyendo únicamente un subconjunto de tablas relacionadas semánticamente. – los snapshots pierden cualquier actualización que haya sido sobrescrita por actualizaciones posteriores del mismo dato realizadas antes de la siguiente fotografía. – Es una forma poco eficiente de registrar la historia, ya que se crean copias de todas las filas, hayan cambiado o no. – Su mejor característica mantener una copia exacta de cómo estaban los datos en el momento de tomar la fotografía. JOSÉ CUARTAS BASES DE DATOS 22
  23. 23. TIPOS DE HISTORIA en la DB• Historia versionada: son actualizaciones lógicas de filas individuales, implementadas sin sobrescribir datos, “retirando” la versión actual del objeto y reemplazándola con una nueva versión que contiene los datos actualizados del objeto.• registrar la historia, ya que sólo se crean nuevas filas cuando ocurre un cambio versionable. JOSÉ CUARTAS BASES DE DATOS 23
  24. 24. METODOS GESTION DEL TIEMPO• En estas situaciones, el software no requiere que los estados anteriores a la actualización se encuentren disponibles para ser consultados. Para este tipo de datos y requisitos de software, la necesidad de los datos históricos es tan poco• frecuente, que es suficiente la solución de mantener historia reconstruible. JOSÉ CUARTAS BASES DE DATOS 24
  25. 25. METODOS GESTIÓN DEL TIEMPO• Hay diferentes métodos, cada método satisface un conjunto de requisitos que se dese almacenar en cuanto a gestión del tiempo.• Cuando no se requiere que los estados anteriores a la actualización se encuentren disponibles para ser consultados. – la necesidad de los datos históricos es tan poco frecuente, que es suficiente la solución de mantener historia reconstruible. JOSÉ CUARTAS BASES DE DATOS 25
  26. 26. METODOS GESTIÓN DEL TIEMPOEn diferentes soluciones lo único que se necesita conocer en tiempo real es cómoson las cosas en el momento actual, por consiguiente, no se requiere que losestados anteriores a la actualización se encuentren disponibles para serconsultados.Generalmente se resuelve agregando La columna fx_alta que es la fecha en quese insertó la fila. Y la columna fx_ult_act, cuyo valor se debe actualizar cada vezque se actualiza una fila, es la fecha de última actualización de esa fila enparticular.Tabla Para tener en la cuentaatributo_PK (Atributo clave primaria) No se sabe cuántas veces ha cambiado laatributo_FK (Atributo clave foránea)atributo fila.atributo No se tiene conocimiento de qué columna… o columnas cambiaron en actualizaciones (Fecha de la inserciónfx_alta de la fila) anteriores. (Fecha de la última se ha perdido información de la historiafx_ult_act actualización de la fila) consultable, se debe usar la historia reconstruible JOSÉ CUARTAS BASES DE DATOS 26
  27. 27. METODOS GESTIÓN DEL TIEMPO• Es frecuente que se requiera tener una cantidad mínima de historia disponible en tiempo. La forma más frecuente de hacerlo es implementar un borrado lógico en lugar de un borrado físico. – Aunque el borrado lógico se puede realizar de varias formas, es conveniente generar una nueva columna para la fecha de borrado, fx_baja con dominio de fecha, la cual preserva y no sobrescribe la información de metadato de fecha de última actualización,. – Con esta opción no es necesario el indicador de borrado ya que las filas eliminadas con borrado lógico son aquellas cuya fecha de borrado no es nula Tabla atributo_PK atributo_FK (Atributo clave primaria) Para tener en la cuenta (Atributo clave foránea) atributo • En la actualización, la fila tal como se insertó atributo originalmente se pierde. … • Se pierden todas las actualizaciones excepto (Fecha de la inserción fx_alta de la fila) la última, incluso es imposible saber si hubo o no actualizaciones previas. (Fecha de la última La actualización están sobrescribiendo la fx_ult_act actualización de la fila) información anterior, manteniendo únicamente (Fecha del borrado fx_eliminacion lógico de la fila) el último estado o estado actual de los objetos. JOSÉ CUARTAS BASES DE DATOS 27
  28. 28. METODOS GESTIÓN DEL TIEMPO• Para poder mostrar el estado de cualquier objeto tal como era en cualquier momento de su vida”, es preciso retener el estado de los objetos antes de su actualización además del estado posterior a la actualización, es decir, es preciso mantener la historia de los objetos.• Puesto que un requisito del modelo de gestión del tiempo dice que debe permitir dar respuesta a las preguntas en tiempo real• Para tener en la cuenta• En las tablas normales las filas representan objetos, en las tablas versionadas las filas representan versiones de objetos.• Para un sistema versionado se recomienda implementa un modelo bitemporal – Manja dos tipos de tiempo, el Tiempo de validez de los datos y el Tiempo de transacción de los datos. – Con un modelo bitemporal es posible corregir errores dejando constancia de que así ha sido y permitiendo por tanto reconstruir la situación de la tabla en cualquier instante del tiempo. – Este es el enfoque de “preservar la evidencia” en la corrección de errores, que no puede ser abordado con un modelo unitemporal. JOSÉ CUARTAS BASES DE DATOS 28
  29. 29. METODOS GESTIÓN DEL TIEMPOTabla Para tener en la cuentaatributo_PK (Atributo clave primaria) Las fechas de validez:atributo_FK (Atributo clave foránea) • Fecha de inicio de versión (fx_ver_ini): el instanteatributoatributo en el que esa versión del objeto comienza a ser la… versión actualmente en vigor. Fecha de inicio de • Fecha de fin de versión (fx_ver_fin): el instante enFx_ver_inicial versión el que esa versión del objeto deja de estar en vigor.Fx_ver_final Fecha de fin de versión Las fechas que tiempo de transacción (Fecha de la inserciónfx_alta de la fila) • Fecha de creación (fx_alta): el instante en el que esa fila fue físicamente insertada en la tabla. (Fecha de la última • Fecha de borrado lógico (fx_baja): el instante enfx_ult_act actualización de la fila) el que esa fila deja de considerarse válida. (Fecha del borradofx_eliminacion lógico de la fila) JOSÉ CUARTAS BASES DE DATOS 29
  30. 30. Para tener en la cuenta• Las bases de datos temporales y en muchos casos las tablas bitemporales aunque al parecer conceptualmente solo es agregar atributos de tiempo de validez y tiempo de transacción, se debe tener en la cuenta lo siguiente: • Las restricciones de integridad necesitan desarrollos extras como procedimientos almacenados para verificar las restricciones temporales. • Para la consulta se necesitan operadores temporales con el fin de facilitar la gestión de los datos temporales, esto operadores deben permitir la granularidad en la consulta, lo cual es la precisión con la que se representa la información variante en el tiempo . • Se debe agregan al modelo ER la expresividad necesaria para representar la semántica de la información que varía con el tiempo. JOSÉ CUARTAS BASES DE DATOS

×