Triggers(Disparadores)

Slides:



Advertisements
Presentaciones similares
SQL Sigla del nombre “Structured Query Language”.
Advertisements

VISTAS (VIEWS) DEFINICIÓN Y OBJETIVO DE LAS VISTAS.
Se necesita un PA que muestre la información de todos los clientes registrados de la siguiente forma: Nombre1 Nombre2, Apellido1 Apellido2 bajo el título.
Ejercicios Solemne 2 Parte 1
LENGUAJE ESTRUCTURADO DE CONSULTA “SQL”
Fernando Velasco
UNIVERSIDAD NACIONAL DE LOJA Carrera de Ingeniería en Sistemas
Subprogramas: Procedimientos
Maestría en Bioinformática Bases de Datos y Sistemas de Información SQL: DML Ing. Alfonso Vicente, PMP
Maestría en Bioinformática Bases de Datos y Sistemas de Información Otros objetos de Base de Datos Ing. Alfonso Vicente, PMP
PL/SQL Francisco Moreno Universidad Nacional.
Diseño Físico Procedimientos Almacenados y Disparadores (Triggers)
PL/SQL Francisco Moreno Universidad Nacional.
SESIÓN 2. Completados por el tipo de objeto sobre el que actúan y el objeto concreto: CREATE DATABASE mibase ; Permite crear una base de datos llamada.
1 BD Activas: Motivación zLos SGBD convencionales son “pasivos”. Sólo ejecutan preguntas o transacciones realizadas por los usuarios o por los programas.
PL/SQL Francisco Moreno Universidad Nacional. Introducción al PL/SQL ¿Por qué PL/SQL? A pesar de que SQL tiene mecanismos de control condicional (cláusula.
Bases de Datos Relacionales
16/04/ Sesión 11 Funciones y procedimientos Ing. Ricardo Inquilla.
PL/SQL Francisco Moreno Universidad Nacional.
PL/SQL Francisco Moreno Universidad Nacional.
Subconsultas Avanzadas
Ing. Ricardo Carlos Inquilla Quispe
Procedimientos Almacenados Funciones Agregadas
Bases de datos en la Web n Las bases de datos permiten almacenar de una forma estructurada y eficiente toda la información de un sitio web n Ventajas –Proporcionar.
Componentes sintácticos
UNITA - IBARRA TRIGGERS
Lenguaje Estructurado de Consultas
John Freddy Duitama M.U.de.A. Facultad de Ingeniería. Creación del esquema de Una Base de Datos. John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A.
Laboratorio de Bases de datos
1 Microcomputación II Unidad II Administración de datos con MS-SQL Server y Visual Basic Introducción a Transact – SQL: Select, Delete, Update. Tema:
PL/SQL Francisco Moreno Universidad Nacional.
CAPITULO 10 Manejando Restricciones
TRIGGERS EN ORACLE 8 J. Iriarte S. España
SQL: DDL Francisco Moreno & Carlos Mario Zapata. SQL:DDL DDL: Lenguaje de Definición de Datos Permite crear objetos en la Base de Datos Tipos de Objetos:
SQL (Structured Query Language / Lenguaje de consulta estructurado)‏
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 19 Extensiones de Oracle 9i para las sentencias DML y DDL.
Características Objeto-Relacionales en Oracle Francisco Moreno Universidad Nacional.
LENGUAJE SQL.
Structured Query Language (Lenguaje Estructurado de Consultas)
John Freddy Duitama M.U.de.A. Facultad de Ingeniería. Creación del esquema de Una Base de Datos. John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A.
SQL: DDL Francisco Moreno. SQL: DDL DDL: Lenguaje de Definición de Datos Permite crear objetos en la BD Tipos de objetos: - Tablas: corresponden a las.
SQL Sigla del nombre “Structured Query Language”.
Base de datos Francisco Castro. Creación de una tabla drop table TABLA cascade constraints; /*==============================================================*/
PUESTO-TRABAJO (Código-Puesto, Empresa, Sueldo, DNI- Contratado) TITULADO (DNI-Titulado, Nombre, Apellidos, Dirección) TITULACION (Iden-Titulación, Nombre,
Comandos de SQL Prog. Orientada a Eventos. Inserción de datos (INSERT) INSERT….VALUES INSERT INTO Tabla1 (Columna1, Columna2…) VALUES (‘ValorAlfa’, ValorNum…);
Características Objeto Relacionales en Oracle Francisco Moreno Universidad Nacional.
MSSQL SERVER CURSO BÁSICO 1. DESCRIPCIÓN DEL CURSO. Sesión 4: Sentencia Insert,Transacciones,Insert general, Insert Select * From, Sentencia Update,Update.
DISPARADORES Y SISTEMAS DE GESTION DE BASE DE DATOS DE SQL
Marzo de 2010Dos Ideas - La visión de Sistemas desde el Desarrollo SQL en PL/SQL Conceptos básicos.
SQL es un estándar internacional para trabajar con bases de datos, que consta de dos partes: una parte para manipular datos y una parte para definir tipos.
SQL Lenguaje Estructurado de Consultas. Structured Query Lenguaje (SQL). Lenguaje de acceso a bases de datos. Proyecto de Investigación de IBM. La mayoria.
Después de completar esta lección, debe ser capaz de:  Crear registro definidos por el usuario.  Crear un registro con el atributo %ROWTYPE.  Crear.
Lenguaje Estructurado de Consultas
Base de Datos I – Ing. Mary Carlota Bernal J. BASE DE DATOS I PL/SQL.
Apuntes PL-SQL Triggers II. Tipos de datos compuestos Registros PL/SQL: Son similares a un tipo struct en C o a un tipo Registro en otros 3GL. Se componen.
SQL: DDL.
6 Triggers ORACLE - II Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega.
Apuntes PL-SQL Triggers I.
3 Cursores ORACLE Bases de datos II I-2014 Universidad del Cauca In. Wilson Ortega Bases de datos II I-2014 Universidad del Cauca In. Wilson Ortega.
Administración de Base de Datos Integridad Prof Mercy Ospina Torres Prof Renny A. Hernandez
Querys a bases de datos con MS ACCESS. DEFINAMOS LOS TERMINOS: DML=Lenguaje de manipulación de datos Las sentencias DML permiten generar consultas para.
DML Transact SQL Sesión X Triggers. Duración 2 Horas.
Implementación de funciones definidas por el usuario.
6 Triggers ORACLE Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega.
6 Copyright © 2004, Oracle. Todos los derechos reservados. Trabajar con Tipos de Dato Compuestos.
6 Triggers ORACLE - III Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega.
Crear una tabla (create table - sp_tables - sp_columns - drop table) Para ver las tablas existentes creadas por los usuarios en una base de datos usamos.
PL/SQL Francisco Moreno Universidad Nacional.
BASE DE DATOS IUPSM CLASE PRACTICA. PROF. ING. JOSE L GUZMAN H.
UN DISPARADOR O TRIGGER es un procedimiento que se ejecuta cuando se cumple una condición establecida al realizar una operación. Es una rutina autónoma.
Transcripción de la presentación:

Triggers(Disparadores) Base Datos Avanzado II Triggers(Disparadores) ING. RICARDO CARLOS INQUILLA QUISPE

Objetivos de la sesión Definir los triggers. Entender las diferentes modalidades. Aplicar triggers para resolver problemas reales.

Temas a Tratar Creación de disparadores. Componentes de un disparador. Disparadores de BD.

Trigger Bloque PL/SQL que se ejecuta automáticamente cuando se realiza un evento (INSERT, UPDATE, DELETE). Almacenado en la BD. No puede ser local. No acepta parámetros

Utilidad del Trigger Restricción de integridad. (consultar si hay saldo antes de comprar) Auditoria de información. (almacenar quién modificó ciertos registros: sueldo). Aviso automático a otros módulos PL/SQL para que realicen cierta acción. (inactivar al trabajador, eliminar el permiso a todos los módulos del sistema)

Resumen

Sintaxis del Trigger CREATE OR REPLACE TRIGGER nombre BEFORE INSERT ON tabla FOR EACH ROW WHEN (condición) DECLARE .... BEGIN END; OR UPDATE INSERT UPDATE DELETE BEFORE AFTER OF col1, col2, …, colN

Tipos de Disparadores Orden INSERT, UPDATE, DELETE Temporización BEFORE, AFTER Nivel FOR EACH ROW

Uso de Identificadores de Correlación :old y :new Permiten acceder a los datos de la fila procesada en el trigger. ORDEN :old :new INSERT NULL Valores a insertar UPDATE Valores a eliminar DELETE

CREATE TABLE producto_sec_gru Ejercicio 1 Crear 2 tablas temporal y product. CREATE TABLE temporal_sec_gru ( prodid number(6), descrip char(30) ); INSERTAR 3 REGISTROS CREATE TABLE producto_sec_gru ( prodid number(6), descrip char(30));

Ejercicio 1 Crear un trigger que se dispare una vez por cada fila insertada. CREATE OR REPLACE TRIGGER t_sec_gru AFTER INSERT ON temporal_sec_gru FOR EACH ROW BEGIN dbms_output.put_line('mensaje repetido'); END;

Ejercicio 2 Crear un trigger que se dispare sólo una vez luego de la inserción. CREATE OR REPLACE TRIGGER t_una_vez_sec_gru AFTER INSERT ON temporal_sec_gru BEGIN dbms_output.put_line(‘una sola vez'); END;

Ejercicio 2 Probar ambos triggers al insertar más de un registro a la vez en la tabla temporal. INSERT INTO temporal_sec_gru SELECT * FROM producto_sec_gru ;

CREATE TABLE productcib Ejercicio 3 Crear una tabla de auditoría para la tabla product CREATE TABLE productcib ( prodid number(6), descrip char(30)); CREATE TABLE product_auditcib ( prodid number(6), descrip char(30), user_audit varchar2(20) );

Crear un trigger que almacene los datos insertados en la tabla product y el nombre del usuario que realizó la inserción. CREATE OR REPLACE TRIGGER t_audit_product_22 AFTER INSERT ON productcib FOR EACH ROW DECLARE vusu varchar2(20); BEGIN select user into vusu from dual; INSERT INTO product_auditcib VALUES (:new.prodid, :new.descrip, vusu); END;

Ejercicio 3 Inserte un registro en la tabla product INSERT INTO PRODUCTcib VALUES (5, 'PROBANDO TRIGGER'); Compruebe que se insertó el registro en la tabla product_audit. SELECT * FROM product_auditcib;

Eliminar o Deshabilitar Eliminar un trigger DROP TRIGGER nombre; ALTER TRIGGER nombre DISABLE; Deshabilitar un trigger ALTER TRIGGER nombre ENABLE; Habilitar un trigger

RESUMEN

Ejercicio 3 Crear una tabla historial para almacenar las modificaciones a la tabla product. CREATE TABLE historial_cib ( prodid number(6), descrip char(30), fecha date );

Ejercicio 3 Crear un trigger que almacene el historial de modificaciones de nombres de productos. CREATE OR REPLACE TRIGGER t_product AFTER UPDATE ON productcib FOR EACH ROW BEGIN INSERT INTO historial_cib VALUES (:old.prodid, :old.descrip, sysdate); END;

Ejercicio 3 Actualizar una descripción de la tabla product. UPDATE productcib SET descrip = 'NUEVA DESCRIPCIÓN' WHERE prodid = 5 ;

Ejercicio 3 Comprobar que haya insertado en la tabla historial. SELECT * FROM historial_cib ;

Cláusula WHEN Válida sólo cuando se usa FOR EACH ROW. Se disparará sólo cuando cumpla la condición. Se puede usar las variables old y new dentro de la condición, pero no se usan los dos puntos (:)

Ejercicio 4 Crear un trigger que muestre un mensaje cuando se inserta un empleado con salario mayor a 1000. CREATE OR REPLACE TRIGGER t_emp AFTER INSERT ON emp FOR EACH ROW WHEN (new.sal>1000) BEGIN dbms_output.put_line('Salario superior'); END;

Creamos la tabla Empleado

Ejercicio 4 Insertar un empleado con salario mayor a 1000. INSERT INTO emp (empno, sal) VALUES (9876, 1001); Insertar un empleado con salario no mayor a 1000. INSERT INTO emp (empno, sal) VALUES (9877, 1000);

RESUMEN

Predicados en Triggers COMPORTAMIENTO INSERTING TRUE si fue un INSERT. FALSE caso contrario. UPDATING TRUE si fue un UPDATE. DELETING TRUE si fue un DELETE.

Ejercicio 5 Modificar la tabla historial para aumentar un campo ORDEN. En este campo se almacenará el tipo de orden DML que genera el registro. ALTER TABLE historial_cib ADD orden varchar2(10);

Ejercicio 5 Modificar el trigger t_product para que almacene el historial de inserciones y eliminaciones, además del de modificaciones de productos.

Ejercicio 5 CREATE OR REPLACE TRIGGER t_product AFTER INSERT OR UPDATE OR DELETE ON productcib FOR EACH ROW BEGIN IF INSERTING THEN INSERT INTO historial_cib VALUES(:new.prodid, :new.descrip, sysdate, 'INSERT'); ELSIF UPDATING THEN INSERT INTO historial_cib VALUES(:old.prodid, :old.descrip, sysdate, 'UPDATE'); ELSIF DELETING THEN INSERT INTO historial_cib VALUES(:old.prodid, :old.descrip, sysdate, 'DELETE'); END IF; END;

Probamos el Triggers INSERT INTO PRODUCTcib VALUES (6, 'PROBANDO TRIGGER 2'); UPDATE productcib SET descrip = 'NUEVA DESCRIPCIÓN 2' WHERE prodid = 5 ; DELETE FROM productcib WHERE prodid = 5 ;

CONSULTAR DATOS TRIGGER

Ejercicios Cree un trigger que valide que cualquier actualización del salario de un empleado el monto no debe pasar de 10000 nuevos soles. En caso se esté actualizando el salario de un empleado con un monto mayor, el trigger debe asignar el monto 10000 como tope. Cree un trigger que capture información de los empleados a los cuales se les está modificando el salario. Solamente para los de contabilidad (ACCOUNTING).

Ejercicios Simule una eliminación en cascada de tal forma que cuando se elimine una orden se eliminen los items de dicha orden. Cree tablas de auditoria(una sola tabla) para las modificaciones en las tablas emp, ord, item, deberá almacenar la fecha , pc,usuario ,valor antiguo(ord) y nuevo(ord) y el nombre de la tabla en la cual se realizo el cambio

MUCHAS GRACIAS ,ALGUNA PREGUNTA? FIN DE CLASE MUCHAS GRACIAS ,ALGUNA PREGUNTA?

introducción

PARTES BÁSICAS