informatica

Páginas: 41 (10172 palabras) Publicado: 4 de febrero de 2014
5.8 DISPARADORES Y BASES DE DATOS ACTIVAS
Los disparadores son procedimientos que el SGBD invoca automáticamente en respuesta a cambios concretos de la base de datos, que suele especificar el DBA. Las bases de datos con un conjunto de disparadores asociados se denominan bases de datos activas. La descripción de cada disparador contiene tres partes:
• Evento: una modificación de la basede datos que activa el disparador.
• Condición: una consulta o prueba que se ejecuta cuando se activa el disparador.
• Acción: un procedimiento que se ejecuta cuando se activa el disparador y su condición es verdadera. ......
Se puede considerar a los disparadores corno "demonios" que controlan ía base de datos y se ejecutan cuando se modifica la base de datos de modo que coincida conla especificación del evento. Los disparadores pueden ser activados por instrucciones de inserción, eliminación o actualización independientemente del usuario o de la aplicación que invocara la instrucción que lo activó; puede que los usuarios ni siquiera sean conscientes de que se ha ejecutado un disparador como efecto secundario de su programa.
La condición del disparador puede ser unainstrucción verdadero/falso (por ejemplo, todos los sueldos de los empleados son menores de 100.000 €) o una consulta. La consulta se interpreta como verdadera si el conjunto de respuestas no está vacío y como falsa si no tiene ninguna respuesta. Si la condición adopta el valor verdadero, se ejecuta la acción asociada con el disparador.
La acción del disparador puede examinar las respuestas a laconsulta de la condición del disparador, hacer referencia a los valores antiguos y nuevos de tupias modificadas por la instrucción que activa el dispardor, ejecutar consultas nuevas o realizar modificaciones de la base de datos. De hecho, la acción puede incluso ejecutar una serie de órdenes para la definición de datos (por ejemplo, crear tablas nuevas o modificar autorizaciones) u orientadas a lastransacciones (por ejemplo, comprometer) o llamar a procedimientos del lenguaje anfitrión.
Un aspecto importante de los disparadores es el momento en que se ejecuta la acción en relación con la instrucción que ha activado el disparador. Por ejemplo, una instrucción que inserte registros en la tabla Alumnos puede activar un disparador que se emplee para conservar estadísticas sobre el número dealumnos menores de 18 años insertados de una vez por una instrucción de inserción típica. En función de lo que haga exactamente el disparador, puede que se desee que la acción se ejecute antes de que se apliquen las modificaciones a la tabla Alumnos o después. Los disparadores que inicialicen una variable empleada para contar el número de inserciones que cumplen la condición establecida deben ejecutarseantes, mientras que los disparadores que se ejecuten una vez por cada registro insertado que cumpla la condición establecida e incrementen la variable deben ejecutarse después de la inserción de cada registro (ya que puede que deseemos examinar los valores del nuevo registro para determinar la acción correspondiente).

160 Sistemas de gestión de bases de datos
5.8.1 Ejemplos dedisparadores en SQL
Los ejemplos de la Figura 5.20, escritos empleando la sintaxis de Oracle Server para definir disparadores, ilustran los conceptos básicos subyacentes a los disparadores. (La sintaxis de SQL:1999 para estos disparadores es parecida; en breve se verá un ejemplo que emplea la sintaxis de SQL:1999.) El disparador denominado inic-cuenta inicializa una variable contadora antes de cadaejecución de la instrucción INSERÍ que añade tupias a la relación Alumnos. El disparador denominado aum.cuenta incrementa el contador por cada tupia insertada que satisface la condición edad < 18.
CRÉATE TRIGGER inic-cuenta BEFORE IWSERT ON Alumnos /* Evento */ DECLARE
cuenta INTEGER; - BEGIN '- /* Acción */
cuenta := 0; END : "••':-
CRÉATE TRIGGER...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Informatica
  • Informatica
  • Informatica
  • Informatica
  • Informatica
  • Informática
  • Informatica
  • Informatica

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS