Disparadores en ORACLE
|
|
|
- Virginia Villalba Poblete
- hace 7 años
- Vistas:
Transcripción
1 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) en Oracle: bloques de código que son implícitamente invocados cuando algo sucede Triggers vs. Procedimientos Ejecución implícita: Disparar No admiten argumentos Aplicaciones Restricciones (Constraints) Auditorías Informar de eventos optional required EXCEPTION optional required CREATE TRIGGER NombreTrigger BEFORE INSERT ON StarsIn.. TRIGGER CREATE PROCEDURE Get_emp_rec (Emp_number IN Emp_tab.Empno%TYPE) AS PROCEDIMIENTO PLSQL-127 1
2 3 Tipos de Disparadores: DML (FiSentencia, BEFOREAFTER) INSTEAD OF (vistas) SYSTEM PLSQL-128 Estructura General de un Disparador Evento CREATE [OR REPLACE] TRIGGER nombre {BEFORE AFTER INSTEAD OF} Temporalidad del Evento {INSERT DELETE UPDATE [OF <atributo>]} ON <> [FOR EACH ROW STATEMENT] Granuridad [WHEN condición] Condición [ ] cuerpo del trigger [EXCEPTION ] Acción PLSQL-129 2
3 Ejemplo Estructura General de un Disparador INVENTARIO (num_producto, descripción, unidades_dispon, punto_pedido, cantidad_pedido) PEDIDOSPENDIENTES (num_producto, cantidad_pedido, fecha_pedido) UPDATE Inventario SET unidades_dispon=unidades_dispon-3 WHERE num_producto=10456; SI el número de unidades disponibles de e producto (num_producto=10456) en el inventario es inferior al punto de pedido ENTONCES: genera una nueva orden de pedido INSERT INTO PedidosPendientes VALUES (10456, 100, ); PLSQL-130 Estructura General de un Disparador CREATE OR REPLACE TRIGGER Disparador atributo AFTER UPDATE OF unidades_dispon ON Inventario Evento FOR EACH ROW WHEN (new.unidades_dispon < new.punto_pedido) X NUMBER; -- Número de pedidos pendientes de e producto SELECT COUNT(*) INTO X FROM PedidosPendientes WHERE num_producto=:new.num_producto; -- Si no hay ninguna orden de pedido, hacer el pedido IF x = 0 THEN INSERT INTO PedidosPendientes VALUES (:new.num_producto, :new.cantidad_pedido, SYSDATE); END IF; Condición Cuando el número de unidades en el inventario a inferior al punto de pedido. Acción PLSQL-131 3
4 Temporalidad del Evento: AFTER BEFORE BEFORE Ejecutan acción asociada antes de que ntencia a ejecutada Decidir si acción debe realizar o no Utilizar valores alternativos para ntencia CREATE TRIGGER NombreTrigger BEFORE Inrt ON NombreTab. AFTER Ejecutan acción asociada después de que haya ejecutado ntencia CREATE TRIGGER NombreTrigger AFTER Inrt ON NombreTab. PLSQL-132 Granuralidad del Evento: FOR EACH ROW STATEMENT A NIVEL DE FILA: ROW TRIGGERS Ejecutan acción asociada tantas veces como fis vean afectadas por ntencia que lo dispara Si ninguna fi ve afectada, no dispara CREATE TRIGGER NombreTrigger BEFORE UPDATE ON NombreTab FOR EACH ROW [WHEN ]. A NIVEL DE SENTENCIA: STATEMENT TRIGGERS Ejecutan una única vez acción asociada, independientemente del número de fis que vean afectadas por ntencia (incluso si no hay fis afectadas). CREATE TRIGGER NombreTrigger BEFORE INSERT ON NombreTab [STATEMENT]... opción por defecto PLSQL-133 4
5 Ejemplo: A NIVEL DE FILA (ROW TRIGGER) Cuando Cuando borre borre en en alguna alguna persona persona que que lme lme pepe pepe o cuya cuya edad edad a a mayor mayor de de años, años, eliminar eliminar también también dicha dicha persona persona de de Cod Nombre Edad C1 C2 C3 C4 C5 María Luisa Cod Nombre Edad C1 C2 C3 C4 C5 María Luisa DELETE DELETE FROM FROM WHERE WHERE cod cod in in ( C1, C3, C4 ) ( C1, C3, C4 ) Borra C3 y C4 de 2 PLSQL-134 Ejemplo: A NIVEL DE SENTENCIA (STATEMENT) Cuando Cuando borre borre en en Socio Socio emitir emitir un un mensaje mensaje indicando indicando que que no no deberían deberían borrar borrar socios socios Socio Cod S1 S2 S3 S4 S5 Nombre Fecha_ant María Luisa DELETE DELETE FROM FROM socio socio WHERE WHERE nombre nombre = = Borra 3 tups y emite un único mensaje PLSQL-135 5
6 Orden de Ejecución Una ntencia SQL puede disparar varios TRIGGERS. La activación de un trigger puede disparar activación de otros triggers. 1. Triggers Before (a nivel de ntencia) 2. Para cada fi: 1. Trigger Before (a nivel de fi) 2. Ejecuta Sentencia 3. Triggers After (a nivel de fi) 3. Triggers After (a nivel de ntencia) Se compromete o deshace toda transacción. El orden de ejecución de disparadores del mismo tipo es indeterminado. PLSQL-136 Condición Expresa una condición que debe cumplir en el momento de producir el evento, para que acción a ejecutada. Se evalúa para cada fi. WHEN old.nombre = pepe OR old.edad > 35 Debe r una expresión booleana y no puede contener subconsultas. Se puede utilizar cualquier combinación de operadores lógicos (AND, OR, NOT) y recionales (< <= > >= = <>). No puede especificar una condición para los disparadores a nivel de ntencia (STATEMENT) ni los disparadores INSTEAD OF. PLSQL-137 6
7 Corretion Identifiers: Valores OLD y NEW Tipo especial de variable PLSQL tratada como un registro de tipo _modificada%rowtype Con OLD.nombre_columna referenciamos: al valor que tenía columna antes del cambio debido a una modificación (UPDATE) al valor de una columna antes de una operación de borrado sobre misma (DELETE) al valor NULL para operaciones de inrción (INSERT) Con NEW.nombre_columna referenciamos: Al valor de una nueva columna después de una operación de inrción (INSERT) Al valor de una columna después de modificar mediante una ntencia de modificación (UPDATE) Al valor NULL para una operación de borrado (DELETE) SINTAXIS Condición (WHEN.) En el cuerpo del disparador OLD, NEW :OLD, :NEW PLSQL-138 Ejemplo: A NIVEL DE FILA (ROW TRIGGER) Cuando Cuando borre borre en en alguna alguna persona persona que que lme lme pepe pepe o cuya cuya edad edad a a mayor mayor de de años, años, eliminar eliminar también también dicha dicha persona persona de de Cod Nombre Edad C1 C2 C3 C4 C5 María Luisa Cod Nombre Edad C1 C2 C3 C4 C5 María Luisa DELETE DELETE FROM FROM WHERE WHERE cod cod in in ( C1, C3, C4 ) ( C1, C3, C4 ) Borra C3 y C4 de 2 PLSQL-139 7
8 Ejemplo: A NIVEL DE FILA (ROW TRIGGER) CREATE OR REPLACE TRIGGER Disparador AFTER DELETE ON FOR EACH ROW WHEN old.nombre= OR old.edad>35 DELETE FROM 2 WHERE Cod=:old.Cod; Cod Nombre Edad END Disparador; NEW NULL NULL NULL OLD PLSQL-140 Disparados por ntencias DML (de varios tipos): INSERT or UPDATE or DELETE Todas s fis o sólo algunas (WHEN) LIBROS ISBN Triggers DML GÉNERO Nove ---- TÍTULO El Quijote ---- ESTADÍSTICAS GÉNERO Nove Infantil TOTAL_LIBROS CREATE OR REPLACE TRIGGER UpdateEstadisticasGenero AFTER INSERT OR DELETE OR UPDATE ON Libros CASE UPDATE Estadisticas SET END UpdateEstadisticasGenero; PLSQL-141 8
9 Funciones del Cuerpo del Disparador Inrting, Deleting, Updating CREATE OR REPLACE TRIGGER Ejemplo BEFORE INSERT OR UPDATE OR DELETE ON IF DELETING THEN Acciones asociadas al borrado ELSIF INSERTING THEN Acciones asociadas a inrción ELSIF UPDATING( COL1 ) Acciones asociadas a modificación ELSIF UPDATING( COL2 ) Acciones asociadas a modificación END IF; END Ejemplo; PLSQL-142 Triggers INSTEAD OF Sólo sobre VISTAS EMPLEADO DEPARTAMENTO DNI NOMBRE DEPARTAMENTO NOMBRE CÓDIGO José García CT-1 Contabilidad - 1 CT Recursos Humanos RRHH CREATE VIEW EmpleadoDpto as SELECT E.DNI, D.Nombre FROM Empleado E, Departamento D WHERE E.Departamento = D.Código; INSERT INTO EmpleadoDpto VALUES ( ', Contabilidad-1 ); ERROR en línea 1: ORA-01779: no puede modificar una columna que corresponde con una no rervada por cve CREATE OR REPLACE TRIGGER InrtEmpleadoDpto INSTEAD OF INSERT ON EmpleadoDpto V_Cod Departamento.Código%TYPE; SELECT Código INTO V_Cod FROM DEPARTAMENTO Where Nombre= :NEW.Nombre; INSERT INTO Departamento VALUES(:NEW.Nombre, V_Cod); INSERT INTO Empleado VALUES(:NEW.DNI,NULL,V_Cod); PLSQL-143 9
10 Elevar excepciones en el cuerpo del Disparador RAISE_APPLICATION_ ERROR (número_error, mensaje); Número error en el rango: [ y ] CREATE OR REPLACE TRIGGER Ejemplo BEFORE DELETE ON FOR EACH ROW IF :OLD.columna= valor_no_borrable THEN RAISE_APPLICATION_ERROR(-20000, La fi no puede borrar ); END IF;... END ejemplo; PLSQL-144 Triggers de Sistema Disparados por eventos del Sistema o eventos recionados con s acciones de los Usuarios Sistema Arranque y parada de BD Transacciones Errores Usuarios Login Logoff Sentencias DDL: CREATE, ALTER, DROP, CREATE OR REPLACE TRIGGER LogCreations AFTER CREATE ON SCHEMA INSERT INTO LogCreates (ur_id, object_type, object_name, object_owner, creation_date) VALUES (USER, ORA_DCIT_OBJ_TYPE, ORA_DICT_OBJ_NAME,ORA_DICT_OBJ_OWNER, SYSDATE) END LogCreations; PLSQL
11 Decración de Variables CREATE... BEFORE AFTER... [FOR EACH ROW...] Decración de variables nombre CONSTANT NUMBER:=valor; nombre TIPO; nombre nombre.nombrecolumna%type; nombre nombre%rowtype PLSQL-146 ActivarDesactivar Disparadores Todos los disparadores asociados a una : ALTER TABLE nombre_ ENABLE ALL TRIGGERS; ALTER TABLE nombre_ DISABLE ALL TRIGGERS; (Por defecto: Todos están Activados al crear) Un disparador específico: ALTER TRIGGER nombre_disparador ENABLE; ALTER TRIGGER nombre_disparador DISABLE; Borrar un Disparador DROP TRIGGER nombre_disparador; PLSQL
12 Consultar información sobre los disparadores Ver todos los disparadores y su estado SELECT TRIGGER_NAME, STATUS FROM USER_TRIGGERS; Ver el cuerpo de un disparador SELECT TRIGGER_BODY FROM USER_TRIGGERS WHERE TRIGGER_NAME= nombre_disparador ; Ver descripción de un disparador SELECT DESCRIPTION FROM USER_TRIGGERS WHERE TRIGGER_NAME= nombre_disparador ; PLSQL-148 Ejemplo CREATE OR REPLACE TRIGGER Reorder AFTER UPDATE OF Parts_on_hand ON Inventory FOR EACH ROW WHEN (new.parts_on_hand < new.reorder_point) x NUMBER; SELECT COUNT(*) INTO x FROM Pending_orders WHERE Part_no = :new.part_no; IF x = 0 THEN INSERT INTO Pending_orders VALUES (:new.part_no, :new.reorder_quantity, sysdate); END IF; SELECT Trigger_body FROM USER_TRIGGERS WHERE Trigger_name = 'REORDER'; TRIGGER_BODY x NUMBER; SELECT COUNT(*) INTO x FROM Pending_orders WHERE Part_no = :new.part_no; IF x = 0 THEN INSERT INTO Pending_orders VALUES (:new.part_no, :new.reorder_quantity, sysdate); END IF; SELECT Trigger_type, Triggering_event, Table_name FROM USER_TRIGGERS WHERE Trigger_name = 'REORDER'; TYPE TRIGGERING_STATEMENT TABLE_NAME AFTER EACH ROW UPDATE INVENTORY PLSQL
13 Restricciones: Tabs Mutantes Tab mutante (mutating) que está siendo modificada por una operación DML que verá afectada por los efectos de un DELETE CASCADE debido a integridad referencial (hasta Oracle8i). Las órdenes del cuerpo de un disparador no pueden: Leer o actualizar una mutante que esté en propia decración del disparador a nivel de fi (ROW TRIGGER) MUTATING TABLE ERROR RUNTIME ERROR PLSQL-150 Estructura General de un Disparador Ejemplo Asignaturas (nombre_a, descripción, DNI_Profesor) Profesores (DNI, nombre, apellidos) SI el número de asignaturas que imparte un profesor es mayor que 10 ENTONCES debe impedir dicha asignación y sacará un mensaje para decir que el profesor está sobrecargado. PLSQL
14 Tabs Mutantes: ejemplo CREATE OR REPLACE TRIGGER trigger_asignaturas BEFORE INSERT OR UPDATE ON Asignaturas FOR EACH ROW v_total NUMBER; v_nombre VARCHAR2(30); SELECT COUNT(*) INTO v_total FROM Asignaturas -- ASIGNATURAS está MUTANDO WHERE DNI_Profesor = :NEW.DNI_Profesor; -- comprueba si el profesor está sobrecargado IF v_total >= 10 THEN SELECT nombre ' ' apellidos INTO v_nombre FROM Profesores WHERE DNI = :NEW.DNI_Profesor; RAISE_APPLICATION_ERROR (-20000, El profesor ' v_nombre ', está sobrecargado'); END IF; EXCEPTION WHEN NO_DATA_FOUND THEN RAISE_APPLICATION_ERROR (-20001, Datos de profesor incorrectos'); 2008 Belén Ve PLSQL-152 Tabs Mutantes: ejemplo UPDATE Asignaturas SET DNI_Profesor = WHERE nombre_a = BD ; SELECT COUNT(*) UPDATE ction INTO v_total * FROM Asignaturas WHERE DNI_Profesor = :NEW.DNI_Profesor; ERROR at line 1: ORA-04091: table BD_XX.ASIGNATURAS is mutating, triggerfunction may not e it ORA-06512: at "BD_XX.TRIGGER_ASIGNATURAS", line 5 ORA-04088: error during execution of trigger 'BD_XX.TRIGGER_ASIGNATURAS' PLSQL
15 Tabs Mutantes: solución Crear 2 disparadores En el disparador a nivel de fi (for each row) almacenamos los datos que queremos consultar (los que provocan el error de mutante) En el disparador a nivel de orden (statement) realizamos consulta (sobre los datos almacenados en lugar de sobre ) La mejor forma de almacenar los valores es utilizar un paquete (opcionalmente, podríamos utilizar una ) PLSQL-154 Tabs Mutantes: solución Trigger a nivel de fi: necesitamos 2 variables globales creamos un paquete guardamos el DNI y el nombre del profesor en estas variables CREATE OR REPLACE PACKAGE pck_profesores AS v_dni_profesor Profesores.DNI%TYPE; v_nombre_profesor varchar2(50); PLSQL
16 Tabs Mutantes: solución Buscamos el nombre del profesor y lo metemos en variable del paquete CREATE OR REPLACE TRIGGER trigger_asignaturas BEFORE INSERT OR UPDATE ON Asignaturas FOR EACH ROW IF :NEW.DNI_Profesor IS NOT NULL THEN pck_profesores.v_dni_profesor := :NEW.DNI_Profesor; SELECT nombre ' ' apellidos INTO pck_profesores.v_nombre_profesor FROM Profesores WHERE DNI = pck_profesores.dni; EXCEPTION WHEN NO_DATA_FOUND THEN END IF; RAISE_APPLICATION_ERROR(-20001, Este profesor no existe'); Asignamos el DNI a variable del paquete PLSQL-156 Tabs Mutantes: solución TRIGGER a nivel de ntencia realizamos consulta utilizando s variables globales CREATE OR REPLACE TRIGGER trigger_asignaturas_statement AFTER INSERT OR UPDATE ON Asignaturas v_total INTEGER; SELECT COUNT(*) INTO v_total FROM Asignaturas WHERE DNI_Profesor = pck_profesores.v_dni_profesor; -- comprobamos si el profesor aludido está sobrecargado IF v_total >= 10 THEN RAISE_APPLICATION_ERROR (-20000, 'El profesor ' pck_profesores.v_nombre_profesor ' está sobrecargado'); END IF; PLSQL
17 Tabs Mutantes: solución UPDATE asignaturas SET DNI = WHERE asignaturas_id = BD ; UPDATE asignaturas * ERROR at line 1: ORA-20000: El profesor Carlos Romero está sobrecargado ORA-06512: at "BD_XX.TRIGGER_ASIGNATURAS_STATEMENT", line 11 ORA-04088: error during execution of trigger 'BD_XX.TRIGGER_ASIGNATURAS_STATEMENT' PLSQL-158 Bibliografía Bibliografía Básica Abbey, Corey y Abramson. ORACLE8i: Guía de Aprendizaje (versiones 7.x, 8 y 8i). McGraw-Hill. Urman S. ORACLE 8: Programación PLSQL. McGraw-Hill. Urman S., Hardman, R., y McLaughlin, M. ORACLE DATABASE 10g. PLSQL Programming. Oracle Press, Bibliografía Complementaria Elmasri, R. y Navathe, S. B. Fundamentos de Sistemas de Bas de Datos. Tercera Edición. Addison-Wesley Iberoamericana, PLSQL
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
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
Disparadores en ORACLE
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
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
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]
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
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 [email protected] Web www.lsi.us.es Diseño
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
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
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
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
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
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
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.
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
Triggers en PL/SQL. Jonathan Medina Gómez Facultad de Ingeniería Universidad de Antioquia
Triggers en PL/SQL Jonathan Medina Gómez Facultad de Ingeniería Universidad de Antioquia Triggers (Disparadores) Los triggers son bloques PL/SQL que se ejecutan de manera implícita cuando se están manipulando
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
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
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
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
SQL SERVER APLICADO (SSA010)
DuocUC SQL SERVER APLICADO (SSA010) Ariel Alexis Fierro Sáez [email protected] Un triggers es una clase especial de procedimiento almacenado que se dispara automáticamente su ejecución cuando se produce
Disparadores en Oracle (Ejemplos Prácticos)
Asignatura: Base de Datos Titulación: Ingeniería Informática Curso: 4º Disparadores en Oracle (Ejemplos Prácticos) Nota: Recuerde guardar los scripts, utilice para ello un editor de texto. Triggers DML
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
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
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
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
Laboratorios de BASES DE DATOS. (I.T. Informática)
Laboratorios de BASES DE DATOS. (I.T. Informática) Gestor de bases de datos ORACLE M. Martínez, C. Hernández, C. Cuesta Dpto. de Informática (U. Valladolid) Base de datos de ejemplo EMPLEADOS (NOMBRE,
//Sección de manejo de excepciones. Las rutinas de manejo de errores //aparecen aqui
PL/SQL - Oracle PL/SQL (Procedural Language/SQL) es una extensión de SQL, que agrega ciertas construcciones propias de lenguajes procedimentales, obteniendose como resultado un lenguaje estructural mas
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
Oracle PL/SQL. Programa de Estudio.
Oracle PL/SQL Programa de Estudio Oracle PL/SQL El alumno egresara del mismo con los conocimientos y destrezas necesarias para desempeñarse como desarrollador Oracle PL/SQL además de contar con los conocimientos
Introducción a PL/SQL
Introducción a PL/SQL Grupo de Ingeniería del Software y Bases de Datos Departamento de Lenguajes y Sistemas Informáticos Universidad de Sevilla noviembre 2011 Objetivos de este tema Conocer PL/SQL. PL/SQL
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 [email protected] Agenda Secuencias Triggers Vistas Código almacenado
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 [email protected] www.lsi.us.es E.T.S. Ingeniería Informática Diseño de bases de datos Anexo
1. Lenguaje de Definición de Datos. 2. Lenguaje de Manipulación de. Datos. M. C. Gustavo Alfonso Gutiérrez Carreón
1. Lenguaje de Definición de Datos 2. Lenguaje de Manipulación de Datos M. C. Gustavo Alfonso Gutiérrez Carreón Los 'sistemas de gestión de bases de datos (en inglés database management system, abreviado
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
Introducción a PL/SQL
Introducción a PL/SQL Características de PL/SQL (Procedural Language/SQL): Combina la potencia y flexibilidad de SQL con la de un lenguaje 3GL: SQL es un Lenguaje de Cuarta Generación (4GL): El lenguaje
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
Introducción a PL/SQL
22/11/2016 Grupo de Ingeniería del Software y Bases de Datos Departamento de Lenguajes y Sistemas Informáticos Universidad de Sevilla Noviembre 2014 Objetivos de este tema Conocer el lenguaje procedimental
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)
ÍNDICE INTRODUCCIÓN...13
ÍNDICE INTRODUCCIÓN...13 CAPÍTULO 1. EL MODELO RELACIONAL. LENGUAJE SQL...17 1.1 INTRODUCCIÓN AL MODELO RELACIONAL...17 1.2 RELACIONES...19 1.2.1 Definición formal de relación...21 1.2.2 Propiedades y
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.
Pre-Taller Gestión de Privilegios de Usuarios 2. Manipulación de Vistas 3. Creación y manipulación de Triggers (Introducción al uso de PL/pgsql)
BASES DE DATOS Facyt-UC Pre-Taller 2 1. Gestión de Privilegios de Usuarios 2. Manipulación de Vistas 3. Creación y manipulación de Triggers (Introducción al uso de PL/pgsql) 1. Gestión de Privilegios de
Conceptos básicos de programación con PL/SQL
Conceptos básicos de programación con PL/SQL 1. Bloques PL/SQL 2. Tipos de Datos Estructurados 3. Funciones y Procedimientos 4. Paquetes 5. Disparadores de Base de Datos 1. Bloques PL/SQL 1.1 Introducción
EXAMEN: BASES DE DATOS 4º Ingeniería Informática (29 de enero de 2009)
APELLIDOS: NOMBRE: DNI: EXAMEN: BASES DE DATOS 4º Ingeniería Informática (29 de enero de 2009) MAÑANA TARDE Autorizo la publicación de la nota del examen junto a mi número de matrícula, tanto en la Web
Base de Datos Oracle 10g: Programación con PL/SQL Código: D Duración: 5 días (40 horas)
Base de Datos Oracle 10g: Programación con PL/SQL Código: D17214 - Duración: 5 días (40 horas) Lo que aprenderá Esta clase es aplicable para los usuarios de Oracle8i, Oracle9i y Oracle Database 10g. Este
T07 Opciones de integridad referencial
1 de 9 17/05/2013 13:48 Lecciones SQL > T07 Opciones de integridad referencial Contenidos 1 Las opciones para mantener la integridad Las opciones para mantener la integridad referencial 2 On delete referencial
Oracle Database: Programación con PL/SQL
Oracle University Contact Us: 0800-100-4183 & 0800-100-6854 Oracle Database: Programación con PL/SQL Duration: 5 Days What you will learn Este curso ofrece una introducción sobre PL/SQL y enumera la lista
Integridad en sistemas de bases de datos relacionales
Integridad en sistemas de bases de datos relacionales Competencias específicas a adquirir Asegurar la integridad de los datos mediante la aplicación de los mecanismos soportados por los SGBDs. Identificar
Estándares para la construcción de Sentencias SQL
Estándares para la construcción de Subgerencia Arquitectura & Innovación Grupo MDC Versión 1.0 Noviembre 2008 CONTROL DE LAS MODIFICACIONES Versión Descripción Autor Fecha Revisado por 1.0 Este documento
Bases de Datos Relacionales y SQL: Una Introducción
1 Bases de Datos Relacionales y SQL: Una Introducción Protein Design Group, CNB CSIC 2 Sumario Qué es un SGBDR? Usuarios de base de datos Tablas: creación y definición de restricciones Manipulación de
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
RESTRICCIONES DE DOMINIOS
RESTRICCIONES DE DOMINIOS - Cargo del personal de la inmobiliaria: create domain cargo_personal as character20 check value in Venta, Alquiler, Gerencial - Categoría del barrio: create domain categoría
Declaración de Variables. Copyright Oracle Corporation, All rights reserved.
3 Declaración de Variables Copyright Oracle Corporation, 1998. All rights reserved. Objetivos Al completar esta lección, debería a ser capaz de hacer lo siguiente: Reconocer las bases del bloque PL/SQL
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
Instituto Profesional DuocUC Escuela de Ingeniería Uso y contenido del Diccionario de Datos
Uso y contenido del Diccionario de Datos Jaime Amigo P. 2006, Santiago - Chile Objetivos Después de completar esta lección, usted deberá: Identificar los componentes claves del diccionario de datos Identificar
UNIVERSIDAD NACIONAL DE SAN AGUSTÍN FACULTAD DE PRODUCCIÓN Y SERVICIOS ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS LABORATORIO DE BASES DE DATOS 1
UNIVERSIDAD NACIONAL DE SAN AGUSTÍN FACULTAD DE PRODUCCIÓN Y SERVICIOS ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEM LABORATORIO DE BES DE DATOS 1 Prof. Marco Aedo Práctica de Laboratorio Nº 6 I. OBJETIVOS
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
Conceptos básicos de programación con PL/SQL
Conceptos básicos de programación con PL/SQL 1. Bloques PL/SQL 2. Tipos de Datos Estructurados 3. Funciones y Procedimientos 4. Paquetes 5. Métodos asociados a tipos de objetos 6. Disparadores de Base
GALA CONCEPTO COMMIT, ROOLBACK SAVEPOINTS (SAVE TRANSACTION) No Consultas. Definiciones Transacciones ( L33 )
Definiciones Transacciones ( L33 ) CONCEPTO COMMIT, ROOLBACK SAVEPOINTS (SAVE TRANSACTION) Transacciones En Microsoft ( L33 ) MANUAL (REQUIERE PROGRAMACION) AUTOMATICO (COM+ O DTM) DTM (DISTRIBUTED TRANSACTION
Disparadores (triggers) en PostgreSQL
Disparadores (triggers) en PostgreSQL Una de las funcionalidades disponibles en PostgreSQL son los denominados disparadores (triggers). En este artículo vamos a introducirnos en el mundo de los disparadores,
GUIA 3 PARTE II. Introducción a PL/SQL
GUIA 3 PARTE II Introducción a PL/SQL PL/SQL proviene de Procedural Language (lenguaje procedural)/ Structured Query Language (Lenguaje de consulta estructurado). PL/SQL ofrece un conjunto de comandos
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 SQL: DML Ing. Alfonso Vicente, PMP [email protected] Agenda DML Sentencias Modificando la instancia Agenda DML Sentencias
Sistemas de Bases de Datos II ITS / ITSB EMT CETP
Administración de Datos D. M. L. Data Manipulation Language Administración de Datos D. M. L. Data Manipulation Language Lenguaje de Manipulación de Datos. Administración de Datos Los comandos son los siguientes:
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,
ÍNDICE PRIMERA PARTE... 17
ÍNDICE PREFACIO... xv PRIMERA PARTE... 17 CAPÍTULO 1. BASES DE DATOS... 19 BASE DE DATOS RELACIONAL... 20 ESTRUCTURA MÍNIMA DE ALMACENAMIENTO... 21 EJEMPLO DE TABLA... 22 RESUMEN... 23 CAPÍTULO 2. CONSULTAS
ÍNDICE. Introducción... Capítulo 1. Características, instalación, inicio y entorno de trabajo... 1
ÍNDICE Introducción... XI Capítulo 1. Características, instalación, inicio y entorno de trabajo... 1 Características y novedades de Access 2010... 1 Comienzo rápido del trabajo y seguimiento de la información...
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
MANUALITO MS-SQL SERVER
MANUALITO MS-SQL SERVER Contenido 1. Crear Store Procedures en MS SQL Server... 1 2. Crear Triggers en MS SQL Server... 5 3. Crear Vistas en MS SQL Server... 9 1. Crear Store Procedures en MS SQL Server
E16 - Diseño de Sistemas de Bases de Datos Boletín 3
E16 - Diseño de Sistemas de Bases de Datos Boletín 3 Nombre: 1. Esta práctica está dedicada a la creación de disparadores sobre sentencias DDL (lenguaje de definición de datos) y sobre eventos de la Base
Repaso. Laboratorio Informix. Stored Procedures. Ejemplo. Creación de stored procedures. Sql en un Procedimiento
Laboratorio Informix Stored Procedures Triggers Repaso A partir del ER, hicimos las tablas de la base de datos. Creamos en MySql las base de datos y las tablas Hicimos una aplicación que se comunica con
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}
Los paquetes tienen dos partes: una especificación y un cuerpo que están almacenados por separado en la base de datos.
8. PAQUETES DE BASE DE DATOS Los paquetes nos van a permitir agrupar conceptos PL/SQL como pueden ser tipos, procedimientos y funciones. Por ejemplo: una paquete de Contabilidad podrá contener procedimientos
Enlaces relacionados: http://otn.oracle.com/tech/pl_sql/index.html
1.INTRODUCCION PL/SQL (Procedural Language ó Programming Language, según distintas fuentes, aunque la oficial es la primera) es el lenguaje utilizado por Oracle como extensión al SQL, y que nos va a permitir
Laboratorio Informix. Stored Procedures Triggers
Laboratorio Informix Stored Procedures Triggers Repaso A partir del ER, hicimos las tablas de la base de datos. Creamos en MySql las base de datos y las tablas Hicimos una aplicación que se comunica con
1 2 3 ( /! 3 ) +, 1& 3 0))) % &! ( ) +,. / & 0)))
! !! # ! 1 2 3 ( 1 2 3. /! 3 ) +, 1& 3 0))) % &! ( ) +,. / & 0))) 4 2 5! 4 /! 4 # 2 / # %! # ( # %! #!! # %! #! )! & ,,, #./ 0 + . 4 # 4. 0! 2! ) 3! 1 ,! 2 % % 7 0! 2 % &! ) 3! 56 %&! #! 55 ( ) 58 ( )
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
PL/PGSQL. Extensión "procedural" de SQL
PL/PGSQL Extensión "procedural" de SQL Pero primero triggers DROP TABLE producto cascade; CREATE TABLE producto( id int PRIMARY KEY, vendido timestamp); DROP FUNCTION modificacion() cascade; CREATE FUNCTION
Práctica 4: Estudio del SGBD Oracle 10 Gestión de Transacciones
Práctica 4: Estudio del SGBD Oracle 10 El SGBD Oracle 10 Objetivos estudio de la gestión de transacciones. estudio de las estrategias para la comprobación de la integridad. estudio de las estrategias para
FIREBIRD: SQL PROCEDIMENTAL (PSQL)
FIREBIRD: SQL PROCEDIMENTAL (PSQL) Vicente Tejero Trueba Pag 1 IES Pedro Espinosa FIREBIRD: SQL PROCEDIMENTAL (PSQL) 1.- INTRODUCCION...1 2.- EXTENSIONES DEL LENGUAJE...2 2.1.- Terminadores...2 2.2.- Variables...3
Oracle 12c DISEÑO Y PROGRAMACIÓN
Oracle 12c Se estudia el servidor de bases de datos empresarial Oracle 12c, centrándose especialmente en el punto de vista de un diseñador o programador de bases de datos, pero explicando también cómo
GUÍA DE TRABAJO GRADO 11. Media Fortalecida - SENA Programación de Software Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6
Página 1 de 6 Tema: VISTAS Y DESENCADENADORES (TRIGGER) EN SQL SERVER Objetivo: Adquirir los conocimientos necesarios para desarrollar e implementar vistas y desencadenadores utilizando SQL Server I. VISTAS
GBD Diseño físico de DDBB
GBD Diseño físico de DDBB Mª Carmen Gabarrón Manual SQL de Oracle 10g http://download.oracle.com/docs/cd/b19306_01/server.102/b14200/index.htm SQL SQL es el lenguaje de consulta universal para bases de
Acceso a bases de datos MySQL con PHP
GESTIÓN Y ADMINISTRACIÓN WEB Acceso a bases de datos MySQL con PHP Ing. CIP Fabián Silva Alvarado [email protected] DEFINICIÓN DE BASE DE DATOS Base de Datos es un conjunto de datos relacionados entre
Manual de desarrollo en PL/SQL
Published on Marco de Desarrollo de la Junta de Andalucía (http://madeja.i-administracion.juntaandalucia.es/servicios/madeja) Manual de desarrollo en PL/SQL Área: Especificaciones de Codificación y Construcción
Introducción 1 Recuperación de Datos mediante la Sentencia SQL SELECT
Introducción Objetivos I-2 Objetivos del Curso I-3 Oracle11g - 12cI-5 Oracle Database 11g - 12cI-6 Oracle Application Server 11g - 12cI-7 Oracle Enterprise Manager 11g - 12cGrid Control I-8 Sistema de
Haga clic para PostgreS cambiar el estilo
Taller # 1 Uso y Manejo l Sistema Gestor Bases Datos PostgreSQL Luis García Computación [email protected] Contenido - Creación Tablas (Create Table...) ( Check Foreign Keys ) - Inserción Datos (Insert Into...)
LENGUAJE DE CONSULTA ESTRUCTURADO (SQL)
Qué es una base de datos? Una base de datos (cuya abreviatura es BD) es una entidad en la cual se pueden almacenar datos de manera estructurada, con la menor redundancia posible. Diferentes programas y
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
Programando con PL/SQL en una Base de Datos Oracle
Programando con PLSQL en una Base de Datos Oracle Instructor: Ing. Francisco Riccio. OCA Oracle Database Administrator 10g OCP Oracle Database Administrator 10g OCP Oracle Database Administrator 11g OCA
SQL SERVER SQL Server 2005 permite tres tipos de operaciones con conjuntos: UNION, disponible en todas las versiones de SQL Server.
SQL SERVER 2005 Operaciones con Conjuntos SQL Server 2005 permite tres tipos de operaciones con conjuntos: UNION, disponible en todas las versiones de SQL Server. EXCEPT, nuevo en SQL Server 2005. INTERSECT,
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
Introducción al SQL de InterBase: DDL y DML
Artículos técnicos Grupo Danysoft: Introducción al SQL de InterBase: DDL y DML Segunda Parte Tercer Artículo Por Pablo Reyes Equipo Grupo Danysoft julio de 2002 - (902) 123146 www.danysoft.com Introducción
El Lenguaje SQL TEMA V. Grupo de Bas ses de Datos Avanzadas Univ. Carlo os III de Madrid. V.1 SQL como Lenguaje de Definición de Datos
Grupo de Bases de Datos Avanzadas Univ. Carlos III de Madrid Índice V.1 Introducción V.1 SQL como Lenguaje de V.1.1 Definición del esquema V.1.2 Evolución del esquema V.2 SQL como Lenguaje de Manipulación
Manual de Sentencias Básicas en SQL
Manual de Sentencias Básicas en SQL Pues hoy que he estado enredando un rato con MySQl, y me he acordado de aquellos comienzos en los que tenía que volver a mis antiguos apuntes para lograr entender las
SUBCONSULTAS SQL. Cuando se ejecuta una consulta que contiene una subconsulta, la subconsulta se ejecuta por cada fila de la consulta principal.
SUBCONSULTAS SQL DEFINICION. Una subconsulta es una sentencia SELECT que aparece dentro de otra sentencia SELECT que llamaremos consulta principal. Se puede encontrar en la lista de selección, en la cláusula
