Triggers en PL/SQL. Jonathan Medina Gómez Facultad de Ingeniería Universidad de Antioquia

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Triggers en PL/SQL. Jonathan Medina Gómez Facultad de Ingeniería Universidad de Antioquia"

Transcripción

1 Triggers en PL/SQL Jonathan Medina Gómez Facultad de Ingeniería Universidad de Antioquia

2 Triggers (Disparadores) Los triggers son bloques PL/SQL que se ejecutan de manera implícita cuando se están manipulando (INSERT, DELETE, UPDATE) los datos de una tabla. Son usados principalmente para establecer reglas de integridad complejas y labores de auditoría.

3 Triggers (Disparadores) II La ejecución de un trigger es transaccional, es decir, si un trigger de fila afecta n registros y si uno solo de ellos aborta,entonces todo el proceso se cancela. El orden de ejecución de los triggers es el siguiente: 1. Se ejecutan (si los* hay) los triggers BEFORE de operación. 2. Se ejecutan para cada fila: a. (Si los* hay) los triggers BEFORE de fila. b. Se ejecuta la operación DML correspondiente. c. (Si los* hay) los triggers AFTER de fila. 3. Se ejecutan (si los* hay) los triggers AFTER de operación * Si hay varios triggers con idéntica definición (a partir de Oracle 8i), el orden de ejecución entre ellos es aleatorio.

4 Un trigger tiene asociado: Un Evento: se refiere a la operación que se va a efectuar sobre la tabla (INSERT, DELETE o UPDATE). Un Momento: significa cuando se debe disparar el trigger en relación con el evento. Sus posibles valores son AFTER o BEFORE. Un Tipo: indica el número de veces que el cuerpo del trigger se debe ejecutar, si por la operación en conjunto (trigger de operación) o por cada fila procesada (trigger de fila).

5 Sintaxis CREATE [OR REPLACE] TRIGGER nombre_trigger momento evento ON tabla [ FOR EACH ROW [ WHEN condición de restricción] ] bloque de PL/SQL Cuando el evento es UPDATE, se puede(n) especificar la(s) columna(s) con la palabra OF (si no se especifican, el trigger se dispara con cualquiera de las columnas de la tabla que sea actualizada). El bloque comienza con la palabra DECLARE o BEGIN.

6 Referencia a valores antes y después de la operación Cuando es un trigger de fila, se puede hacer referencia al valor de una columna antes del cambio por medio de : OLD.columna y al valor después del cambio con :NEW.columna. EVENTO VALOR ANTERIOR VALOR NUEVO INSERT NULL El insertado DELETE UPDATE Valor antes del borrado Valor antes de la actualización NULL Valor después de la actualización

7 Ejemplo Trigger de operación Sea la tabla de productos: CREATE TABLE PRODUCTO( codigo NUMBER(6) PRIMARY KEY, precio NUMBER(6)); CREATE OR REPLACE TRIGGER control_inserción BEFORE INSERT ON producto BEGIN IF (TO_CHAR(SYSDATE,'DAY') IN ('SAT','SUN')) OR (TO_NUMBER(TO_CHAR(SYSDATE,'HH24')) NOT BETWEEN 8 AND 18) THEN RAISE_APPLICATION_ERROR(-20506,'Sólo se pueden ingresar productos en horario de oficina'); END IF; END; / La instrucción RAISE_APPLICATION_ERROR abortará la operación de inserción si ésta se intenta realizar en el horario no permitido.

8 Ejemplo Trigger de fila Supóngase la siguiente condición en una empresa: Ningún empleado puede ganar más que su jefe Supóngase que los jefes se manejan en una tabla separada a la de los empleados Sean las tablas: CREATE TABLE jefe( cedula NUMBER(5) PRIMARY KEY,nombre VARCHAR2(10) NOT NULL, salario NUMBER(8) NOT NULL, secretaria VARCHAR2(10)); CREATE TABLE emp( cedula NUMBER(10) PRIMARY KEY, nombre VARCHAR2(10) NOT NULL, jefe NUMBER(5) NOT NULL REFERENCES jefe,--clave foránea salario NUMBER(8) NOT NULL);

9 Ejemplo Trigger de fila (II) CREATE OR REPLACE TRIGGER el_jefe_gana_mas BEFORE INSERT ON emp DECLARE BEGIN END; / FOR EACH ROW salario_jefe jefe.salario%type; SELECT salario INTO salario_jefe FROM jefe WHERE cedula = :NEW.jefe; IF salario_jefe < :NEW.salario THEN RAISE_APPLICATION_ERROR(-20505,'Un empleado no puede ganar más que su jefe'); END IF;

10 Ejercicios: Considerar lo siguiente: Si a un empleado le actualizan su salario, que éste no vaya a quedar más alto que el de su jefe. Si a un empleado le cambian de jefe no le vayan a asignar uno que gane menos que él. Si a un jefe le bajan el salario se debe verificar que no quede más bajo que el de alguno de sus subordinados. Puede una persona figurar al mismo tiempo tanto en la tabla de empleados como en la de jefes? Cómo manejar el despido de jefes? Qué hacer con sus subordinados?

11 La cláusula WHEN Sirve para agregar una condición adicional para activar el trigger Para referirse a NEW y a OLD no se usan los dos puntos dentro de la condición de WHEN Ejemplo. Sean las tablas: CREATE TABLE producto( codigo NUMBER(3) PRIMARY KEY,precio NUMBER(4)); CREATE TABLE auditoria( usuario VARCHAR2(20),cuando DATE, producto NUMBER(6));

12 Ejemplo WHEN Usando WHEN CREATE or REPLACE TRIGGER quien_baja_precio BEFORE UPDATE OF precio ON producto FOR EACH ROW WHEN (new.precio < old.precio) BEGIN INSERT INTO auditoria VALUES(USER, SYSDATE,old.codigo); END; / Sin usar WHEN CREATE or REPLACE TRIGGER quien_baja_precio BEFORE UPDATE OF precio ON producto FOR EACH ROW BEGIN IF :new.precio < :old.precio THEN INSERT INTO auditoria VALUES(USER, SYSDATE, :old.codigo); END IF; END; / Conclusión: WHEN evita el uso de un IF explícito dentro del código. Ejercicio: Guardar el precio viejo y nuevo del producto.

Triggers 24/12/2016. Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos. Triggers en Oracle

Triggers 24/12/2016. Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos. Triggers en Oracle Triggers en Oracle Grupo de Ingeniería del Software y Bases de Datos Universidad de Sevilla Diciembre 2016 Introducción Objetivos de la práctica Conocer qué son los y para qué se utilizan Aprender a construir

Más detalles

Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos. Triggers

Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos. Triggers Triggers Grupo de Ingeniería del Software y Bases de Datos Universidad de Sevilla octubre 2011 Introducción Objetivos de la práctica Conocer qué son los y para qué se utilizan Aprender a construir Consultar

Más detalles

Triggers 27/11/2014. Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos. Triggers en Oracle

Triggers 27/11/2014. Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos. Triggers en Oracle Triggers en Oracle Grupo de Ingeniería del Software y Bases de Datos Universidad de Sevilla noviembre 2012 Introducción Objetivos de la práctica Conocer qué son los y para qué se utilizan Aprender a construir

Más detalles

Diseño de bases de datos

Diseño de bases de datos Departamento de Lenguajes y Sistemas Informáticos E.T.S. Ingeniería Informática. Universidad de Sevilla Avda Reina Mercedes s/n. 41012 Sevilla Tlf/Fax 954 557 139 E-mail lsi@lsi.us.es Web www.lsi.us.es

Más detalles

Triggers. BASES DE DATOS Mercedes García Merayo

Triggers. BASES DE DATOS Mercedes García Merayo Triggers BASES DE DATOS Mercedes García Merayo Triggers Un trigger es código (PL/SQL) que se ejecuta automáticamente cuando se realiza una determinada acción sobre la base de datos. Tipos de triggers Triggers

Más detalles

DISPARADORES EN SQL DISPARADORES EN SQL:1999 SINTAXIS GENERAL DE UN DISPARADOR EN SQL:1999 SINTAXIS GENERAL DE UN DISPARADOR EN SQL:1999

DISPARADORES EN SQL DISPARADORES EN SQL:1999 SINTAXIS GENERAL DE UN DISPARADOR EN SQL:1999 SINTAXIS GENERAL DE UN DISPARADOR EN SQL:1999 DISPARADORES EN SQL:1999 DISPARADORES EN SQL Modelos Avanzados de Bases de Datos Un (trigger) es un procedimiento especial que se ejecuta en respuesta a un evento específico. Ej. Al aumentar el sueldo

Más detalles

PL/SQL avanzado: Secuencias, triggers, cursores y subprogramas

PL/SQL avanzado: Secuencias, triggers, cursores y subprogramas avanzado 22/11/2016 avanzado: Secuencias, triggers, cursores y subprogramas Grupo de Ingeniería del Software y Bases de Datos Departamento de Lenguajes y Sistemas Informáticos Universidad de Sevilla Noviembre

Más detalles

A. Introducción. B. Los DATABASES TRIGGERS. PL/SQL en objetos de la base de datos. Oracle 11g - SQL, PL/SQL, SQL*Plus 271

A. Introducción. B. Los DATABASES TRIGGERS. PL/SQL en objetos de la base de datos. Oracle 11g - SQL, PL/SQL, SQL*Plus 271 PL/SQL en objetos de la base de datos A. Introducción Además de los bloques PL/SQL anónimos utilizados por SQL*PLus o por las herramientas de desarrollo (Oracle*FORMS, Oracle*Reports), se puede emplear

Más detalles

Unidad 6. Procedimientos Almacenados y Disparadores

Unidad 6. Procedimientos Almacenados y Disparadores Unidad 6 Procedimientos Almacenados y Disparadores Disparadores (Triggers) Características Los disparadores solo ocurren cuando se presentan determinados eventos Los tipos de eventos permitidos suelen

Más detalles

Tema: DISPARADORES (TRIGGERS)

Tema: DISPARADORES (TRIGGERS) Base de datos II. Guía 7 1 Facultad: Ingeniería Escuela: Computación Asignatura: Base de datos II Tema: DISPARADORES (TRIGGERS) Objetivo Conocer la definición y utilización de los triggers Materiales Oracle

Más detalles

Lenguaje SQL (2ª Parte) Definición de datos

Lenguaje SQL (2ª Parte) Definición de datos Lenguaje SQL (2ª Parte) Definición de datos Bases de Datos Práctica 3 DSIC - UPV Facultad de Informática Escuela Técnica Superior de Informática Aplicada Objetivos Sintaxis del Lenguaje de Definición de

Más detalles

Diseño de bases de datos

Diseño de bases de datos Departamento de Lenguajes y Sistemas Informáticos E.T.S. Ingeniería Informática. Universidad de Sevilla Avda Reina Mercedes sn. 41012 Sevilla TlfFax 954 557 139 E-mail lsi@lsi.us.es Web www.lsi.us.es Diseño

Más detalles

SUBPROGRAMAS PL/SQL César Martínez C. Profesor Instructor de Base de Datos Sede Puente Alto DUOC

SUBPROGRAMAS PL/SQL César Martínez C. Profesor Instructor de Base de Datos Sede Puente Alto DUOC SUBPROGRAMAS PL/SQL César Martínez C. Profesor Instructor de Base de Datos Sede Puente Alto DUOC INTRODUCCIÓN Los subprogramas son otro tipo de bloques PL/SQL Se diferencian de los bloques anónimos porque

Más detalles

La sintaxis de un trigger a nivel de registro es:

La sintaxis de un trigger a nivel de registro es: 9.2.2 CREACION DE TRIGGERS ROW Como ya hemos dicho, los triggers 'row' se ejecutan una vez para cada registro afectado por la sentencia DML que lo disparó. Es decir: si realizamos un UPDATE de varios registros,

Más detalles

Solución Ejercicio Prac. 3b (Esquema).

Solución Ejercicio Prac. 3b (Esquema). Solución Ejercicio Prac. 3b (Esquema). LIBRO(codlib, título, autores, temática, totalpres) CP= {codlib} VNN= {título} PRÉSTAMO(codlib, codsoc, fechapres, fechadev) CP= {codlib, fechapres} VNN= {codsoc}

Más detalles

Los disparadores pueden emplearse para muchas cosas diferentes, incluyendo:

Los disparadores pueden emplearse para muchas cosas diferentes, incluyendo: Triggers en Oracle 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

Más detalles

Práctica 3: Lenguaje SQL 2ª Parte: Definición de datos. Objetivos

Práctica 3: Lenguaje SQL 2ª Parte: Definición de datos. Objetivos Práctica 3: Lenguaje SQL 2ª Parte: Definición de datos Objetivos Presentar la sintaxis de creación de tablas Diferencia con SQL/92 Presentar la sintaxis de la modificación de definición de una tabla Presentar

Más detalles

Uso de Disparadores. Miguel Angel Garduño Cordova Isaac Méndez Hernández

Uso de Disparadores. Miguel Angel Garduño Cordova Isaac Méndez Hernández Reporte Uso de Disparadores Catedrático: Alumnos: Ing. María Elena Reyes Castellanos Miguel Angel Garduño Cordova Isaac Méndez Hernández Índice General Índice de tablas 2 Introducción 4 Objetivo 4 Desarrollo

Más detalles

Tema II: El modelo relacional de datos. (2.7) Automatización

Tema II: El modelo relacional de datos. (2.7) Automatización Tema II: El modelo relacional de datos. (2.7) El modelo relacional de datos. 2.5 El lenguaje standard SQL 2.5.1 Lenguaje de definición de datos DDL. 2.5.2 Lenguaje de manipulación de datos DML. 2.6 Información

Más detalles

DISPARADORES EN SQL SINTAXIS GENERAL DE UN DISPARADOR EN SQL:2003

DISPARADORES EN SQL SINTAXIS GENERAL DE UN DISPARADOR EN SQL:2003 DISPARADORES EN SQL Modelos Avanzados de Bases de Datos Curso 2004/2005 SINTAXIS GENERAL DE UN DISPARADOR EN SQL:2003 CREATE [OR REPLACE] TRIGGER nombre [temporalidad del evento] [granularidad del evento]

Más detalles

BD Activas: Motivación

BD Activas: Motivación BD Activas: Motivación Los SGBD convencionales son pasivos. Sólo ejecutan preguntas o transacciones realizadas por los usuarios o por los programas de aplicación. Para representar la semántica del mundo

Más detalles

Unidad III. Bases de Datos

Unidad III. Bases de Datos Clase:11 1 Unidad III Bases de Datos 2 SQL. Comandos de DDL. Comandos de DML. Agenda 3 SQL Structured Query Language SQL Los comandos del SQL pueden dividirse en tres grupos: Comandos de definición de

Más detalles

PROCEDIMIENTOS ALMACENADOS

PROCEDIMIENTOS ALMACENADOS PROCEDIMIENTOS ALMACENADOS Un procedimiento almacenado es un conjunto de sentencias SQL y de control de flujo Procedimientos almacenados definidos por el usuario Son procedimientos definidos por el usuario

Más detalles

TRIGGER LEONEL CADOSO ROMERO 1

TRIGGER LEONEL CADOSO ROMERO 1 TRIGGER Qué es un trigger o disparador o desencadenador para SQL server? Es una clase especial de procedimiento almacenado que se ejecuta automáticamente cuando se produce un evento en el servidor de bases

Más detalles

BASES DE DATOS 2º CURSO E.U.I. / F.I. Práctica 4: Estudio del SGBD ORACLE8 1 Gestión de transacciones 22 DE MAYO DE 2000

BASES DE DATOS 2º CURSO E.U.I. / F.I. Práctica 4: Estudio del SGBD ORACLE8 1 Gestión de transacciones 22 DE MAYO DE 2000 BASES DE DATOS 2º CURSO E.U.I. / F.I. Práctica 4: Estudio del SGBD ORACLE8 1 Gestión de transacciones 22 DE MAYO DE 2000 1 Se recomienda que para la realización de esta práctica se revisen los conceptos

Más detalles

Concepto de vista. (con ciertas limitaciones). nivel físico) Una vista es una tabla virtual (no tiene una correspondencia a

Concepto de vista. (con ciertas limitaciones). nivel físico) Una vista es una tabla virtual (no tiene una correspondencia a 2.6.1.- Concepto de vista. Una vista es una tabla derivada de otras tablas (básicas o virtuales). Una vista se caracteriza porque: Se considera que forma parte del esquema externo. Una vista es una tabla

Más detalles

Un ejemplo teórico de trigger podría ser éste:

Un ejemplo teórico de trigger podría ser éste: 9. TRIGGERS EN LA BASE DE DATOS Un trigger (disparador sería la traducción técnica) es un bloque PLSQL que se ejecuta implícitamente cuando ocurre un evento y pueden ser de base de datos o de aplicación.

Más detalles

Disparadores en ORACLE. Disparadores Tema 11

Disparadores en ORACLE. Disparadores Tema 11 Disparadores en ORACLE Disparadores Tema 11 Introducción PL/SQL: lenguaje de programación estructurado en bloques Bloques: unidad mínima en PL/SQL Soportan DML y DDL Anónimos / Con nombre TRIGGERS Disparadores

Más detalles

Disparadores (triggers)

Disparadores (triggers) Disparadores (triggers) Tabla de contenidos 1. Sintaxis de CREATE TRIGGER 2. Sintaxis de DROP TRIGGER 3. Utilización de disparadores A partir de MySQL 5.0.2 se incorporó el soporte básico para disparadores

Más detalles

Jair Ospino Ardila -- Guía Sencilla

Jair Ospino Ardila -- Guía Sencilla Jair Ospino Ardila -- jairospino@ingenieros.com Guía Sencilla Son procedimientos que se ejecutan cumple una condición establecida. automáticamente cuando se Los triggers pueden ser de: Inserción (INSERT)

Más detalles

PRÓLOGO... XI CAPÍTULO 1. FUNDAMENTOS DEL LENGUAJE PL/SQL.

PRÓLOGO... XI CAPÍTULO 1. FUNDAMENTOS DEL LENGUAJE PL/SQL. ÍNDICE PRÓLOGO... XI CAPÍTULO 1. FUNDAMENTOS DEL LENGUAJE PL/SQL. 1 Introducción... 1 Unidades léxicas... 7 Tipos de datos... 11 Declaración de variables... 15 CAPÍTULO 2. ESTRUCTURAS DE CONTROL 21 Introducción...

Más detalles

Checks, Triggers y Excepciones en InterBase: validando desde la base de datos

Checks, Triggers y Excepciones en InterBase: validando desde la base de datos Checks, Triggers y Excepciones en InterBase: validando desde la base de datos Por Alfonso Ricaño Bringas InterBase nos permite validar los valores que ingresan a los campos, mediante las restricciones

Más detalles

Examen de Bases de datos Grado de Ingeniería en Informática, Febrero, 2015

Examen de Bases de datos Grado de Ingeniería en Informática, Febrero, 2015 Examen de Bases de datos Grado de Ingeniería en Informática, Febrero, 2015 1) (3 puntos) El museo de la ciudad necesita gestionar las visitas guiadas de grupos y para ello se debe implementar una base

Más detalles

Procedimientos almacenados en PL/SQL. Jonathan Medina Gómez Facultad de Ingeniería Universidad de Antioquia

Procedimientos almacenados en PL/SQL. Jonathan Medina Gómez Facultad de Ingeniería Universidad de Antioquia Procedimientos almacenados en PL/SQL Jonathan Medina Gómez Facultad de Ingeniería Universidad de Antioquia Ventajas... Los bloques se pueden almacenar en forma permanente mediante subprogramas (funciones

Más detalles

GUIA DE TRIGGERS (Disparadores) EN MYSQL

GUIA DE TRIGGERS (Disparadores) EN MYSQL GUIA DE TRIGGERS (Disparadores) EN MYSQL Conceptos, historia y contexto A partir de MySQL 5.0.2 se incorporó el soporte básico para disparadores (triggers). Un disparador es un objeto con nombre dentro

Más detalles

Departamento de Lenguajes y Sistemas Informáticos

Departamento de Lenguajes y Sistemas Informáticos Departamento de Lenguajes y Sistemas Informáticos Avda Reina Mercedes s/n. 41012 Sevilla Tlf/Fax 954 557 139 E-mail lsi@lsi.us.es www.lsi.us.es E.T.S. Ingeniería Informática Diseño de bases de datos Anexo

Más detalles

5.1 Procedimientos y Funciones Almacenados. 5.2 Disparadores (Triggers).

5.1 Procedimientos y Funciones Almacenados. 5.2 Disparadores (Triggers). Unidad 5 SQL Procedural 5.1 Procedimientos y Funciones. 5.2 Disparadores (Triggers). Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 MySQL 1. Se usará la Base de Datos llamada LaConsentida.

Más detalles

Conceptos de Bases de Datos Relacionales Triggers

Conceptos de Bases de Datos Relacionales Triggers Conceptos de Bases de Datos Relacionales Triggers Trigger Un trigger es un procedimiento almacenado asociado con una tabla, el cual se ejecuta automáticamente cuando se modifica un dato de esa tabla Stored

Más detalles

Gestión de nóminas diciembre 2011

Gestión de nóminas diciembre 2011 Contexto del problema Una empresa ha decidido desarrollar un sistema de información cuyo objetivo principal es la gestión de las nóminas de sus empleados. Iniciado el estudio del dominio del problema,

Más detalles

Interacción con el Servidor Oracle8. Copyright Oracle Corporation, 1998. All rights reserved.

Interacción con el Servidor Oracle8. Copyright Oracle Corporation, 1998. All rights reserved. 5 Interacción con el Servidor Oracle8 Copyright Oracle Corporation, 1998. All rights reserved. Objetivos Al final de esta lección n usted podrá: Escribir correctamente una sentencia SELECT en PL/SQL Declarar

Más detalles

EXAMEN: BASES DE DATOS 4º Ingeniería Informática (31 de enero de 2008)

EXAMEN: BASES DE DATOS 4º Ingeniería Informática (31 de enero de 2008) EXAMEN: BASES DE DATOS 4º Ingeniería Informática (31 de enero de 2008) Autorizo la publicación de la nota del examen junto a mi número de matrícula, tanto en la Web como en los tablones SI NO PARTE TEÓRICA

Más detalles

PRÁCTICA III. DISPARADORES EN SQL (II)

PRÁCTICA III. DISPARADORES EN SQL (II) PRÁCTICA III. DISPARADORES EN SQL (II) MODELOS AVANZADOS DE BASES DE DATOS CURSO 2000/2001 Objetivo Conocer mejor los disparadores en SQL. Se verá uno de los principales inconvenientes que se presentan

Más detalles

Cursores, Triggers, Indices, Transacciones, Vistas Gestión y Modelación de Datos

Cursores, Triggers, Indices, Transacciones, Vistas Gestión y Modelación de Datos Cursores, Triggers, Indices, Transacciones, Vistas Gestión y Modelación de Datos Cursores CREATE OR REPLACE FUNCTION incsalario (INTEGER) RETURNS TEXT AS ' DECLARE curemp CURSOR FOR SELECT nombres, apellidos,

Más detalles

Departamento de Lenguajes y Sistemas Informáticos E.T.S. de Ingeniería Informática Universidad de Sevilla Avda Reina Mercedes, s/n.

Departamento de Lenguajes y Sistemas Informáticos E.T.S. de Ingeniería Informática Universidad de Sevilla Avda Reina Mercedes, s/n. Departamento de Lenguajes y Sistemas Informáticos E.T.S. de Ingeniería Informática Universidad de Sevilla Avda Reina Mercedes, s/n. 41012 SEVILLA 1 DISEÑO DE BASES DE DATOS (23 Septiembre 2003) Problema

Más detalles

SQL: Vistas, Triggers, y Procedimientos Almacenados

SQL: Vistas, Triggers, y Procedimientos Almacenados SQL: Vistas, Triggers, y Procedimientos Almacenados Dr. Gerardo Rossel Bases de Datos 1C 2018 PostgreSQL Aclaración En estas diapositivas nos basaremos principalmente en PostgreSQL. Diferentes motores

Más detalles

SQL PROCEDURAL Triggers y Stored Procedures. Ing. Gustavo A. Correa Reina UNCPBA 2008

SQL PROCEDURAL Triggers y Stored Procedures. Ing. Gustavo A. Correa Reina UNCPBA 2008 Base de Datos I SQL PROCEDURAL Triggers y Stored Procedures Ing. Gustavo A. Correa Reina UNCPBA 2008 SQL Procedural Posibilita el uso de código procedural conjuntamente con sentencias SQL que son almacenadas

Más detalles

Refactorización en Base de Datos. mayo de 2008

Refactorización en Base de Datos. mayo de 2008 Refactorización en Base de Datos mayo de 2008 Refactorización en Bases de Datos Un cambio en el esquema de BD para mejorar su diseño manteniendo su semántica y comportamiento. Refactorizar aspectos estructurales:

Más detalles

Access SQL: DDL y DML. Una empresa de Ingeniería precisa una base de datos para la gestión de sus proyectos.

Access SQL: DDL y DML. Una empresa de Ingeniería precisa una base de datos para la gestión de sus proyectos. SGBD y SQL Access SQL: DDL y DML Ejercicio Una empresa de Ingeniería precisa una base de datos para la gestión de sus proyectos. Necesita almacenar información acerca de sus empleados y los proyectos en

Más detalles

BASES DE DATOS 2º CURSO E.U.I. / F.I. Práctica 3: El lenguaje SQL. 2ª Parte: Definición de datos 10 DE ABRIL DE 2000

BASES DE DATOS 2º CURSO E.U.I. / F.I. Práctica 3: El lenguaje SQL. 2ª Parte: Definición de datos 10 DE ABRIL DE 2000 1. El lenguaje SQL del sistema ORACLE8 1.1 Definición de datos. BASES DE DATOS En el sistema ORACLE no existe el concepto de esquema de base de datos tal como aparece en el lenguaje SQL estándar. Asociado

Más detalles

BASES DE DATOS ACTIVAS

BASES DE DATOS ACTIVAS BASES DE DATOS ACTIVAS 1 Motivación: comportamientos activos 2 Reglas ECA 3 Disparadores (Oracle) S. Ilarri 1 1. Motivación: comportamientos activos Las BD tradicionales se consideran pasivas No pueden

Más detalles

1. Motivación: comportamientos activos. 2. Reglas ECA. Ejemplos BASES DE DATOS ACTIVAS. Las BD tradicionales se consideran pasivas

1. Motivación: comportamientos activos. 2. Reglas ECA. Ejemplos BASES DE DATOS ACTIVAS. Las BD tradicionales se consideran pasivas BASES DE DATOS ACTIVAS 1. Motivación: comportamientos activos 1 Motivación: comportamientos activos 2 Reglas ECA 3 Disparadores (Oracle) Las BD tradicionales se consideran pasivas No pueden reaccionar

Más detalles

Triggers. Carmen Hernández Triggers y PL/SQL 2

Triggers. Carmen Hernández Triggers y PL/SQL 2 Triggers y PL/SQL Triggers Un trigger (disparador) define una acción que la base de datos siempre debería realizar cuando ocurre algún tipo de acontecimiento que la afecta. Se utilizan para mantener la

Más detalles

Examen de Ficheros y bases de datos ITIS Convocatoria de junio II PARCIAL

Examen de Ficheros y bases de datos ITIS Convocatoria de junio II PARCIAL Examen de Ficheros y bases de datos ITIS Convocatoria de junio II PARCIAL ) (4,3 puntos) Considérese un fichero secuencial indexado con un índice numérico (con valores entre 0 y 65.535) con duplicados

Más detalles

PL/SQL. - La unidad de programación utilizada por PL/SQL es el bloque. - Todos los programas de PL/SQL están conformados por bloques.

PL/SQL. - La unidad de programación utilizada por PL/SQL es el bloque. - Todos los programas de PL/SQL están conformados por bloques. PL/SQL - Disponible en http://www.lsi.us.es/docencia/get.php?id=5784 - Bibliografía:.Principios de Bases de Datos. Serrano, Sara Lana, Madrid E.U.I.T de Telecomunicación..Gestión de Bases de Datos. Framiñan

Más detalles

Se crean para conservar la integridad referencial y la coherencia entre los datos entre distintas tablas.

Se crean para conservar la integridad referencial y la coherencia entre los datos entre distintas tablas. Triggers También llamados disparadores o desencadenadores, es un tipo de procedimiento almacenado que se ejecuta cuando se intenta modificar los datos de una tabla (o vista). Se definen para una tabla

Más detalles

Triggers (o disparadores) Definición y sintaxis

Triggers (o disparadores) Definición y sintaxis Triggers (o disparadores) Definición y sintaxis Son bloques PL/SQL almacenados asociados a una tabla que se ejecutan o disparan automáticamente cuando se producen ciertos eventos sobre la tabla (inserción,

Más detalles

BASES DE DATOS ACTIVAS

BASES DE DATOS ACTIVAS BASES DE DATOS ACTIVAS Bibliografía Piattini & Díaz (2000). Advanced Database Technology and Design. Capt. 3 Elmasri & Navathe (2000). Fundamentals of DBS, Capt. 23.1 Garcia-Molina, Ullman & Widom 2002.

Más detalles

2.6.2.- Aplicaciones de las vistas. 2.6.1.- Concepto de vista. 2.6.3.- Vistas en SQL. 2.6.3.- Vistas en SQL.

2.6.2.- Aplicaciones de las vistas. 2.6.1.- Concepto de vista. 2.6.3.- Vistas en SQL. 2.6.3.- Vistas en SQL. 2.6.1.- Concepto de vista. Una vista es una tabla derivada de otras tablas (básicas o virtuales). Una vista se caracteriza porque: Se considera que forma parte del esquema externo. Una vista es una tabla

Más detalles

DISEÑO DE BASES DE DATOS ºC Examen 8/Feb/2006

DISEÑO DE BASES DE DATOS ºC Examen 8/Feb/2006 Cuestión: Control de concurrencia Haga un cuadro comparativo de las ventajas e inconvenientes de los distintos métodos de control de concurrencia que conozca (en filas: el método, en columnas: ventajas

Más detalles

Bases de Datos 2: Procedimientos Almacenados, Funciones y Triggers. Tecnólogo en Informática, sede Paysandú Bases de Datos 2

Bases de Datos 2: Procedimientos Almacenados, Funciones y Triggers. Tecnólogo en Informática, sede Paysandú Bases de Datos 2 Bases de Datos 2: Procedimientos Almacenados, Funciones y Triggers Tecnólogo en Informática, sede Paysandú Bases de Datos 2 Funciones Variables Declarar: DECLARE @ Asignar valor:

Más detalles

Otros objetos de Base de Datos

Otros objetos de Base de Datos Maestría en Bioinformática Bases de Datos y Sistemas de Información Otros objetos de Base de Datos Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.uy Agenda Secuencias Triggers Vistas Código almacenado

Más detalles

Disparadores en ORACLE

Disparadores en ORACLE Diño de Bas de Datos y Seguridad de Información PLSQL-126 PLSQL: lenguaje de programación estructurado en bloques Bloques: unidad mínima en PLSQL Soportan DML y DDL Anónimos Con nombre Disparadores (triggers)

Más detalles

BASES de DATOS ÁCTIVAS

BASES de DATOS ÁCTIVAS BASES de DATOS ÁCTIVAS Bibliografía Piattini & Díaz (2000). Advanced Database Technology and Design. Capt. 3 Elmasri & Navathe (2000). Fundamentals of DBS, Capt. 23.1 Garcia-Molina, Ullman & Widom 2002.

Más detalles

Catedra de Base de Datos

Catedra de Base de Datos Catedra de Base de Datos Facultad de Ciencias Exactas y Tecnología Universidad Nacional de Tucumán Ciclo Lectivo 2017 Programa Analítico de la Materia Unidad 6: SQL. Transacciones. Procedimientos Almacenados.

Más detalles

Procedimientos, Funciones, Trigger y Cursores en ORACLE

Procedimientos, Funciones, Trigger y Cursores en ORACLE Procedimientos, Funciones, Trigger y Cursores en ORACLE PROCEDIMIENTOS ALMACENADOS Un procedimiento almacenado es un conjunto de instrucciones en PL/SQL, que pueden ser llamados usando el nombre que se

Más detalles

PRÁCTICA T2. El lenguaje procedural PL/SQL de Oracle

PRÁCTICA T2. El lenguaje procedural PL/SQL de Oracle 3º Ingeniero Técnico en Informática de Sistemas Asignatura: Fundamentos de Bases de Datos Curso: 2007/8 PRÁCTICA T2. El lenguaje procedural PL/SQL de Oracle Objetivos Conocer los conceptos y estructuras

Más detalles

DR/UC. DR/UC FACTURA(CIF, N_Factura, Fecha, Total) ASIGNATURA(Cod_Asignatura, Titulación, Nombre_Asig, Curso, Empresa_fotocopias, precio_fotocopia)

DR/UC. DR/UC FACTURA(CIF, N_Factura, Fecha, Total) ASIGNATURA(Cod_Asignatura, Titulación, Nombre_Asig, Curso, Empresa_fotocopias, precio_fotocopia) GRAFO RELACIONAL EMPRESA(CIF, Nombre, Calle, Número, Población FACTURA(CIF, N_Factura, Fecha, Total ASIGNATURA(Cod_Asignatura, Titulación, Nombre_Asig, Curso, Empresa_fotocopias, precio_fotocopia MATRICULADO(Cod_Asignatura,

Más detalles

Tema 1. Bases de datos activas

Tema 1. Bases de datos activas 18 de marzo de 2002 1 1. Introducción 2. El modelo evento-condición-acción Definición y uso de disparadores en Oracle Características de las reglas activas 3. Propiedades de las reglas activas 4. Aplicaciones

Más detalles

Solució Exercici Prac. 3b (Esquema).

Solució Exercici Prac. 3b (Esquema). Solució Exercici Prac. 3b (Esquema). LIBRO(codlib, título, autores, temática, totalpres) CP= {codlib} VNN= {título} PRÉSTAMO(codlib, codsoc, fechapres, fechadev) CP= {codlib, fechapres} VNN= {codsoc} CAj=

Más detalles

Disparadores en ORACLE

Disparadores en ORACLE Diseño de Bases de Datos y Seguridad de la Información PL/SQL-1 PL/SQL: lenguaje de programación estructurado en bloques Bloques: unidad mínima en PL/SQL Soportan DML y DDL Anónimos / Con nombre Disparadores

Más detalles

Oracle Database 11g: Conceptos Fundamentales de SQL y PL/SQL Nuevo

Oracle Database 11g: Conceptos Fundamentales de SQL y PL/SQL Nuevo Oracle University Contacte con nosotros: 902 302 302 Oracle Database 11g: Conceptos Fundamentales de SQL y PL/SQL Nuevo Duración: 5 Días Lo que aprenderá En este curso, los estudiantes aprenderán los conceptos

Más detalles

Cuestión: Proceso de consultas en BD Relacionales. Problema 1: Diseño conceptual

Cuestión: Proceso de consultas en BD Relacionales. Problema 1: Diseño conceptual Cuestión: Proceso de consultas en BD Relacionales Políticas y heurísticas para la optimización de árboles algebraicos. Peso: 5% Tiempo:5min Problema : Diseño conceptual Una empresa decide crear un portal

Más detalles

Examen de Ficheros y bases de datos Convocatoria de junio II PARCIAL

Examen de Ficheros y bases de datos Convocatoria de junio II PARCIAL Examen de Ficheros y bases de datos Convocatoria de junio II PARCIAL ) 3 puntos) Considérese un fichero secuencial con un índice con asociación estática. El índice es primario y está organizado sobre una

Más detalles

Catedra de Base de Datos

Catedra de Base de Datos Catedra de Base de Datos Facultad de Ciencias Exactas y Tecnología Universidad Nacional de Tucumán Ciclo Lectivo 2016 Cronograma 25-Oct Martes SQL. Transacciones. Procedimientos Almacenados. Triggers.

Más detalles

Base de datos II Facultad de Ingeniería. Escuela de computación.

Base de datos II Facultad de Ingeniería. Escuela de computación. 2 Base de datos II Facultad de Ingeniería. Escuela de computación. Base de datos II. Guía 3 3 Introducción Este manual ha sido elaborado para orientar al estudiante de Bases de datos II en el desarrollo

Más detalles

Ejercicios SQL - Definición de Datos - Solución

Ejercicios SQL - Definición de Datos - Solución Ejercicios SQL - Definición de Datos - Solución Ejercicio 1: Disponemos de la siguiente Base de Datos para gestionar la información de los pubs de una determinada provincia. PUB TITULAR EMPLEADO #COD_PUB

Más detalles

Tema 5. Lenguaje de Definición de Datos

Tema 5. Lenguaje de Definición de Datos Tema 5 Lenguaje de Definición de Datos Índice Tema 5 1. Creación de tablas. Restricciones 2. Consultas de creación de tablas. 3. Modificación de la estructura de una tabla. 4. Borrado de tablas. 5. Creación

Más detalles

Características del lenguaje SQL

Características del lenguaje SQL Lenguaje SQL Características del lenguaje SQL Es el lenguaje estándar para realizar operaciones en bases de datos relacionales. Instrucciones: SELECT Consulta. Su implementación está basada en álgebra

Más detalles

departamento NUMBER(3) FK (DEPARTAMENTOS.CODIGO) salario NUMBER(3) NOT NULL fecha_alta DATE NOT NULL jefe NUMBER(5) FK (EMPLEADOS.

departamento NUMBER(3) FK (DEPARTAMENTOS.CODIGO) salario NUMBER(3) NOT NULL fecha_alta DATE NOT NULL jefe NUMBER(5) FK (EMPLEADOS. 7.- MANIPULACION DE DATOS El lenguaje de manipulación de datos (DML) es parte esencial del SQL. Si queremos actualizar, insertar o eliminar datos de la base de datos, tenemos que ejecutar una sentencia

Más detalles

Triggers. Introducción

Triggers. Introducción Triggers Dr. Héctor Saldaña Aldana Introducción Un trigger (o desencadenador o disparador) es una clase especial ilde procedimiento i almacenado que se ejecuta automáticamente cuando se produce un evento

Más detalles

Oracle Database: Conceptos Básicos de SQL y PL/SQL

Oracle Database: Conceptos Básicos de SQL y PL/SQL Oracle University Contact Us: +34916267792 Oracle Database: Conceptos Básicos de SQL y PL/SQL Duration: 5 Days What you will learn Este curso está diseñado para enseñar los conceptos fundamentales de SQL

Más detalles

Bibliografía Oracle Database Concepts - 10g Release 2 (10.2) (Octubre 2005)

Bibliografía Oracle Database Concepts - 10g Release 2 (10.2) (Octubre 2005) Disparadores en ORACLE Bibliografía Oracle Database Concepts - 10g Release 2 (10.2) (Octubre 2005) Oracle Database Application Developer's Guide Fundamentals 10g Release 2 (10.2) (Noviembre 2005) Óscar

Más detalles

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLOGICOS ESCUELA DE COMPUTACION

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLOGICOS ESCUELA DE COMPUTACION CICLO 01-2015 UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLOGICOS ESCUELA DE COMPUTACION GUIA DE LABORATORIO Nº11 Nombre de la práctica: Implementación de Procedimientos almacenados y desencadenadores

Más detalles

Para procesar instrucciones SELECT que devuelvan más de una fila, son necesarios cursores explicitos combinados con un estructura de bloque.

Para procesar instrucciones SELECT que devuelvan más de una fila, son necesarios cursores explicitos combinados con un estructura de bloque. Base de datos II. Guía 8 1 Facultad: Ingeniería Escuela: Computación Asignatura: Base de datos II Tema: Cursores Objetivo Conocer la definición y utilización de los cursores Materiales Oracle 12 c Guía

Más detalles

Los disparadores pueden ser utilizados para cumplir con alguna de las siguientes tareas:

Los disparadores pueden ser utilizados para cumplir con alguna de las siguientes tareas: Guía de Disparadores Un disparador (o trigger) es un procedimiento almacenado asociado a una tabla que se ejecuta al realizar una operación básica (INSERT, un DELETE o un UPDATE) sobre ésta. La operación

Más detalles

Bases de Datos Ejercicio Número 2 Bogotá, Diciembre 5 de 2013

Bases de Datos Ejercicio Número 2 Bogotá, Diciembre 5 de 2013 Bases de Datos Ejercicio Número 2 Bogotá, Diciembre 5 de 203 Enunciado del ejercicio En los servidores de bases de asignados al curso: Sybase, MS SQL Server y Oracle, elaborar el ejercicio sobre aislamiento,

Más detalles

Oracle Express y Toad for Oracle

Oracle Express y Toad for Oracle 6. Creación de Oracle y Toad for Oracle Grupo de Ingeniería del Software y Bases de Datos Universidad de Sevilla octubre 2011 Toad for Oracle 6. Creación de Objetivos de este tema Conocer Oracle Conocer

Más detalles

DISEÑO DE BASES DE DATOS 2007/2008 2ºC Examen 18/Jun/2008. Cuestiones. Problema 1: Diseño conceptual BD

DISEÑO DE BASES DE DATOS 2007/2008 2ºC Examen 18/Jun/2008. Cuestiones. Problema 1: Diseño conceptual BD Avda Reina Mercedes s/n. 402 Sevilla Examen 8/Jun/2008 Cuestiones Q. Compare los algoritmos pesimistas de control de concurrencia con los algoritmos optimistas. Cuál es la política de cada uno? En qué

Más detalles

EJEMPLOS PRÁCTICOS SQL

EJEMPLOS PRÁCTICOS SQL EJEMPLOS PRÁCTICOS SQL EJEMPLOS PRÁCTICOS SQL INTEGRIDAD REFERENCIAL DROP SCHEMA IF EXISTS Tablas1; CREATE SCHEMA Tablas1; USE Tablas1; create table Cliente( Dni VARCHAR(10), Nombre VARCHAR(10), Apellido

Más detalles

Cadena de caracteres Numéricas Fecha y hora Booleanas Tipo registro Tipo cursor

Cadena de caracteres Numéricas Fecha y hora Booleanas Tipo registro Tipo cursor Cadena de caracteres Numéricas Fecha y hora Booleanas Tipo registro Tipo cursor Declaración de variables Inicialización de variables Declaración de constantes Asignación de valores a variables Tipo Nombre_var

Más detalles

Tema 5. DML (Parte II)

Tema 5. DML (Parte II) Tema 5 DML (Parte II) IES Francisco Romero Vargas Departamento de Informática Tema 5. DML (II). Página 1 de 12 1. Introducción Se insta al alumno a navegar por el manual de referencia de MySQL con el fin

Más detalles

Tema 1. Bases de datos activas

Tema 1. Bases de datos activas Tema 1. Bases de datos activas Diseño de Sistemas de Bases de Datos Merche Marqués 18 de marzo de 2002 Índice 1. Introducción 1 2. El modelo evento condición acción 1 2.1. Definición y uso de disparadores

Más detalles

Restricciones de Integridad. Claves Primarias. Protección. Índice. Clave de una Relación. Declaración n de Claves

Restricciones de Integridad. Claves Primarias. Protección. Índice. Clave de una Relación. Declaración n de Claves Protección Restricciones de Integridad Uno de los problemas más serios de quienes escriben aplicaciones que actualizan la Base de Datos es que una información introducida pueda ser errónea y pueda, por

Más detalles

Existen dos tipos de disparadores que se clasifican según la cantidad de ejecuciones a realizar:

Existen dos tipos de disparadores que se clasifican según la cantidad de ejecuciones a realizar: Trigger Un trigger(o desencadenador) es una clase especial de procedimiento almacenado que se ejecuta automáticamente cuando se produce un evento en el servidor de bases de datos. Los triggers o disparadores

Más detalles

Permite definir cada relación que pertenece a la base de datos relacional, incluyendo:

Permite definir cada relación que pertenece a la base de datos relacional, incluyendo: TEMA 7.- EL ESTANDAR SQL. El Sublenguaje de Manipulación. El Sublenguaje de Definición. El Sublenguaje de Control. El Sublenguaje Huésped. 1. El Sublenguaje de Manipulación. (Se verá en la clase de problemas)

Más detalles

Introducción a la Ingeniería del Software y a los Sistemas de Información. Alojamientos. octubre Enunciado

Introducción a la Ingeniería del Software y a los Sistemas de Información. Alojamientos. octubre Enunciado Enunciado La trascripción que aparece a continuación corresponde a una entrevista con una emprendedora que quiere crear una empresa de gestión de alquileres de apartamentos turísticos. Pregunta: Bien,

Más detalles

Introducción a PL/SQL

Introducción a PL/SQL Introducción a 21/11/2014 1. Qué es? 2. Bloque Introducción a Grupo de Ingeniería del Software y Bases de Datos Departamento de Lenguajes y Sistemas Informáticos Universidad de Sevilla Noviembre 2014 1.

Más detalles

Oracle Database 10g: Conceptos Básicos de SQL y PL/SQL

Oracle Database 10g: Conceptos Básicos de SQL y PL/SQL Oracle University Contacte con nosotros: 902 302 302 Oracle Database 10g: Conceptos Básicos de SQL y PL/SQL Duración: 5 Días Lo que aprenderá Obtendrá los conocimientos fundamentales de SQL y PL/SQL mediante

Más detalles

DESARROLLO SISTEMAS INFORMATICOS WEB 1 (DSIW1) ING. TOMAS URBINA. Funciones en MySql

DESARROLLO SISTEMAS INFORMATICOS WEB 1 (DSIW1) ING. TOMAS URBINA. Funciones en MySql 1 Funciones en MySql Una función en MySQL es una rutina creada para tomar unos parámetros, procesarlos y retornar en un salida. Se diferencian de los procedimientos en las siguientes características: Solamente

Más detalles