Disparadores en PosgreSQL -Triggers

Definición de disparador o trigger, es un componente de base de datos que produce una ejecución automática al producirse un evento siempre que se cumpla una determinada condición.

Se rige por la regla ECA (Event, Condition, Action)

Clasificación de disparadores

  1. Según cuando se ejecutan:
    • BEFORE – antes del evento
    • AFTER – después del evento
  2. Según cómo se ejecutan
    • FOR EACH ROW – para cada fila
    • FOR EACH STATEMENT – para cada instrucción

Disparadores en bases de datos operacionales

  • Implementación de reglas de negocio, por ejemplo aplicar un descuento del 20% en la primera compra a los nuevos clientes.
  • Comprobación de restricciones de integridad referencial, por ejemplo la nota de una revisión de examen no puede ser inferior a la obtenida inicialmente.
  • Mantenimiento de columnas derivadas.
  • Mantenimiento automático de una tabla de logs de la actividad en la BD.
  • Mantenimiento de una réplica de datos.

Disparadores en Data Warehouse

  • Evitar disparadores, los procesos de carga son lanzados de forma periódica a través de procesos ETL.
  • Excepción a la norma es un mecanismo de un mecanismo de identificación, captura y procesamiento de datos (CDC – Change Data Capture), de tal forma que cambios realizados en origen puedan ser actualizados en el data warehouse.

Problemas derivados de los disparadores

  • Posibles problemas de rendimiento
  • Mantenimiento complejo y costoso a largo plazo
  • Su implementación puede provocar efectos secundarios no deseados.

Nota: Para más información acerca de trigger en PostgreSQL consultar la documentación

Otros artículos que pueden ser de interés:

Autor: Diego Calvo