trigger

Páginas: 10 (2307 palabras) Publicado: 16 de marzo de 2013
TRIGGERS EN ORACLE 8
Iriarte J.
España S.
Facultad de Informática - Universidad Politécnica de Valencia
email: jorirde@inf.upv.es, serescu@inf.upv.es
Resumen
Nuestro objetivo para este artículo es intentar mostrar un breve
panorama de cómo crear TRIGGERS (disparadores o gatilladores [1])
para bases de datos bajo Oracle 8, asi como describir la funcionalidad
tan versatil que proporcionanal programador. Por lo tanto es de
esperar que el lector tenga un poco de experiencia con entornos
Oracle y conozca la notación básica de bases de datos, de igual
manera serán necesarios unos mínimos conocimientos del lenguaje
PL/SQL.
1. Introducción
Todas las implementaciones que hemos investigado soportan
triggers de inserción, actualización y borrado; algunos se disparan por
operación,otros saltan por tupla. Ninguno de los DBMS relacionales,
excepto el Progress Database Server, soportan triggers en operaciones
de SELECT. Hay un par de razones para pensar que esto sería útil:
implementar un control de seguridad propio y llevar estadística de
acceso a las tablas de almacenamiento.
Quizá Oracle se ponga las pilas en su próxima versión.
De momento, la funcionalidad que nosproporcionan los
disparadores hacen imprescindible su conocimiento por los
desarrolladores de aplicaciones sobre BDs.
2. Definición de trigger
Los disparadores son procedimientos que se ejecutan cuando se
produce un suceso de base de datos (una operación DML: INSERT,
UPDATE o DELETE) en una tabla específica. El acto de ejecutar un
disparador se conoce como disparo.
3. Uso de los triggersLos disparadores pueden emplearse para muchas cosas diferentes,
incluyendo:


El mantenimiento de restricciones de integridad complejas, que
no sean posibles con las restricciones declarativas definidas en el
momento de crear la tabla.
1
Laboratorio de Sistemas de Información
Facultad de Informática
Universidad Politécnica de Valencia




La auditoría de la información contenidaen una tabla,
registrando los cambios realizados y la identidad del que los llevó
a cabo.
El aviso automático a otros programas de que hay que llevar a
cabo una determinada acción, cuando se realiza un cambio en
una tabla.

4. Sintaxis general de trigger
Lo presentado en este apartado se ha extraído desde [2].
La sintaxis general para crear un disparador es:
CREATE [OR REPLACE] TRIGGERnombre_disparador
{ BEFORE | AFTER } suceso_disparo ON referencia_tabla
[FOR EACH ROW [ WHEN condición_disparo ]]
cuerpo_disparador,
donde nombre_disparador es el nombre del disparador, suceso_disparo
especifica cuándo se activa el disparador, referencia_tabla es la tabla
para la cual se define el disparador y cuerpo_disparador es el código
principal del disparador. Antes se evalúa lacondición_disparo incluida
en la cláusula WHEN, si es que está presente. El cuerpo del disparador
se ejecuta sólo cuando dicha condición se evalúa como verdadera.

5. Componentes de un disparador
Los componentes de un disparador son el nombre, el suceso de
disparo y el cuerpo. La cláusula WHEN es opcional.
5.1 Nombres de disparadores
El espacio de nombres para los disparadores es diferente del deotros subprogramas. El espacio de nombres es el conjunto de
identificadores válidos que pueden emplearse como nombres de un
objeto.
Los disparadores existen en un espacio de nombres separado del
de los procedimientos, paquetes y tablas, por lo que un disparador
puede tener el mismo nombre que una tabla o procedimiento. Sin
embargo dentro de un mismo esquema deben tener nombres
diferentesentre sí.
5.2 Tipos de disparadores
2
Laboratorio de Sistemas de Información
Facultad de Informática
Universidad Politécnica de Valencia

El suceso de disparo determina el tipo de disparador. Los
disparadores pueden definirse para las operaciones INSERT, UPDATE o
DELETE, y pueden dispararse antes o después de la operación.
Finalmente, el nivel de los disparadores puede ser la fila o...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • trigger
  • Trigger
  • Que es un trigger?
  • Trigger
  • Trigger smith
  • Schmitt trigger
  • Schmitt Trigger
  • Trigger

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS