Disparadores(Triggers)

4
Disparadores (Triggers) Un disparador no es otra cosa que una acción definida en una tabla de nuestra base de datos y ejecutada automáticamente por una función programada por nosotros. Esta acción se activará, según la definamos, cuando realicemos un INSERT, un UPDATE ó un DELETE en la susodicha tabla. Un disparador se puede definir de las siguientes maneras: Para que ocurra ANTES de cualquier INSERT,UPDATE ó DELETE Para que ocurra DESPUES de cualquier INSERT,UPDATE ó DELETE Para que se ejecute una sola vez por comando SQL (statement-level trigger) Para que se ejecute por cada linea afectada por un comando SQL (row-level trigger) Esta es la definición del comando SQL que se puede utilizar para definir un disparador en una tabla. CREATE TRIGGER nombre { BEFORE | AFTER } { INSERT | UPDATE | DELETE [ OR ... ] } ON tabla [ FOR [ EACH ] { ROW | STATEMENT } ] EXECUTE PROCEDURE nombre de funcion ( argumentos ) Procedimientos Almacenados (Stored Procedure) El procedimiento almacenado es un conjunto de una o más operaciones creadas con sentencias SQL, y que se almacenan como un objeto en un sistema manejador de base de datos. Puede recibir valores a través de parámetros y devolver un resultado.

description

SQL BASE DE DATOS TRIGGERS

Transcript of Disparadores(Triggers)

Page 1: Disparadores(Triggers)

Disparadores (Triggers)

Un disparador no es otra cosa que una acción definida en una tabla de nuestra base de datos y ejecutada automáticamente por una función programada por nosotros. Esta acción se activará, según la definamos, cuando realicemos un INSERT, un UPDATE ó un DELETE en la susodicha tabla.

Un disparador se puede definir de las siguientes maneras:

Para que ocurra ANTES de cualquier INSERT,UPDATE ó DELETEPara que ocurra DESPUES de cualquier INSERT,UPDATE ó DELETEPara que se ejecute una sola vez por comando SQL (statement-level trigger)Para que se ejecute por cada linea afectada por un comando SQL (row-level trigger)

Esta es la definición del comando SQL que se puede utilizar para definir un disparador en una tabla.

CREATE TRIGGER nombre { BEFORE | AFTER } { INSERT | UPDATE | DELETE [ OR ... ] }

ON tabla [ FOR [ EACH ] { ROW | STATEMENT } ]

EXECUTE PROCEDURE nombre de funcion ( argumentos )

Procedimientos Almacenados (Stored Procedure)

El procedimiento almacenado es un conjunto de una o más operaciones creadas con sentencias SQL, y que se almacenan como un objeto en un sistema manejador de base de datos. Puede recibir valores a través de parámetros y devolver un resultado.

Un procedimiento almacenado es código ejecutable que se asocia y se almacena con la base de datos. Los procedimientos almacenados usualmente recogen y personalizan operaciones comunes, como insertar un registro dentro de una tabla, recopilar información estadística, encapsular cálculos complejos, entre otros.

Page 2: Disparadores(Triggers)

Sintaxis

CREATE PROCEDURE procedure_name [ ; number ]     [ { @parameter data_type }       ] go

  ¿Por qué utilizar procedimientos almacenados?

Distribución del trabajo

Seguridad de la base de datos

Ejecución más rápida

Reduce el tráfico de red

Proporciona flexibilidad

  ¿Por qué utilizar Disparadores (Triggers)?

• Ofrecen chequeos de seguridad basada en valores Integridad de los datos mejorada:

• Fuerzan restricciones dinámicas de integridad de datos y de integridad referencial.

• Aseguran que las operaciones relacionadas se realizan juntas de forma implícita.

• Respuesta instantánea ante un evento auditado

• Ofrece un mayor control sobre la B.D.

Ventajas Disparadores (Triggers):

• Ofrecen chequeos de seguridad basada en valores. Integridad de los datos mejorada:

• Fuerzan restricciones dinámicas de integridad de datos y de integridad referencial.

• Aseguran que las operaciones relacionadas se realizan juntas de forma implícita.

• Respuesta instantánea ante un evento auditado

• Ofrece un mayor control sobre la B.D.

Page 3: Disparadores(Triggers)

Desventajas Disparadores (Triggers):

• Peligro de pérdida en Reorganizaciones

• Hay que programarlos para cada DBMS

• Un Trigger nunca se llama directamente.

• Los triggers no se desarrollan pensando en un solo registro, los mismos deben funcionar en conjunto con los datos ya que se disparan por operación y no por registro.

• Por funcionalidad, no hay que poner en uno solo las funciones de INSERT,UPDATE y DELETE.

• Utilizar moderadamente los triggers.

• No se pueden utilizar en tablas temporales

Ventajas Procedimientos Almacenados

Ejecución plan de retención y la reutilización Consulta de parametrización automática La encapsulación de reglas de negocio y las políticas Solicitud de modularización Puesta en común de la lógica de aplicación entre las aplicaciones

de El acceso a los objetos de base de datos que es a la vez seguro y

uniforme Modificación de datos consistentes y seguros

Desventajas Procedimientos Almacenados

Las aplicaciones que involucran la lógica de negocio y elaboración extensa podría suponer una carga excesiva en el servidor si la lógica se implementó en su totalidad en los procedimientos almacenados.

No ponga toda la lógica de negocio en los procedimientos almacenados. El mantenimiento y la agilidad de su aplicación se convierte en un problema cuando se debe modificar la lógica de negocio.

La escritura y el mantenimiento de los procedimientos almacenados es más a menudo en una tarea especializada establece que no todos los desarrolladores poseen.

Page 4: Disparadores(Triggers)