Un almacén de eventos es un tipo de base de datos optimizada para el almacenamiento de eventos.
Conceptualmente, un almacén de eventos registra únicamente los eventos que afectan a una entidad , expediente o política , y el estado de la entidad en cualquier punto de su historial puede reconstruirse reproduciendo sus eventos contribuyentes en orden secuencial. Los eventos (y sus datos correspondientes ) son los únicos hechos "reales" que deben almacenarse en la base de datos. Todos los demás objetos pueden derivarse de estos eventos, lo que significa que el código en tiempo de ejecución los instancia en memoria según sea necesario (por ejemplo, para mostrarlos en una interfaz de usuario ). En teoría, cualquier objeto que agregue datos de eventos registrados no se almacena en la base de datos. En cambio, estos objetos se construyen " sobre la marcha ", recorriendo el historial de eventos. Cuando la instancia del objeto agregado ya no es necesaria, simplemente se puede descartar (liberar de la memoria).
Ejemplo con pólizas de seguro
Por ejemplo, el concepto de almacenamiento de eventos de una base de datos se puede aplicar a pólizas de seguros o expedientes de pensiones. En estas pólizas o expedientes, la instanciación de cada objeto que los compone (la persona , el/los socio /s, los empleos, etc.) se puede derivar y se puede instanciar en memoria en función de los eventos del mundo real.
Línea de tiempo doble
Una parte crucial de una base de datos de almacenamiento de eventos es que cada evento tiene una línea de tiempo doble : esto permite que los almacenes de eventos corrijan errores de eventos que se hayan ingresado previamente en la base de datos de almacenamiento de eventos.
Las dos fechas son:
- La fecha de validez es la fecha en la que el evento se vuelve válido.
- La fecha de transacción es la fecha en la que el evento se registra en la base de datos.
Corrección de errores
Otro aspecto crucial de una base de datos de almacenamiento de eventos es que los eventos almacenados no se pueden modificar. Una vez almacenados, ni siquiera los eventos erróneos se pueden cambiar. La única forma de modificarlos (o mejor dicho, corregirlos) es crear un nuevo evento con los nuevos valores y utilizando la doble línea de tiempo. Un evento corrector tendría los nuevos valores del evento original, con los datos del evento corregido, pero con una fecha de transacción diferente. Este mecanismo garantiza la reproducibilidad en cualquier momento, incluso en el período anterior a la corrección. Además, permite reproducir situaciones basadas en eventos erróneos (si fuera necesario).
Ventajas y desventajas
Una de las ventajas del concepto de almacén de eventos es que resulta mucho más fácil gestionar los efectos de los eventos retroactivos (eventos que entran en vigor antes que los anteriores e incluso pueden invalidarlos).
Un almacén de eventos simplificará el código, ya que no será necesario revertir las situaciones erróneas ni actualizar las nuevas situaciones correctas.
Una desventaja puede ser que el código necesite volver a instanciar todos los objetos en memoria en función de los eventos cada vez que se reciba una llamada de servicio para un expediente o política específicos.
En comparación con las bases de datos regulares
En las bases de datos convencionales, gestionar eventos con fecha anterior para corregir eventos erróneos previos puede resultar complicado, ya que a menudo implica revertir todas las transacciones y objetos erróneos anteriores y consolidar las nuevas transacciones y objetos correctos. En un almacén de eventos, solo se almacena el nuevo evento (y sus hechos correspondientes). El código recalculará las transacciones y los objetos basándose en los nuevos hechos almacenados en memoria.
Véase también
- Base de datos temporal , una base de datos que almacena datos relacionados con instancias de tiempo (por ejemplo, pasado, presente y futuro) para determinar transacciones, validez o decisiones.
Enlaces externos
- Clasificación de DB-Engines de tiendas de eventos por popularidad, actualizada mensualmente.
- Bases de datos