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: