Tarea-3.2 Disparadores Base datos PDF

Title Tarea-3.2 Disparadores Base datos
Author ALEX SOLORZANO
Course Bases de Datos
Institution Universidad de las Fuerzas Armadas de Ecuador
Pages 6
File Size 160 KB
File Type PDF
Total Downloads 64
Total Views 138

Summary

Consulta sobre los disparadores ...


Description

RESOLUCIÓN DE EJERCICIOS 1. TEMA: Disparadores 2. OBJETIVOS: GENERAL  Detallar información general acerca de los disparadores mediante una investigación vía web, para poder tener conocimientos específicos y desarrollar destreza en el campo laboral, para los alumnos de la Unidad de Gestión de Tecnologías Espe. ESPECÍFICOS  Conceptualizar que son los disparadores y para que se utilizan.  Identificar los diferentes tipos de disparadores.  Comprender las propiedades y características que tienen los disparadores. 3.

MARCO TEÓRICO

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). Un trigger o disparador en una Base de datos, es un procedimiento que se ejecuta cuando se cumple una condición establecida al realizar una operación. Dependiendo de la base de datos, los triggers pueden ser de inserción (INSERT), actualización (UPDATE) o borrado (DELETE). Algunas bases de datos pueden ejecutar triggers al crear, borrar o editar usuarios, tablas, bases de datos u otros objetos. Los triggers son usados para mejorar la administración de la Base de datos, sin necesidad de contar con que el usuario ejecute sentencias de SQL determinadas para tal efecto. Además, pueden generar valores de columnas, pueden prevenir errores de datos, sincronizar tablas, modificar valores de una vista, auditorías de seguridad, etc. La estructura básica de un trigger es:  

Llamada de activación: es la sentencia que permite «disparar» el código a ejecutar. Restricción: es la condición necesaria para realizar el código. Esta restricción puede ser de tipo condicional o de tipo nulidad.



Acción a ejecutar: es la secuencia de instrucciones a ejecutar una vez que se han cumplido las condiciones iniciales. 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 relinquear. 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. Existen dos tipos de disparadores que se clasifican según la cantidad de ejecuciones a realizar:

 

Row Triggers (o disparadores de fila): son aquellos que se ejecutaran n-veces si se llaman n-veces desde la tabla asociada al trigger. Statement Triggers (o disparadores de secuencia): son aquellos que sin importar la cantidad de veces que se cumpla con la condición, su ejecución es única. 4. DESARROLLO Una empresa almacena los datos de sus empleados en una tabla denominada "empleados". En una tabla denominada "control Cambios" guarda los cambios que se realizan en la tabla "empleados", en ella almacena el nombre del usuario que realiza la modificación, la fecha, el valor anterior del campo modificado y el nuevo valor. Eliminamos las tablas: drop table empleados; drop table controlCambios; Creamos las tablas, con las siguientes estructuras: create table empleados( documento char(8) not null, nombre varchar2(30) not null, domicilio varchar2(30), seccion varchar2(20) );

create table controlCambios( usuario varchar2(30),

fecha date, datoanterior varchar2(30), datonuevo varchar2(30)); Ingresamos algunos registros: insert into empleados values('22222222','Ana Acosta','Bulnes 56','Secretaria'); insert into empleados values('23333333','Bernardo Bustos','Bulnes 188','Contaduria'); insert into empleados values('24444444','Carlos Caseres','Caseros 364','Sistemas'); insert into empleados values('25555555','Diana Duarte','Colon 1234','Sistemas'); insert into empleados values('26666666','Diana Duarte','Colon 897','Sistemas'); insert into empleados values('27777777','Matilda Morales','Colon 542','Gerencia'); Creamos un disparador que se active cuando modificamos algún campo de "empleados" y almacene en "controlCambios" el nombre del usuario que realiza la actualización, la fecha, el dato que se cambia y el nuevo valor: create or replace trigger tr_actualizar_empleados before update on empleados for each row begin if updating('documento') then insert into controlCambios values(user,sysdate, :old.documento, :new.documento); end if; if updating('nombre') then insert into controlCambios values(user,sysdate, :old.nombre, :new.nombre); end if; if updating('domicilio') then insert into controlCambios values(user,sysdate, :old.domicilio, :new.domicilio); end if; if updating('seccion') then insert into controlCambios values(user,sysdate, :old.seccion, :new.seccion); end if; end tr_actualizar_empleados;/ Creamos otro desencadenador que se active cuando ingresamos un nuevo registro en "empleados", debe almacenar en "controlCambios" el nombre del usuario que realiza el

ingreso, la fecha, "null" en "datoanterior" (porque se dispara con una inserción) y en "datonuevo" el documento: create or replace trigger tr_ingresar_empleados before insert on empleados for each row begin insert into controlCambios values(user,sysdate, null, :new.documento); end tr_ingresar_empleados; / Creamos un tercer trigger sobre "empleados" que se active cuando eliminamos un registro en "empleados", debe almacenar en "controlCambios" el nombre del usuario que realiza la eliminación, la fecha, el documento en "datoanterior" y "null" en "datonuevo": create or replace trigger tr_eliminar_empleados before delete on empleados for each row begin insert into controlCambios values(user,sysdate, :old.documento, null); end tr_eliminar_empleados; / Los tres triggers están habilitados. Consultamos el diccionario "user_triggers" para corroborarlo: select trigger_name, triggering_event, status from user_triggers where trigger_name like 'TR%EMPLEADOS'; Vamos a ingresar un empleado y comprobar que el trigger "tr_ingresar_empleados" se dispara recuperando los registros de "controlCambios": insert into empleados values('28888888','Pedro Perez','Peru 374','Secretaria'); select *from controlCambios; Deshabilitamos el trigger "tr_ingresar_empleados": alter trigger tr_ingresar_empleados disable; Consultamos el diccionario "user_triggers" para corroborarlo: select trigger_name, status from user_triggers where trigger_name like 'TR%EMPLEADOS';

El trigger "tr_ingresar_empleados" está deshabilitado, "tr_actualizar_empleados" y "tr_elimnar_empleados" están habilitados. Vamos a ingresar un empleado y comprobar que el trigger de inserción no se dispara recuperando los registros de "controlCambios": insert into empleados values('29999999','Rosa Rodriguez','Rivadavia 627','Secretaria'); select *from controlCambios; Vamos a actualizar el domicilio de un empleado y comprobar que el trigger de actualización se dispara recuperando los registros de "controlCambios": update empleados set domicilio='Bulnes 567' where documento='22222222'; select *from controlCambios; Deshabilitamos el trigger "tr_actualizar_empleados": alter trigger tr_actualizar_empleados disable; Consultamos el diccionario "user_triggers" para corroborarlo: select trigger_name, status from user_triggers where trigger_name like 'TR%EMPLEADOS'; Los triggers "tr_ingresar_empleados" y "tr_actualizar_empleados" están deshabilitados, "tr_eliminar_empleados" está habilitado. Vamos a borrar un empleado de "empleados" y comprobar que el trigger de borrado se disparó recuperando los registros de "controlCambios": delete from empleados where documento= '29999999'; select *from controlCambios; Deshabilitamos el trigger "tr_eliminar_empleados": alter trigger tr_eliminar_empleados disable; Consultamos el diccionario "user_triggers" para comprobarlo: select trigger_name, status from user_triggers where table_name = 'EMPLEADOS'; Los tres trigger establecidos sobre "empleados" están deshabilitados. Eliminamos un empleado de "empleados" y comprobamos que el trigger de borrado no se dispara recuperando los registros de "controlCambios": delete from empleados where documento= '28888888'; select *from controlCambios; Habilitamos el trigger "tr_actualizar_empleados": alter trigger tr_actualizar_empleados enable;

Actualizamos la sección de un empleado y comprobamos que el trigger de actualización se dispara recuperando los registros de "controlCambios": update empleados set seccion='Sistemas' where documento='23333333'; select *from controlCambios; Habilitamos todos los triggers establecidos sobre "empleados": alter table empleados enable all triggers; Consultamos el diccionario "user_triggers" para comprobar que el estado (status) de todos los triggers establecidos sobre "empleados" es habilitado: select trigger_name, triggering_event, status from user_triggers where table_name = 'EMPLEADOS'; Los tres trigger establecidos sobre "empleados" han sido habilitados. Se activarán ante cualquier sentencia "insert", "update" y "delete". 5. CONCLUSIONES  Los disparadores son objetos de la base de datos que ejecutan acciones cuando llegan a producirse ciertos eventos como creación o modificación de una tabla, etc.  Estos disparadores llegan a ser utilizados para obtener una mejor administración en la base de datos, además es muy útil ya que, previene errores de datos, genera valores de columnas, etc.  Solo se ejecuta cuando cumple una condición establecida para que pueda realizar una operación. 6. RECOMENDACIONES

 Es necesario investigaren tesis, libros o papers avaladas por una institución de alto prestigio y no coger información de blogs o paginas anónimas donde no se encuentren información veraz y especifica  Tener en cuenta que la información detallada en el informe sea específica y no desviarse del tema.  Una vez adquiridos los conocimientos realizar prácticas sobre esta teoría para que no queden dudas sobre el tema. 7. BIBLIOGRAFÍA

https://tecnologiaenvivo.com/%EF%BB%BF%EF%BB%BFdisparadores-o-triggers-en-una-basede-datos/ https://www.tutorialesprogramacionya.com/oracleya/simulador/simulador.php? inicio=100&cod=273&punto=115...


Similar Free PDFs