Sistemas

Solo disponible en BuenasTareas
  • Páginas : 5 (1167 palabras )
  • Descarga(s) : 20
  • Publicado : 5 de mayo de 2010
Leer documento completo
Vista previa del texto
Disparadores (Triggers)

Base de Datos

Contenido
- Integridad Referencial – Aplicaciones – Activación – Creación – Tablas especiales – Disparadores de Modificación – Contar renglones – If update – Borrar un trigger – Anidamiento – Restricciones

Intro
Los Disparadores son un tipo especial de procedimiento almacenado que se activa cuando un usuario realiza una inserción, modificación oborrado en una tabla.

Ejecutar un disparador se llama activar o desencadenar un disparador.
Los disparadores tienen la capacidad de consultar otra tabla e incluir instrucciones complejas. Los disparadores no se ejecutan o llaman directamente.

Disparadores

Los disparadores se usan para: – Reforzar la integridad referencial. – Definir las reglas del negocio. – Administrar funciones. Lasactualizaciones y eliminaciones en cascada pueden realizarse mediante disparadores.

Integridad Referencial
• La integridad referencial es el proceso por el cual se mantienen las relaciones entre los datos. • Un renglón hijo sin un renglón padre es llamado huérfano. • La integridad referencial previene la existencia de este tipo de renglones. • Por ejemplo: Un título no puede existir sin unautor. • Si el autor se borra, sus títulos no pueden existir en la BD.

Cascada
• Cascada es el proceso por el cual los cambios a un padre se propagan a los hijos. • Si se actualiza el valor del padre, también se debe actualizar el valor del hijo para mantener la relación. • Lo mismo aplica en las eliminaciones.

Eliminaciones
Existen varios tipos de efectos en las eliminaciones: – BorradoCuando el padre se borra, todos los hijos correspondientes también se borran.

– Restricción Si un hijo existe, no se permite la eliminación del padre. – Asignar nulos Cuando un padre se borra, se asigna valor nulo a los hijos correspondientes. – Asignar valor por omisión Cuando un padre se borra, se asigna valor por omisión a los hijos correspondientes.

Actualizaciones
• Los disparadores deactualización sólo tienen dos efectos: – Actualizar • Cuando el padre cambia, el hijo cambia. – Restringir • Si existe un hijo, no se permiten cambios al padre.

Aplicaciones • Los disparadores pueden ser elementos poderosos para cualquier aplicación.
• Los disparadores se usan para las siguientes funciones adicionales: – Mantener datos duplicados. Se usan para crear una copia adicional de losdatos para usar en otro sistema. – Mantener datos derivados. Se usan para mantener datos agregados de modo que una aplicación no tiene que crear el acumulado posteriormente. – Reforzar restricciones complejas. Refuerza las reglas del negocio como que un empleado no tenga un salario mayor al director de la empresa. – Generan registros adicionales. Actúa como un registro de auditoria adicional. Activación • Cuando se inserta, modifica o borra un dato de una tabla se ejecuta un disparador. • El disparador se activa después de que el dato se actualiza. • Al activarse pasa a formar parte de la transacción donde se hizo la modificación.. • Un disparador se activa sólo una vez por instrucción de actualización. – Si se insertan 5000 renglones en una sola transacción, el disparador sólo seejecuta una vez. • El disparador puede abortar la transacción o enviar un error al cliente.

Activación • Cuando se actualiza un renglón de una tabla que tiene un disparador, éste se ejecuta.
– Se ejecuta si hubo o no renglones afectados. – Si se insertó y ocurre una violación de llave primaria, el disparador no se ejecuta.

Creación • Sintaxis: create trigger {before | after} {insert |update | delete} on for each row • Una tabla puede tener tres tipos de disparadores. – para insertar – para modificar – para borrar • Los disparadores no pueden llamarse directamente o recibir parámetros.

Creación • Los disparadores tienen un momento de acción: pueden activarse antes o después de un evento. • Tienen un evento, pudiéndose activar al insertar, eliminar o modificar. • Se debe...
tracking img