Programación 3. Tarea 9
Universidad abierta para adultos(UAPA).
Después de consultar el texto básico de la asignatura Programación 3 y otros documentos sugeridos por su facilitador, en el contenido de la Unidad IX, realiza las actividades sugeridas:
1: Investigar en la web acerca de los triggers o disparadores.
- ¿Que son?
Los eventos que hacen que se ejecute un trigger son las operaciones de inserción (INSERT), borrado (DELETE) o actualización (UPDATE), ya que modifican los datos de una tabla. La utilidad principal de un trigger es mejorar la gestión de la base de datos, ya que no requieren que un usuario los ejecute.
Un trigger o disparador es un objeto que se asocia con tablas y se almacena en la base de datos. Su nombre se deriva por el comportamiento que presentan en su funcionamiento, ya que se ejecutan cuando sucede algún evento sobre las tablas a las que se encuentra asociado. Los eventos que hacen que se ejecute un trigger son las operaciones de inserción (INSERT), borrado (DELETE) o actualización (UPDATE), ya que modifican los datos de una tabla.
La utilidad principal de un trigger es mejorar la gestión de la base de datos, ya que no requieren que un usuario los ejecute. Por lo tanto, son empleados para implementar las REGLAS DE NEGOCIO (tipo especial de integridad) de una base de datos. Una Regla de Negocio es cualquier restricción, requerimiento, necesidad o actividad especial que debe ser verificada al momento de intentar agregar, borrar o actualizar la información de una base de datos. Los triggers pueden prevenir errores en los datos, modificar valores de una vista, sincronizar tablas, entre otros.
Un Disparador o Trigger es una rutina autónoma asociada con una tabla o vista que automáticamente realiza una acción cuando una fila en la tabla o la vista se inserta (INSERT), se actualiza (UPDATE), o borra (DELETE). Un Disparador nunca se llama directamente, en cambio, cuando una aplicación o usuario intenta insertar, actualizar, o anular una fila en una tabla, la acción definida en el disparador se ejecuta automáticamente (se dispara).
Las ventajas de usar los Disparadores son:
La entrada en vigor automática de restricciones de los datos hace que los usuarios entren sólo valores válidos.
El mantenimiento de la aplicación se reduce, los cambios a un disparador se reflejan automáticamente en todas las aplicaciones que tienen que ver con la tabla sin la necesidad de recompilar o renquear.
Logs automáticos de cambios a las tablas. Una aplicación puede guardar un registro corriente de cambios, creando un disparador que se active siempre que una tabla se modifique.
La notificación automática de cambios a la Base de Datos con alertas de evento en los disparadores.
Los Disparadores tienen dos palabras clave, OLD y NEW que se refieren a los valores que tienen las columnas antes y después de la modificación. Los INSERT permiten NEW, los DELETE sólo OLD y los UPDATE ambas.
- Característica.
- No aceptan parámetros o argumentos (pero podrían almacenar los datos afectados en tablas temporales)
- No pueden ejecutar las operaciones COMMIT o ROLLBACK por que estas son parte de la sentencia SQL del disparador (únicamente a través de transacciones autónomas)
- Pueden causar errores de mutaciones en las tablas, si se han escrito de manera deficiente.
- Estructura.
La creación de un TRIGGER sigue las bases de crear un procedimiento o una función almacenados. Primero declaramos un delimitador y usamos la sentencia CREATE:
En estas líneas SQL he creado un TRIGGER con el nombre trigger_historico. Este nombre me servirá después para identificarlo, pudiendo así borrarlo o buscarlo en la base de datos.
A continuación, debemos indicar CUANDO DEBE EJECUTARSE el TRIGGER. Las indicaciones posibles en este punto son AFTER o BEFORE para indicar si el disparador se ejecutará ANTES o DESPUÉS de la orden lanzada por el usuario. Estas órdenes serán: INSERT, DELETE o UPDATE. Por último, indicaremos sobre que tabla actuará.
Vamos a completar el código anterior indicando que la ejecución será tras un INSERT en la tabla usuario:
