Bases de datos temporales

37
Bases de Datos Temporales Aragón Asenjo, Pablo Iturrate Gil, Iñaki Asier “Cualquier tiempo pasado fue anterior” Les Luthiers

Transcript of Bases de datos temporales

Page 1: Bases de datos temporales

Bases de Datos Temporales

Aragón Asenjo, Pablo

Iturrate Gil, Iñaki Asier

“Cualquier tiempo pasado fue anterior”

Les Luthiers

Page 2: Bases de datos temporales

Bases De Datos Temporales2

Índice

– Definición de Base de Datos Temporal (BDT)

– Motivación de las BDT

– Relaciones bitemporales (Ejemplo)

– Operaciones

– Problemas

– Implementación

– Sistemas de Gestión de BDT (TimeDB)

– Conclusiones

Page 3: Bases de datos temporales

Bases De Datos Temporales3

¿Qué NO es una Base de Datos Temporal?

Si insertamos información en la Base de Datos y jamás la

modificamos ni la borramos, tenemos una Base de Datos Histórica.

Si la Base de Datos sólo contiene

datos actuales, tenemos una Base

de Datos Instantánea. Cuando la

información de los datos deja de ser

cierta se actualiza o se elimina el

registro anterior.

Page 4: Bases de datos temporales

Bases De Datos Temporales4

¿Qué es una Base de Datos Temporal?

Una Base de Datos Temporal

es aquella que almacena datos

históricos y datos actuales.

Page 5: Bases de datos temporales

Bases De Datos Temporales5

Motivación

Muchas de las aplicaciones de tecnología de basesde datos son temporales por naturaleza.

Desarrollar un modelo que potencie la gestióntemporal de la información:

– Finanzas: Cotizaciones bursátiles, contabilidad, cuentas bancarias...

– Reservas: Vuelos, trenes, hoteles...

– Ciencia: Monitorización meteorológica...

– Recursos humanos

– Registros sanitarios

– …

Page 6: Bases de datos temporales

Bases De Datos Temporales6

Ejemplo: Bernardo (I)

Bernardo Sabina nació un soleado 6 de marzo de 1985 en Zaragoza.Su madre registró su nacimiento al día siguiente.

Tras acabar sus estudios de Ingeniería el 15 de junio de 2007,Bernardo se mudó ese mismo día a Torrevieja a venderhamburguesas con queso.

Sin embargo, no registró su mudanza hasta el 25 de junio, ya quetenía una competición nacional de tenis de mesa.

Pese a tener un futuro prometedor, Bernardo murió el 20 deseptiembre 2012 de un baldosazo en la cabeza en el CPS, cuando ibaa ver la presentación del PFC de su hermano. El equipo forense CpSIregistró su muerte el mismo día.

Page 7: Bases de datos temporales

Bases De Datos Temporales7

Ejemplo: Bernardo (II)

¿Qué transacciones SQL se

realizarían con una base de datos

convencional?

Page 8: Bases de datos temporales

Bases De Datos Temporales8

Ejemplo: Bernardo (III)

Fecha Hecho ocurrido Acción de la BD Vista en la BD

6/03/1985 Nace Bernardo. - -

7/03/1985Se registra su

nacimiento.

Inserción:

(Bernardo,Zaragoza)

Bernardo vive en

Zaragoza.

15/06/2007Bernardo se muda a

Torrevieja.-

Bernardo vive en

Zaragoza.

25/06/2007Bernardo registra la

mudanza.

Actualización:

(Bernardo,Torrevieja)

Bernardo vive en

Torrevieja.

20/09/2012Bernardo muere; se

registra el hecho.

Borrado:

Bernardo-

[…] […] […] […]

Page 9: Bases de datos temporales

Bases De Datos Temporales9

Ejemplo: Bernardo (IV)

Tiempo de Validez (TV): se define como el

periodo en el que un hecho es cierto en el

mundo real.

Por ejemplo, el TV de (Bernardo, Zaragoza) es

06/03/85-15/06/07.

Page 10: Bases de datos temporales

Bases De Datos Temporales10

Ejemplo: Bernardo.TablaTV (I)

Nombre Ciudad TVI TVF

Bernardo Zaragoza 06/03/1985 ∞

Page 11: Bases de datos temporales

Bases De Datos Temporales11

Ejemplo: Bernardo.TablaTV (II)

Nombre Ciudad TVI TVF

Bernardo Zaragoza 06/03/1985 ∞

Nombre Ciudad TVI TVF

Bernardo Torrevieja 15/06/2007 ∞

Page 12: Bases de datos temporales

Bases De Datos Temporales12

Ejemplo: Bernardo.TablaTV (III)

Nombre Ciudad TVI TVF

Bernardo Zaragoza 06/03/1985 ∞

Nombre Ciudad TVI TVF

Bernardo Torrevieja 15/06/2007 ∞

Nombre Ciudad TVI TVF

Bernardo Zaragoza 06/03/1985 15/06/2007

Bernardo Torrevieja 15/06/2007 ∞

Page 13: Bases de datos temporales

Bases De Datos Temporales13

Ejemplo: Bernardo (V)

Tiempo de Transacción (TT): se define como el tiempo en el que se ha incluido el hecho en la base de datos.

Datos bitemporales: son aquellos que combinan (almacenan) TV y TT

– Tiempo de validez inicial (TVI)

– Tiempo de validez final (TVF)

– Tiempo de transacción inicial (TTI)

– Tiempo de transacción final (TTF)

Page 14: Bases de datos temporales

Bases De Datos Temporales14

Ejemplo: Bernardo.TablaTT (I)

Registro Nombre Ciudad TVI TVF TTI TTF

1 Bernardo Zaragoza 06/03/85 ∞ 07/03/85 uc

Page 15: Bases de datos temporales

Bases De Datos Temporales15

Ejemplo: Bernardo.TablaTT (II)

Registro Nombre Ciudad TVI TVF TTI TTF

1 Bernardo Zaragoza 06/03/85 ∞ 07/03/85 uc

Registro Nombre Ciudad TVI TVF TTI TTF

1 Bernardo Zaragoza 06/03/85 ∞ 07/03/85 25/06/07

2 Bernardo Zaragoza 06/03/85 15/06/07 25/06/07 uc

3 Bernardo Torrevieja 15/06/07 ∞ 25/06/07 uc

Page 16: Bases de datos temporales

Bases De Datos Temporales16

Ejemplo: Bernardo.TablaTT (III)

Registro Nombre Ciudad TVI TVF TTI TTF

1 Bernardo Zaragoza 06/03/85 ∞ 07/03/85 uc

Registro Nombre Ciudad TVI TVF TTI TTF

1 Bernardo Zaragoza 06/03/85 ∞ 07/03/85 25/06/07

2 Bernardo Zaragoza 06/03/85 15/06/07 25/06/07 uc

3 Bernardo Torrevieja 15/06/07 ∞ 25/06/07 uc

Registro Nombre Ciudad TVI TVF TTI TTF

1 Bernardo Zaragoza 06/03/85 ∞ 07/03/85 25/06/07

2 Bernardo Zaragoza 06/03/85 15/06/07 25/06/07 uc

3 Bernardo Torrevieja 15/06/07 ∞ 25/06/07 20/09/12

4 Bernardo Torrevieja 15/06/07 20/09/12 20/09/12 uc

Page 17: Bases de datos temporales

Bases De Datos Temporales17

Posible aplicación

Una aplicación inmediata de este tipo de Bases deDatos es aquella que se ejecuta en un entornodonde se aplican cambios en Tiempo Real.

Por ejemplo, las transacciones bancarias incluyen tiempo inicial de transacción y tiempo final de transacción.

Son BD llamadas de Restauración o Rollback, yaque permiten retroceder al estado de la BD en uninstante de tiempo pasado, recuperando todas lasversiones anteriores.

Page 18: Bases de datos temporales

Bases De Datos Temporales18

Operaciones de escritura

Inserción: Se crea una versión actual del dato, TVI correspondiente y TVF = ∞.

Eliminación: Actualiza el TVF del dato y pasa a ser histórico (sin ningún registro actual).

Modificación: Eliminación + Inserción.

Page 19: Bases de datos temporales

Bases De Datos Temporales19

Problemas: claves y restricciones

Las claves primarias ya no son válidas.

¿Qué claves primarias usamos en BDT?

Aparecen nuevas restricciones.

¿Cuáles son y cómo las tratamos?

Page 20: Bases de datos temporales

Bases De Datos Temporales20

Claves (I): Intervalo

Un intervalo es una tupla del tipo:

– [inicial, final]

– En nuestro caso: [fecha inicial, fecha final]

Debe cumplir las siguientes restricciones:

– Existencia de un ordenamiento total.

– Existencia de inicio y fin; inicio <= fin.

– Función sucesora (¿granularidad?)

Page 21: Bases de datos temporales

Bases De Datos Temporales21

Claves (II): Granularidad

Granularidad: es una partición en grupos de elementos

ordenados en un dominio temporal.

Gránulo: es un valor dentro de la granularidad elegida

para un propósito.

Para que nos entendamos…

– Gránulo: día. No distinguirá entre fechas de un mismo día.

– Gránulo: mes. No distinguirá entre fechas de un mismo mes.

Page 22: Bases de datos temporales

Bases De Datos Temporales22

Claves (III)

Si usamos una BD convencional, utilizaríamos como clave “Nombre” (Bernardo).

Una clave primaria en BDT debe incluir:– Características de clave primaria de BD convencional

– Un intervalo (y por tanto sus restricciones)

– Restricciones de contigüidad y solapamiento.

Si insertas un nuevo dato con un intervalo no contiguo, ERROR!

Si insertas un nuevo dato con un intervalo que se solapa con otro, ERROR!

Una buena clave para Bernardo es:(Nombre, TVI, TVF)

Page 23: Bases de datos temporales

Bases De Datos Temporales23

Implementación (I)

1. Una sola tabla contiene todas las tuplas actuales e históricas.

2. Partición horizontal: crear dos tablas, una para la información válida y otra para la información histórica.

3. Partición vertical: se distribuyen los atributos de la relación temporal en distintas relaciones, los atributos que se actualizan a la vez se ponen en la misma relación.

Page 24: Bases de datos temporales

Bases De Datos Temporales24

Implementación.operadores(I)

Al igual que existen operadores de entidades para el álgebra relacional existen operadores para tratar intervalos:

– START(I): primer valor del intervalo I

– END(I): ultimo valor del intervalo I

START (I) <= END(I)

– IN(I): si s es un valor que cumple que s IN(i)=TRUE, si y sólo si se cumple:

((START(I) <= s) AND (s <= END(I))

¡Por definición siempre hay al menos un punto I en un intervalo!

Page 25: Bases de datos temporales

Bases De Datos Temporales25

Implementación.operadores(II)

Operadores de comparación:

Sean I1= [i1, f1]; I2=[i2, f2] ; intervalos de tipo INTERVAL (tp), donde I1= I2 si y sólo si i1= i2 y f1=f2

I1 BEFORE I2: es cierto si y sólo si f1< i2 es verdadero [i1,f1][i2,f2]

I1 MEETS I2: es cierto si y sólo si i2 = f1+1 ó i1 = f2+1, es decir, alguno es

verdadero [i1, f1][i2=f1+1, f2] ó [i2, f2][i1=f2+1,f1])

I1 OVERLAPS I2: es cierto si y sólo si i1 <= f2 y i2 <= f1 son ambos ciertos. Es

decir [i2 [i1, f1] f2] o [i1[i2, f1] f2]

I1 DURING I2: es cierto si y sólo si i2 <= i1 y f2 >= f1 son ambos verdaderos [i2 [i1, f1]f2]

I1 START I2: es cierto si y sólo si i1 = i2 y f1 <= f2 son ambos verdaderos [i1=i2,f1]f2]

I1 FINISHES I2: es cierto si y sólo si f1 = f2 y i1 >= i2 son ambos verdaderos [i2[i1,f1=f2]

Page 26: Bases de datos temporales

Bases De Datos Temporales26

Implementación.operadores(III)

Más operadores de comparación:I1 MERGES I2: es cierto si y sólo si I1 MEETS I2 es verdadero ó I1

OVERLAPLS I2: es verdadero

I1 CONTAINS I2: es verdadero si y sólo si I2 DURING I1 es verdadero.

DURATION (I1): devuelve la cantidad de puntos que hay en el intervalo I1

Operadores de intervalos que producen intervalosI1 UNION I2: produce [MIN (i1,i2),MAX (f1,f2)] cuando I1 MERGES I2 es verdadero y en caso contrario

indefinido

I1 INTERSECT I2: produce [MAX(i1,i2), MIN(f1,f2)] cuando I1 OVERLAPS I2 es verdadero y queda indefinido en otro caso.

Operadores sobre conjuntos de intervalosUNFOLD: desglosa intervalos en unidades menores

COALESCE: agrupo intervalos en unidades mayores

Page 27: Bases de datos temporales

Bases De Datos Temporales27

Sistemas de Gestión de BDT

Los SGBD comerciales (Oracle,

Sybase, Informix, O2…) NO son

capaces de realizar gestión

temporal en validez y en

transacción simultáneamente.

Page 28: Bases de datos temporales

Bases De Datos Temporales28

Sistemas de Gestión de BDT (II)

Existen varias estrategias desarrolladas:

Extensiones temporales a lenguajes existentes

– TSQL2

Auténticos SGBD temporales

– TimeDB

– Tiger

– Time Series Cartridge

Page 29: Bases de datos temporales

Bases De Datos Temporales29

TSQL2

TSQL2 es una extensión temporal aSQL92, posiblemente, la más conocida

En 1994 un comité encabezado porRichard T. Snodgrass (Universidad deArizona) produjo el lenguaje deespecificación ACM SIGMOD Record,semilla de TSQL2, que fue diseñado en elmismo año

Las construcciones e ideas de TSQL2 hansido propuestas para ser incorporadas aSQL3

Page 30: Bases de datos temporales

Bases De Datos Temporales30

TimeDB (I)

TimeDB es un SGBDT basado en SQL

Fue desarrollado por Andreas Steiner(Instituto Federal Suizo de Tecnología,Zurich) en su Ph.D

Su última versión (2.0) está basada enJava, usa JDBC, posee una API y ofrecemayor funcionalidad

Soporta TSQL2

Page 31: Bases de datos temporales

Bases De Datos Temporales31

TimeDB (II): Ejemplos

Queremos crear la Tabla Temporal que almacene a Bernardo.

CREATE TABLE PERSONA

(Nombre char[20], Ciudad char[20])

AS VALIDTIME AND TRANSACTIONTIME.

Notar que el SG debería permitir opcionalmente especificar la granularidad (hora, día, mes…).

Page 32: Bases de datos temporales

Bases De Datos Temporales32

TimeDB (III): Ejemplos

Queremos insertar una fila:

VALIDTIME PERIOD ’06/03/85-forever’

INSERT INTO PERSONA (‘Bernardo’, ‘Zaragoza’)

Notar que el TT debería calcularlo el SG automáticamente

Page 33: Bases de datos temporales

Bases De Datos Temporales33

TimeDB (IV): Ejemplos

Queremos realizar una consulta:

VALIDTIME

SELECT CIUDAD FROM Persona

WHERE NOMBRE=‘BERNARDO’

Datos actuales: dónde vive Bernardo ahora.

Page 34: Bases de datos temporales

Bases De Datos Temporales34

TimeDB (V): Ejemplos

Queremos realizar una consulta:

TRANSACTIONTIME

SELECT CIUDAD FROM Persona

WHERE NOMBRE=‘BERNARDO’

Datos históricos: dónde ha vivido Bernardo en el

pasado.

Page 35: Bases de datos temporales

Bases De Datos Temporales35

TimeDB (VI): Ejemplos

Queremos realizar una consulta:

VALIDTIME AND TRANSACTIONTIME

SELECT CIUDAD FROM Persona

WHERE NOMBRE=‘Bernardo’

Datos actuales e históricos: dónde ha vivido

Bernardo en el pasado, y dónde vive ahora.

Page 36: Bases de datos temporales

Bases De Datos Temporales36

Conclusiones

Las SGBDT amplían la potencia de muchos de los tipos de SGBD existentes en la actualidad.

Podríamos crear una BDR a partir de una BDT.

Sin embargo, si no se desea una gestión temporal, podríamos estar usando recursos innecesariamente.

¿Y si se consigue eficiencia máxima en el tratamiento de las fechas?

¿Desaparición de las BDR?

Page 37: Bases de datos temporales

Bases De Datos Temporales37

Preguntas