Está en la página 1de 5

Base De Datos Temporal

BASE DE DATOS TEMPORAL

Las bases de datos temporales, son bases de datos históricas además de transaccionales, se
ve en esta parte sus características, los tiempos en la base de datos temporal, tipos de datos,
y operadores sobre intervalos.
    • BD + Tiempo
        o No hay datos, sino datos temporales
        o Datos + marcas de tiempo
    • La información del sistema, y su evolución
        o Datos Actuales
        o Datos Históricos

[Tesis ing]

1. introducción
Tradicionalmente, las bases de datos tratan de representar una visión de la información
referente al mundo real. Esta información tiene una validez determinada en un instante
determinado, si esa realidad es cambiada el sistema gestor refleja esos cambios mediante
borrados o actualizaciones, así el estado previo de la información se pierde o desprecia.
Este tipo de cambios proviene de la capacidad siempre limitada de almacenamiento, lo cual
en nuestros tiempos se ha ido superando y ahora se puede capturar la evolución de la
información.
La diferencia principal de las bases de datos temporales con el resto de las bases de datos,
es el manejo del tiempo en forma total (pasado, presente y futuro) o parcial (pasado y
presente). En términos generales podemos decir que una base de datos temporal es aquella
que contiene datos históricos en ves (o demás) de datos actuales.
Presentamos a continuación algunas definiciones con respecto a una base de datos
temporales:
“Una base de datos temporales es una base de datos que soporta algunos aspectos de
tiempo, no contando el tiempo definido por el usuario”.
“Una unión de dos o más conjuntos de relaciones Rs y R1, donde Rs es el conjunto de todas
las relaciones estáticas y R1 es el conjunto de todas las relaciones de tiempo variante”.
“Las bases de datos temporales consideran el progreso de los estados de una empresa en un
intervalo de tiempo, en estas bases los datos no cambian y se representan como adiciones a
las bases de datos originales.”...
Una “Base de datos temporal” es un sistema de gestión de base de datos (DBMS) el cual
implementa y trata con especial énfasis aspectos temporales, teniendo un modelo de datos
temporal y una versión temporal del lenguaje de consulta estructurado, (SQL). Entre las diversas
propuestas de implementación, la más extendida es TSQL2.
Especificando más profundamente, los aspectos temporales normalmente incluyen tiempo de
validez y tiempo de transacción. La combinación de estos dos atributos forman un dato
bitemporal.

 Tiempo de validez indica el tiempo en el cual un hecho es verdad en el mundo real.


 Tiempo de transacción indica el tiempo en el cual un hecho está guardado en la base
de datos.
 Dato Bitemporal es la combinación del tiempo de validez y el tiempo transaccional.

Estos dos periodos no tienen que ser idénticos para un mismo hecho. Imagine una base de
datos temporal guardando datos sobre el siglo veinte. El tiempo de validez sobre esos
hechos estará comprendido entre el año 1901 y el año 2000; sin embargo, el tiempo
transaccional empezará cuando insertemos esos hechos en la base de datos, por ejemplo, 25
de diciembre del 2006. (2008, Wikipedia).
Un desarrollador de software puede enfrentarse a un sinfin de problemas al intentar
implementar el paradigma de “bases de datos temporales”. Dejando de lado la
problemática ordinaria que va desde validaciones en los datos de ingreso e instrucciones
recibidas, están las operaciones cuando ya en particular se está trabajando con datos tipo
PERIODO; por ejemplo, que consta de una fecha de inicio y una fecha de fin:
 01/01/2008-01/02/2008) y más complejo aun, operaciones entre periodos pasando por la
gama más conocida de operadores tales como =, <, >, >=, <=, e incluso operaciones muy
particulares como pudieran ser “despuesde”, que es un tipo de dato explícitamente
particular de el micro gestor de “Base de datos temporales” que se intenta implementar.
Situaciones complejas así, y operadores normalmente no definidos suponen un reto y
desafío para ejercitar, practicar y realizar la creación de ”Bases de datos temporales”.
En este caso particular, se sugirió usar algoritmos y mecanismos de software bien
conocidos, como por ejemplo: máquinas de estado finito, teoría de compiladores,
analizadores léxicos, etc. Sin embargo; se decidió iniciar la codificación a la medida de las
necesidades del momento y en particular a la operación asignada: “despuesde”.

La sorpresa fue que al inicio se avanzaba con rapidez, pero una vez que el prototipo
funcionó y comenzó a crecer se volvió necesario hacer uno de un buen diseño y
mecanismos de software conocidos que facilitaran su desarrollo.
A pesar de la falta de ellos, se continúo con el avance del micro gestor de “Bases de datos
temporales” y con cada nueva línea de código se hacía más notable la ausencia de un buen
diseño para el micro gestor.
En concreto, sin intentar olvidar las peripecias que supuso la creación del micro gestor de
“Bases de datos temporales” estos son algunos de los problemas mayormente presentes
durante la codificación:

 Falta de un buen diseño.


 Ausencia de un prototipo funcional.
 La escasez en el uso de mecanismos de software que facilitan su desarrollo.
 La ausencia de validación formal de las operaciones.

Sin embargo, algunas ventajas fueron:

 El conocimiento y uso del lenguaje Java.


 El tamaño mediano del micro gestor.

Dicho lo anterior, es nuestra intención motivar al lector, primero a que ejercite el código
fuente, y entienda de primera mano con un ejemplo sumamente básico el concepto de bases
de datos temporales A través de un micro gestor hecho para tal fin. Se muestran tres
operaciones básicas y estas son: create table, insert into, y select * from. A través del uso de
estas operaciones el lector estará en posición de aprender y jugar. Mejor aún, si está
interesado en echar un vistazo al código fuente y  que sirva como fuente o base para un
desarrollo incremental en el ejercicio y aprendizaje del concepto de bases de datos
temporales.
A continuación se muestra un diagrama abstracto de la arquitectura del micro gestor de
“Bases de datos temporales”

Figura 1. Diagrama de arquitectura.

 En el código fuente que se anexa, se muestra a través de una sencilla práctica de
laboratorio el programa hecho en java para cubrir una brevísima parte del concepto de
bases de datos temporales. Más allá de la problemática ya antes mencionada en cuestión de
validaciones, la parte importante muestra como sería un tipo de dato PERIODO, como se
guardaría a una tabla, y se define una operación muy particular para hacer cuestionamientos
a los datos. Este es ‘despuesde’.  Consiste en mostrar los datos tipo PERIODO
relacionados a una variable de dicho tipo que por supuesto cumplen con la condición de
existir en el tiempo ‘despuesde’ el periodo solicitado a través de la instrucción ‘select *
from mi_tablita where periodo1 despuesde #dd/mm/aaaa-dd/mm/yyyy#

A continuación se muestran las instrucciones paso a paso y las consideraciones necesarias


pero de manera breve, para ejercitar el programa y aprender el concepto.

Operación ‘CreateTable’:
La manera para ejecutar la instrucción create table en la consola del DOS es:
Java micro_maquinaDB "create table mi_tablita (periodo1 periodo, fecha Date, nombre
char (20));"

     a) Esto creará un directorio y un archivo en C:\migestorDB\mi_tablita.txt.


     b) Si usted ejecuta de nuevo la instrucción el gestor le dirá que no es posible porque ya
         existe un archivo con ese nombre.
     c) Si omite o “create” o “table” o nombre de tabla o el punto y coma del final le dirá
         “sintaxis incorrecta”.
d) Una vez creado el archivo contendrá en la primera línea el nombre de las variables y  su
tipo separados por dos puntos (:)  y cada una de estas separadas a su vez por el  
         caracter  ( | ).

Operación ‘insert into’:


La manera para ejecutar la instrucción insert into en la consola del DOS es:
Java micro_maquinaDB "insert into mi_tablitamia values (#10/06/1974-11/06/1974#,    
'29/02/2008',\"chaman\");"    

     a) Esto agregará un registro al archivo mi_tablita.txt.


     b) Si usa un nombre distinto de archivo que no exista le mandará un mensaje de error
         mencionando tal suceso.
c) Si omite o “insert” o “into” o nombre de tabla o values o el punto y coma del final le dirá
que la sintaxis es inválida.
     d) Si en su periodo la fecha de la derecha es inferior a la izquierda le dirá que no es
         correcto.

Operación ‘select * from’:


La manera para ejecutar la instrucción select * from en la consola del DOS es:
Java micro_maquinaDB "select * from mi_tablitamia where periodo1 despuesde
#06/06/1974-09/06/1974#"

     a) Esto ejecutará la instrucción 'despuesde'.


     b) Si omite o “select” o “*” o “from” le dirá que la sintaxis es incorrecta
     c) Le mostrará los periodos superiores al que se ingresa en la instrucción.
En nuestro caso con “insert into” agregamos para la variable periodo1 los siguientes datos
como prueba:
#01/01/1973-01/01/2008#
#25/03/1975-12/12/2008#
#01/01/1900-02/28/2000#
#01/01/0001-01/01/0020#
#01/01/2000-15/03/2012#
#10/06/1974-11/06/1974#

Y para verificar 'despuesde' en “select from” el ejemplo del punto 5.

Y muestra la siguiente salida:


E:\MaestriaUAG\Base_De_Datos_II\practicas\gestor de DB>java micro_maquinaDB
"select * from mi_tablitamia where periodo1 despuesde #06/06/1974-09/06/1974#"
En la fila 2 No hay un periodo 'despuesde'
En la fila 3 hay un periodo 'despuesde' y es-> 721469
En la fila 4 No hay un periodo 'despuesde'
En la fila 5 No hay un periodo 'despuesde'
En la fila 6 hay un periodo 'despuesde' y es-> 730516
En la fila 7 hay un periodo 'despuesde' y es-> 721179

            El código del micro gestor no está completamente validado, por lo tanto se asume
que el usuario no puede equivocarse al momento de ingresar los datos. Por favor siga los
ejemplos antes mencionados para ejecutar satisfactoriamente el programa.

http://genesis.uag.mx/revistas/escholarum2/articulos/cyt/gestor.cfm

También podría gustarte