Вы находитесь на странице: 1из 69

BASES DE DATOS TEMPORALES

Bases de Datos Avanzadas


Facultad de Ciencia y Tecnologa UADER
-2013 -

Bases de Datos Temporales


Una BASE DE DATOS TEMPORAL es
aquella que contiene datos histricos
en vez (o adems) de datos actuales.
(C.J. Date).

Bases de Datos Temporales


Introduccin

La

posicin extrema es que los datos de estas bases de


datos slo son insertados y nunca son eliminados ni
actualizados y en este caso, la base de datos contiene
solamente datos histricos.
El

otro extremo es la base de datos instantnea que


contiene solamente datos actuales, y los datos son
eliminados o actualizados cuando los hechos representados
por stos dejan de ser ciertos (en otras palabras, una base
de datos instantnea es simplemente una base de datos
como la entendemos comnmente y no una base de datos
temporal).

Bases de Datos Temporales


Introduccin
A manera de ejemplo, considere la base de datos de
proveedores y partes de la figura.

Bases de Datos Temporales


Introduccin
Esta base de datos es por supuesto una base de datos de
instantnea y muestra entre otras cosas que el status del
proveedor V1 es 20.
Una versin temporal de esta base de datos podra mostrar
no slo que el status es actualmente 20, sino tambin que
ha sido 20 desde el 1 de julio y que tal vez era 15 desde el
5 de abril hasta el 30 de junio, y as sucesivamente.
En una base de datos de instantnea, el tiempo de la
instantnea es tomado generalmente como "ahora" (es
decir, el momento en el cual se est inspeccionando en
realidad a la base de datos).

Bases de Datos Temporales


Introduccin

La caracterstica distintiva de una


base de datos temporal es, por
supuesto, el tiempo mismo.

Bases de Datos Temporales


Introduccin
DATOS TEMPORALES
Si los datos son una representacin codificada de los hechos,
entonces los datos temporales son una representacin
codificada de hechos con marcas de tiempo.
En una base de datos temporal (de acuerdo a la
interpretacin extrema de este trmino) todos los datos son
temporales, lo que significa que cada hecho registrado tiene
una marca de tiempo. De esto se desprende que una relacin
temporal es aquella en la cual cada tupla incluye al menos
una marca de tiempo (es decir, el encabezado incluye al
menos un atributo de algn tipo de marca de tiempo).

Bases de Datos Temporales


Introduccin
DATOS TEMPORALES
Podemos decir entonces que una base de datos temporal
(relacional) es aquella en la cual todas las relaciones son
temporales.
Esta es una definicin razonablemente precisa del concepto
"base de datos temporal" (en su forma extrema).
Ahora descartamos ese concepto. Lo descartamos debido a que
aunque las relaciones originales en la base de datos sean todas
temporales, muchas relaciones que pueden derivarse de esa
base de datos (como los resultados de consultas) no son
temporales.

Bases de Datos Temporales


Introduccin
DATOS TEMPORALES
Por ejemplo, la respuesta a la consulta "obtener los nombres
de todas las personas que hemos empleado alguna vez"
obtenida a partir de alguna base de datos temporal, no es
una relacin temporal en s misma. Y seria un poco extrao
que un DBMS nos permitiera obtener resultados que por s
mismos que no pudieran ser conservados en la base de datos.
Por lo tanto, tomamos a una base de datos temporal como
una base de datos que incluye algunos datos temporales,
pero que no est limitada simplemente a los datos
temporales.

Bases de Datos Temporales


Introduccin

Una BASE DE DATOS TEMPORAL


es aquella que contiene datos
histricos y datos actuales.

Bases de Datos Temporales


Introduccin
ALGUNOS CONCEPTOS Y CUESTIONES BASICAS
1. El proveedor V1 fue nombrado (es decir, colocado bajo
contrato) en el 1 de julio de 1999.
2. El proveedor V1 ha sido un proveedor contratado a
partir del 1 de julio de 1999.
3. El proveedor V1 fue un proveedor contratado durante el
periodo que va del 1 de julio de 1999 hasta el da actual.

Bases de Datos Temporales


Introduccin
ALGUNOS CONCEPTOS Y CUESTIONES BASICAS
Cada una de estas declaraciones es una interpretacin
posible de una tupla que contiene el nmero de proveedor
"V1" y la marca de tiempo "1 de julio de 1999", y cada una
de stas podra ser adecuada para esa tupla si apareciera
en una base de datos instantnea que representara la
situacin actual en alguna empresa.
Las preposiciones en negritas en, a partir y durante
caracterizan las diferentes interpretaciones.
RELACION X[ atributo 1 (V1), , atributo n (01/07/1999) ]

Bases de Datos Temporales


Introduccin
ALGUNOS CONCEPTOS Y CUESTIONES BASICAS
Podemos argumentar que las declaraciones 1, 2 y 3 en
realidad estn diciendo lo mismo en forma ligeramente
diferente. De hecho, tomamos como equivalentes a las
declaraciones 2 y 3, aunque no a la 1 y la 2 (ni la 1 y la 3).
Consideramos:
- La declaracin 1 establece claramente que V1 no fue un
proveedor contratado en la fecha (30 de junio de 1999) que
precede a la fecha de nombramiento especificada; la
declaracion 2 no establece ese hecho ni lo implica.

Bases de Datos Temporales


Introduccin
ALGUNOS CONCEPTOS Y CUESTIONES BASICAS
- Suponga que hoy ("el da actual") es el 25 de septiembre
del 2000. Entonces la declaracin 2 establece claramente
que V1 fue un proveedor contratado en cada uno de los
das que van desde el 1 de julio de 1999 hasta el 25 de
septiembre del 2000 (inclusive); la declaracin 1 ni
establece ese hecho ni lo implica.
Por lo tanto, las declaraciones 1 y 2 no son equivalentes y
ninguna de ellas implica a la otra.

Bases de Datos Temporales


Introduccin
ALGUNOS CONCEPTOS Y CUESTIONES BASICAS
Una vez dicho esto, las tuplas en una base de datos
instantnea con frecuencia incluyen atributos como "fecha
de nombramiento", hay que analizar cuidadosamente la
interpretacin pretendida.

Bases de Datos Temporales


Introduccin
ALGUNOS CONCEPTOS Y CUESTIONES BASICAS
Obsrvese que la declaracin 1 expresa un tiempo en el
cual se realiz determinado evento y en cambio, las
declaraciones 2 y 3 expresan un intervalo de tiempo
durante el cual persisti un estado determinado.
Las bases de datos clsicas (instantneas) pueden
manejar razonablemente bien los instantes de tiempo (los
tiempos en los cuales suceden los eventos), pero no
manejan muy bien los intervalos de tiempo (periodos
durante los cuales persisten los estados).

Bases de Datos Temporales


Introduccin
ALGUNOS CONCEPTOS Y CUESTIONES BASICAS
Observe a continuacin que aunque las declaraciones 2 y 3
son
lgicamente
equivalentes,
su
forma
es
significativamente diferente. Para ser ms especficos, la
forma de la declaracin 2 no puede ser usada para registros
histricos, mientras que la declaracin 3 s (siempre y
cuando la frase "el da actual" sea reemplazada en esa
declaracin con alguna fecha explcita, digamos 25 de
septiembre del 2000).
Esto es porque necesito el inicio y el fin del periodo
de tiempo para considerarlo histrico.

Bases de Datos Temporales


Introduccin
ALGUNOS CONCEPTOS Y CUESTIONES BASICAS
Concluimos que el concepto "durante" es muy importante
para registros histricos; al menos para los datos de estado
aunque no para los datos de evento.
Notar que a pesar del uso de trminos como "registros
histricos", las bases de datos temporales tambin pueden
contener informacin que se refiere al futuro.
Por ejemplo, tal vez queramos registrar el hecho de que el
proveedor V1 ser un proveedor contratado durante el
periodo desde a hasta b (donde a y b son fechas en el
futuro).

Bases de Datos Temporales


Introduccin
TERMINOLOGIA
A los tiempos en los cuales sucedi determinado evento (o
al intervalo durante el cual persisti determinado estado) se
les conoce a veces como tiempo vlido. El tiempo de
validez se define como el tiempo en el cual un hecho es
cierto en el mundo real.
Es diferente al tiempo de transaccin, el cual es el
conjunto de tiempos en los que estuvo un hecho
representado en la base de datos como verdadera.

Bases de Datos Temporales


Introduccin
TERMINOLOGIA
Los tiempos vlidos pueden ser actualizados pero los
tiempos de transaccin no; es decir, los tiempos de
transaccin son mantenidos completamente por el sistema
y no est permitido que los usuarios los cambien, (estn
generalmente grabados, explcita o implcitamente, en la
bitcora de transacciones, log, diario, etc.).

Bases de Datos Temporales


Introduccin
TERMINOLOGIA
Nota: Las referencias a intervalos y conjuntos de tiempos
presentan una idea simple, pero fundamental, de que un
intervalo que tiene un tiempo inicial s y un tiempo de
terminacin e, denota de hecho el conjunto de todos los
tiempos t tales que s < t < e.
Donde "<" significa "antes que".

Bases de Datos Temporales


Introduccin
PREGUNTAS Y RESPUESTAS
Pregunta:
Acaso la expresin "todos los tiempos t tales que s < t <
e" no presenta el espectro de los conjuntos infinitos y las
dificultades conceptuales y computacionales que sufren
estos conjuntos ?.

Bases de Datos Temporales


Introduccin
PREGUNTAS Y RESPUESTAS
Respuesta:
S. Pero descartamos el espectro y sorteamos las
dificultades adoptando la suposicin de que la "lnea de
tiempo" consiste en una secuencia finita de unidades de
tiempo (crono, chronon, quantum) independientes e
indivisibles. El intervalo con tiempo inicial s y tiempo final e
involucra por lo tanto una cantidad finita de tales unidades.

Bases de Datos Temporales


Introduccin
PREGUNTAS Y RESPUESTAS
Pregunta:
Las declaraciones 1, 2 y 3 parecen suponer que las
unidades de tiempo (los cronos, chronon, quantum de
tiempo) son das, pero con seguridad el sistema soporta
precisiones de tiempo de hasta pequeas fracciones de
segundo. Si V1 fue un proveedor el 1 de julio de 1999 pero
no el 30 de junio de 1999, qu va hacer con el periodo que
supuestamente hay entre el inicio del 1 de julio hasta el
preciso instante del nombramiento, y durante el cual V1
todava no estaba oficialmente contratado?

Bases de Datos Temporales


Introduccin
PREGUNTAS Y RESPUESTAS
Respuesta:
Necesitamos distinguir cuidadosamente entre los quantum de
tiempo como tales, que son la unidad de tiempo ms pequea
que el sistema puede representar, y las unidades de tiempo
tiles para algn propsito en particular, y que pueden ser aos,
meses, das, semanas, etctera.
A estas unidades tiles de tiempo las llamamos puntos de
tiempo (las abreviamos como puntos) para enfatizar el hecho
de que para lo que estamos haciendo, tambin los
consideramos indivisibles.

Bases de Datos Temporales


Introduccin
PREGUNTAS Y RESPUESTAS
Respuesta:
Ahora podramos decir informalmente que un punto de tiempo es
"una seccin en la lnea del tiempo" - es decir, el conjunto de
quantum de tiempo - que se alarga desde un quantum "lmite" al
siguiente (por ejemplo, desde la media noche de un da hasta la
media noche del da siguiente).
Por lo tanto, podramos decir (de nuevo informalmente) que los
puntos de tiempo tienen una duracin, que en nuestro ejemplo es
de un da. Sin embargo, formalmente los puntos de tiempo son
(repitiendo) indivisibles y el concepto estricto de duracin no puede
ser aplicado.

Bases de Datos Temporales


Introduccin
PREGUNTAS Y RESPUESTAS
Respuesta:
Utilizamos el trmino (informal) granularidad, la cual
definimos (otra vez informalmente) como la duracin del
punto de tiempo aplicable.
Por lo tanto, podemos decir que en nuestro ejemplo la
granularidad es de un da, para indicar que dejamos a un
lado - en este contexto - nuestra nocin usual de que un da
est compuesto de horas, que a su vez estn compuestas de
minutos, etctera, (tales nociones pueden ser expresadas
slo recurriendo a niveles ms finos de granularidad).

Bases de Datos Temporales


Introduccin
PREGUNTAS Y RESPUESTAS
Respuesta:
La confusin sobre si quantums y grnulos son
intervalos procede de una confusin entre la intuicin
y el formalismo. Una creencia intuitiva acerca de la
manera en que funciona el mundo es una cosa; un
modelo formal es algo completamente diferente. En
particular, podemos creer que la lnea de tiempo es
continua e infinita, pero la modelamos - para efectos
de clculos en particular - como independiente y
finita.

Bases de Datos Temporales


Introduccin
PREGUNTAS Y RESPUESTAS
Pregunta:
Tomando en cuenta entonces que la lnea de tiempo es
bsicamente una secuencia de puntos de tiempo (de alguna
granularidad), podemos referirnos sin confusin al "tiempo
inmediatamente subsiguiente" (o precedente) de cualquier
punto dado. Est correcto?

Bases de Datos Temporales


Introduccin
PREGUNTAS Y RESPUESTAS
Respuesta:
S. Con respecto a lo que nos interesa, el inicio del tiempo
es un punto de tiempo que no tiene predecesor y el final del
tiempo es un punto de tiempo que no tiene sucesor.

Bases de Datos Temporales


Introduccin
PROBLEMAS
Modificamos el ejemplo, en primer lugar eliminamos la
relacin P de partes. Segundo, modificamos la relacin VP de
envos descartando el atributo CANT (y dejando solamente
V# y P#) e interpretamos esa relacin VP modificada como:
"El proveedor V# es actualmente capaz de proporcionar la
parte P#
En otras palabras, en vez de referirnos a los envos reales de
partes hechos por los proveedores, ahora la relacin se
refiere solamente a envos potenciales; es decir, a la
capacidad de los proveedores para proporcionar partes.

Bases de Datos Temporales


Introduccin
PROBLEMAS
La figura es una versin modificada del ejemplo anterior.
Observe cuidadosamente que la base de datos sigue siendo
instantnea; an no incluye ningn aspecto temporal.

Bases de Datos Temporales


Introduccin
PROBLEMAS
Veamos algunas restricciones y consultas simples para esta
base de datos. Posteriormente consideraremos lo que les
sucede a estas restricciones y consultas cuando la base de
datos es extendida para incluir diversas caractersticas
temporales.

Bases de Datos Temporales


Introduccin
PROBLEMAS
Restricciones (base de datos de instantnea actual). Las
nicas restricciones que queremos considerar son las
restricciones de clave. (PK y FK)
Slo para recordarlo, {V#} y {V#, P#} son las claves
primarias de V y VP respectivamente, y {V#} es una clave
externa en VP que hace referencia a la clave primaria de V
(ignoramos la clave externa {P#}, eliminamos la relacin
P).
NO ENCONTRAMOS NINGUNA DIFICULTAD EN ESTO.

Bases de Datos Temporales


Introduccin
PROBLEMAS
Consultas (base de datos de instantnea actual).
Consideramos solamente dos consultas, ambas muy simples:
Consulta 1.1: Obtener los nmeros de proveedor de los
proveedores que pueden proporcionar actualmente alguna
parte.
VP { V# }
Proyeccin simple de V# en VP.

Bases de Datos Temporales


Introduccin
PROBLEMAS
Consulta 1.2: Obtener los nmeros de proveedor de los
proveedores que no pueden proporcionar actualmente
ninguna parte.
V { V# } MINUS VP { V# }
Diferencia entre dos proyecciones.
NO ENCONTRAMOS
CONSULTAS.

NINGUNA

DIFICULTAD

EN

ESTAS

Bases de Datos Temporales


Introduccin
PROBLEMAS
Tratamiento "semitemporal" de proveedores y envos
Para continuar, nuestro siguiente paso es tratar en forma
"semitemporal" (por decirlo as) a las relaciones V y VP
aadiendo un atributo de marca de tiempo, A_PARTIR_DE,
a
cada
una
y
renombrndolas
adecuadamente.
Renombramos a V como V_ A_PARTIR_DE y a VP como VP_
A_PARTIR_DE.

Bases de Datos Temporales


Introduccin
PROBLEMAS
La versin modificada del ejemplo anterior es,

Bases de Datos Temporales


Introduccin
PROBLEMAS
Para simplificar, no mostramos las marcas de tiempo
autnticas; en su lugar, usamos smbolos de la forma dO1,
dO2, etctera, donde la "d" puede pronunciarse
adecuadamente como "da", una convencin a la cual nos
adherimos para este ejemplo. Por lo tanto, nuestros
ejemplos hacen uso de puntos de tiempo que son
especficamente das. Suponemos que el da 1 precede
inmediatamente al da 2, el da 2 precede inmediatamente
al da 3 y as sucesivamente.

Bases de Datos Temporales


Introduccin
PROBLEMAS
El predicado para V_A_PARTIR_DE es:
"el proveedor V# ha sido nombrado PROVEEDOR, ha
tenido el status STATUS, ha estado ubicado en la
ciudad CIUDAD y ha estado contratado a partir del
da A_PARTIR_DE".
El predicado para VP_A_PARTIR_DE es:
"el proveedor V# ha podido proporcionar la parte P#
a partir del da A_PARTIR_DE".

Bases de Datos Temporales


Introduccin
PROBLEMAS
Restricciones (base de datos semitemporal). Las claves
primaria y externa para esta base de datos "semitemporal" son
las mismas que antes.
Sin embargo, necesitamos una restriccin adicional, que puede
ser vista como un aumento a la restriccin de clave externa de
VP_A_PARTIR_DE hacia V_A_PARTIR_DE, para expresar el hecho
de que ningn proveedor puede proporcionar parte alguna antes
de estar contratado.
En otras palabras, si la tupla vp en VP_A_PARTIR_DE hace
referencia a la tupla v en V_A_PARTIR_DE, el valor de
A_PARTIR_DE en vp no debe ser menor que el que est en v.

Bases de Datos Temporales


Introduccin
PROBLEMAS
Formulamos la siguiente restriccin:
CONSTRAINT AUM_VP_TO_V_FK
IS_EMPTY ( ( ( V_A_PARTIR_DE RENAME A_PARTIR_DE AS VA )
JOIN ( VP_A_PARTIR_DE RENAME A_PARTIR_DE AS VPA ) )
WHERE VPA < VA );
Con este ejemplo comenzamos a vislumbrar el problema.
Tomando una base de datos "semitemporal", como la de la
figura, probablemente tendremos que establecer muchas
restricciones de "clave externa aumentada" como sta, y pronto
comenzaremos a desear poder contar con alguna facilidad
adecuada para este propsito.

Bases de Datos Temporales


Introduccin
PROBLEMAS
Consultas (base de datos semitemporal). Ahora consideramos
las versiones "semitemporales" de las consultas 1.1 y 1.2.
Consulta 2.1: Obtener los nmeros de los proveedores que
actualmente pueden proporcionar alguna parte, mostrando en
cada caso la fecha desde la cual han podido hacerlo.
Si el proveedor Vx puede proporcionar actualmente varias
partes, entonces Vx ha podido proporcionar alguna parte desde
la fecha A_PARTIR_DE ms temprana mostrada para Vx en
VP_A_PARTIR_DE (por ejemplo, si Vx es V1, esa fecha
A_PARTIR_DE ms temprana es dO4).

Bases de Datos Temporales


Introduccin
PROBLEMAS
Por lo tanto:
RESOLVER EN SQL, ENCONTRAR EL A_PARTIR_DE MINIMO
DE VP_A_PARTIR_DE PARA UN MISMO V#.
Resultado:

Bases de Datos Temporales


Introduccin
PROBLEMAS
Consulta 2.2: Obtener los nmeros de proveedor que no
pueden proporcionar actualmente cualquier parte en
absoluto, mostrando en cada caso la fecha a partir de la cual
no han podido hacerlo.
En nuestros datos de ejemplo, slo hay un proveedor que no
puede proporcionar actualmente parte alguna, el proveedor
V5. Sin embargo, no podemos deducir la fecha a partir de la
cual V5 ha estado contratado pero sin poder proporcionar
alguna parte, debido a que no hay la informacin suficiente
en la base de datos (la base de datos es todava slo
"semitemporal").

Bases de Datos Temporales


Introduccin
PROBLEMAS
Por ejemplo, suponga que d10 es el da actual. Entonces podra
ser que V5 hubiera podido proporcionar al menos alguna parte
desde hace algn tiempo como d02, cuando V5 fue contratado
por primera vez, hasta algn tiempo despus d09; o si nos
vamos al otro extremo, podra ser que V5 nunca hubiera podido
proporcionar en absoluto parte alguna.
Para tener alguna esperanza de responder la consulta 2.2
debemos terminar el tratamiento "temporal" de nuestra base de
datos, o al menos la parte VP de ella. Para ser ms precisos,
debemos mantener registros histricos en la base de datos que
muestren cules proveedores pudieron proporcionar cules
partes y en qu momento. (Recordar que para ser histrico
debo saber el inicio y el fin).

Bases de Datos Temporales


Introduccin
PROBLEMAS
Tratamiento "temporal" de proveedores y envos

Bases de Datos Temporales


Introduccin
PROBLEMAS
La figura muestra una versin temporal de proveedores y envos.
Observe que los atributos A_PARTIR_DE se han convertido en
atributos DESDE, y cada relacin ha adquirido un atributo adicional
de marca de tiempo llamado HASTA. Los atributos DESDE y HASTA
juntos expresan la nocin de un intervalo de tiempo durante el
cual algo es verdadero; por esa razn, reemplazamos
A_PARTIR_DE por DESDE_HASTA en los nombres de las relaciones.
Puesto que ahora estamos llevando registros histricos, hay ms
tuplas en esta base de datos que las que haba en sus
predecesoras. Para ser ms claros, vamos a dar por hecho que la
fecha actual es d10 y por lo tanto, d10 aparece como el valor
HASTA para cada tupla que se refiere al estado actual de las cosas.

Bases de Datos Temporales


Introduccin
PROBLEMAS
Observe que la base de datos temporal de la figura incluye
toda la informacin de la base semitemporal de la figura
anterior, junto con informacin histrica que se refiere a un
periodo anterior (desde d02 hasta d04), durante el cual el
proveedor V2 estuvo contratado.
El predicado para V_DESDE_HASTA es: "el proveedor V# fue
nombrado PROVEEDOR, tuvo status STATUS, estuvo ubicado
en la ciudad CIUDAD y estuvo contratado desde el da DESDE
(y no en el da inmediatamente anterior a DESDE) hasta el da
HASTA (y no en el da inmediatamente posterior a HASTA)".
El predicado para VP_DESDE_HASTA es similar.

Bases de Datos Temporales


Introduccin
PROBLEMAS
Restricciones (primera base de datos temporal).
En primer lugar necesitamos protegernos contra el absurdo
de un par DESDE-HASTA en el cual el punto de tiempo de
HASTA sea anterior al punto de tiempo de DESDE:
CONSTRAINT V_DESDE_HASTA_OK
IS_EMPTY ( V_DESDE_HASTA WHERE HASTA < DESDE ) ;
CONSTRAINT VP_DESDE_HASTA_OK
IS_EMPTY ( VP_DESDE_HASTA WHERE HASTA < DESDE ) ;

Bases de Datos Temporales


Introduccin
PROBLEMAS
Observemos las claves primarias, debemos incluir el
atributo DESDE en la clave primaria para V_DESDE_HASTA
y VP_DESDE_HASTA.
La clave primaria de V_DESDE_HASTA obviamente no
puede ser slo {V#}, porque entonces no podramos tener
al mismo proveedor contratado por ms de un periodo
continuo.
Una
observacin
similar
se
aplica
a
VP_DESDE_HASTA.

Bases de Datos Temporales


Introduccin
PROBLEMAS
Sin embargo, estas claves primarias no capturan por s
mismas todas las restricciones que quisiramos. Considere
por ejemplo a la relacin V_DESDE_HASTA. Debe quedar
claro que si hay una tupla para el proveedor Vx en esa
relacin con el valor s en DESDE y el valor t en HASTA,
entonces queremos que no haya una tupla para el
proveedor Vx en esa relacin que indique que Vx estaba
contratado en el da inmediatamente anterior a s o en el da
inmediatamente posterior a t.

Bases de Datos Temporales


Introduccin
PROBLEMAS
Por ejemplo, considere al proveedor V1 para el que slo
tenemos una tupla V_DESDE_HASTA con DESDE = d04 y
HASTA = d10. El simple hecho que (V#, DESDE) sea la
clave primaria para esta relacin es claramente insuficiente
para impedir la aparicin de una tupla V1 adicional "que se
superponga" con (digamos) DESDE = d02 y HASTA = d06;
lo que indica, entre otras cosas, que V1 estuvo contratado
el da inmediatamente anterior a d04. Queda claro que lo
que nos gustara es que estas dos tuplas de V1 se fundieran
en una sola tupla con DESDE = d02 y HASTA = d10.

Bases de Datos Temporales


Introduccin
PROBLEMAS
El hecho de que {V#, DESDE} sea la clave primaria de
V_DESDE_HASTA tambin es insuficiente para impedir la
aparicin de una tupla V1 "contigua" con (digamos) DESDE
= d02 y HASTA = d03, que indique de nuevo que V1 estuvo
contratado en el da inmediato anterior a d04. Igual que
antes, lo que nos gustara es que las tuplas se fundieran en
una sola tupla.

Bases de Datos Temporales


Introduccin
PROBLEMAS
Esta es una restriccin que prohbe dicha superposicin y
contigidad:
CONSTRAINT AUM_V_DESDE_HASTA_PK
IS_EMPTY ( ( ( V_DESDE_HASTA RENAME DESDE AS D1,
HASTA AS H1 ) JOIN ( V_DESDE_HASTA RENAME DESDE AS
D2, HASTA AS H2 ) ) WHERE ( H1 > D2 AND H2 > D1 ) OR
( D2 H1+1 OR D1 = H2+1 ) ) ;
Expresin muy complicada!, sin mencionar que nos hemos
tomado la gran libertad de escribir (por ejemplo) "H1 + 1"
para designar al sucesor inmediato del da indicado por H1.

Bases de Datos Temporales


Introduccin
PROBLEMAS
Obsrvese cuidadosamente que la combinacin de atributos
{V#, DESDE} en la relacin VP_DESDE_HASTA no es una
clave externa de VP_DESDE_HASTA a V_DESDE_HASTA
(aunque involucre a los mismos atributos de la clave
primaria de V_DESDE_HASTA).
Sin embargo, necesitamos asegurarnos que si un
determinado proveedor aparece en VP_DESDE_HASTA,
entonces el mismo proveedor tambin debe aparecer en
V_DESDE_HASTA.

Bases de Datos Temporales


Introduccin
PROBLEMAS
CONSTRAINT AUM_VP_HASTA_V_FK_AGAIN1
VP_DESDE_HASTA { V# } < V_DESDE_HASTA { V# } ;
Usamos "<" con el significado "es un subconjunto de".
Pero la restriccin AUM_VP_HASTA_V_FK_AGAIN1 no es
suficiente por s misma; tambin necesitamos asegurarnos que,
aunque se hayan realizado todas las fusiones deseadas de tuplas,
si VP_DESDE_HASTA muestra a algn proveedor como capaz de
proporcionar alguna parte durante algn intervalo de tiempo,
entonces V_DESDE_HASTA muestra a ese mismo proveedor
como contratado durante ese mismo intervalo de tiempo.

Bases de Datos Temporales


Introduccin
PROBLEMAS
Podemos intentar lo siguiente:
CONSTRAINT AUM_VP_HASTA_V_FK_AGAIN2
IS_EMPTY ( ( ( V_DESDE_HASTA RENAME DESDE AS
VD, HASTA AS VH ) JOIN ( VP_DESDE_HASTA RENAME
DESDE AS VPD, HASTA AS VPH ) ) WHERE VPD < VD OR
VPH > VH ) ;
Sin embargo, esta especificacin es incorrecta.

Bases de Datos Temporales


Introduccin
PROBLEMAS
Para ver por qu, hagamos que V_DESDE_HASTA sea como
se muestra en la figura y que VP_DESDE_HASTA incluya
una tupla para el proveedor V2 con (digamos) DESDE =
d03 y HASTA = d04. Tal arreglo es claramente consistente y
aun as la restriccin AUM_VP_HASTA_V_FK_AGAIN2, como
est establecida, en realidad lo prohbe.
No vamos a resolver este problema aqu, sino mas
adelante.

Bases de Datos Temporales


Introduccin
PROBLEMAS
Consultas (primera base de datos temporal). stas son ahora las
versiones completamente temporales de las consultas 1.1 y 1.2:
Consulta 3.1: Obtener V#-DESDE-HASTA para los proveedores que
hayan podido proporcionar alguna parte en algn tiempo; donde
DESDE y HASTA juntos indican un periodo continuo mximo
durante el cual el proveedor V# pudo de hecho proporcionar alguna
parte.
Nota: Aqu usamos el trmino "mximo" como una abreviatura
conveniente para que signifique (en este caso) que el proveedor V#
no pudo proporcionar parte alguna en el da inmediato anterior a
DESDE o posterior a HASTA.

Bases de Datos Temporales


Introduccin
PROBLEMAS
Consulta 3.2: Obtener V#-DESDE-HASTA para los
proveedores que no hayan podido proporcionar en absoluto
ninguna parte en algn tiempo; donde DESDE y HASTA
juntos indican un periodo continuo mximo durante el cual
el proveedor V# no pudo de hecho proporcionar parte
alguna.

Bases de Datos Temporales


Introduccin
PROBLEMAS
Bien, tal vez quiera hacer una pausa para convencerse de
que, en realidad preferir ni siquiera intentar estas consultas.
Sin embargo, si lo intenta, se encontrar con que pueden ser
expresadas (aunque en forma extremadamente laboriosa).
Por lo tanto, en pocas palabras, el problema de los datos
temporales es que nos conducen hacia restricciones y
consultas que son irracionalmente complejas de especificar;
a menos que el sistema proporcione algunas facilidades
bien diseadas, lo cual (hasta donde sabemos) no hacen los
DBMS comerciales actuales.

Bases de Datos Temporales


Introduccin
CLASIFICACION SEGN R. T. SNODGRASS
Las DBMS comerciales almacenan slo un estado del
mundo real, usualmente el estado ms reciente. Aquellas
bases de datos usualmente son llamadas instantneas
cuyo contexto de tiempo valido y tiempo de transaccin es
ahora mostrado en la siguiente figura:

Bases de Datos Temporales


Introduccin
CLASIFICACION SEGN R. T. SNODGRASS
R. T. Snodgrass clasifica las bases de datos en estticas,
histricas, rollback o bitemporales, segn como se
contemplen, o no, los conceptos anteriores dentro del
esquema.
Las bases de datos estticas no contemplan ni el tiempo de
validez ni de transaccin, no almacenan ninguna de estas
referencias temporales en el modelo que emplean

Bases de Datos Temporales


Introduccin
CLASIFICACION SEGN R. T. SNODGRASS
Las bases de datos histricas contemplan nicamente el
tiempo de validez, almacenan la informacin que
conocemos como vlida, tanto presente como pasada o
futura, pero los cambios producidos en la informacin
(como ha sido la evolucin de las actualizaciones que se
han realizado) no quedan almacenados.

Bases de Datos Temporales


Introduccin
CLASIFICACION SEGN R. T. SNODGRASS
Las bases de datos rollback, en cambio, contienen
exclusivamente tiempo de transaccin, nos permiten
devolver la base de datos a un estado anterior en caso de
que sea necesario, pero no permiten conocer durante que
intervalo de tiempo ha permanecido como valida una
determinada informacin.

Bases de Datos Temporales


Introduccin
CLASIFICACION SEGN R. T. SNODGRASS
Por ltimo, las bitemporales soportan tanto el tiempo de
transaccin como el de validez, por lo que nos dan una
visin ms precisa de la evolucin que ha sufrido la
informacin tanto sobre sus intervalos de validez como de
sus actualizaciones, al contemplar los diferentes estados
por los que pas la informacin, y permitir su recuperacin.

Bases de Datos Temporales


Introduccin
CLASIFICACION SEGN R. T. SNODGRASS
Los estados almacenados en una Base de Datos bitemporal
estn representados en la siguiente figura:

Bases de Datos Temporales


Introduccin

Вам также может понравиться