Bases de Datos Relacionales

Slides:



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

VISTAS (VIEWS) DEFINICIÓN Y OBJETIVO DE LAS VISTAS.
Unidad 3.
Rocío Contreras Águila Primer Semestre 2010
Ejercicios Solemne 2 Parte 1
Base de Datos Orientada a Objetos (OODBMS)
Implementación de la integridad de datos
Marzo de 2010Dos Ideas - La visión de Sistemas desde el Desarrollo Introducción a PL/SQL Conceptos básicos.
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:23 PRESENTACION: BASE DE DATOS ALUMNAS: Velazquez Corona Elsa Ponciano Antonio.
Fernando Velasco
Teórico: Modelo Relacional
Presentación Asignatura POF030 Semana 1. Contenido En forma general, los conceptos que se estudiarán en la asignatura son: – Procedures – Functions –
HERRAMIENTAS CASE PARA MODELAMIENTO DE DATOS
UNITA - IBARRA BLOQUES PL-SQL SUBPROGRAMAS Paulina Guevara.
Características Objeto Relacionales en Oracle
Cursores Implícitos y Explícitos
Diseño Físico Procedimientos Almacenados y Disparadores (Triggers)
4.3. Privilegios de usuarios
Tema 3 J2EE Java Database Connectivity Temas Selectos de Cómputo Grupo 912.
PL/SQL Francisco Moreno Universidad Nacional.
Mayo de 2009Dos Ideas - La visión de Sistemas desde el Desarrollo Definición de Datos Conceptos básicos.
CURSORES Preparó: Ismael Castañeda Fuentes Fuentes: Manuales Sybase
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.
16/04/ Sesión 11 Funciones y procedimientos Ing. Ricardo Inquilla.
PL/SQL Francisco Moreno Universidad Nacional.
Universidad del Cauca – FIET – Departamento de Sistemas
Subconsultas Avanzadas
Procedimientos Almacenados Funciones Agregadas
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.
TRANSACCIONES, AISLAMIENTO Y CANDADOS
Bases de Datos Relacionales
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:
Mayo de 2009Dos Ideas - La visión de Sistemas desde el Desarrollo Manipulación de Datos Conceptos básicos.
Triggers(Disparadores)
ESCUELA TECNOLÓGICA INSTITUTO TÉCNICO CENTRAL Ing. Johanna Vargas Esp. Gerencia de proyectos.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 12 Otros Objetos de la Base de Datos.
LENGUAJE SQL.
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.
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:21 PRESENTACION: BASE DE DATOS ALUMNAS: Adán Millán Sánchez.
CONSTRUCCIÓN DE BASES DE DATOS
Instrucciones para crear tablas My SQL. A nivel teórico, existen dos lenguajes para el manejo de bases de datos: DDL (Data Definition Language) Lenguaje.
SQL Sigla del nombre “Structured Query Language”.
Diseña y administra base de datos avanzadas
SQL (Structured Query Language) Lenguaje orientado a bases de datos y sobre todo, al manejo de consultas; el objetivo principal de SQL es la realización.
Comandos de SQL Prog. Orientada a Eventos. Inserción de datos (INSERT) INSERT….VALUES INSERT INTO Tabla1 (Columna1, Columna2…) VALUES (‘ValorAlfa’, ValorNum…);
MSSQL SERVER CURSO BÁSICO 1. CONCEPTOS BASICOS DE SQL. DESCRIPCIÓN DEL CURSO. Sesión 3: Índices Uso, Creación, Tipos, Eliminación LENGUAJE DE CONSULTAS.
Qué es SQL? Sentencias básicas
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.
(Lenguaje de consulta estructurado)
Lenguaje Estructurado de Consultas
Departamento de Lenguajes y Sistemas Informáticos escuela técnica superior de ingeniería informática Diseño de Bases de Datos Tema 4: Integridad.
Departamento de Lenguajes y Sistemas Informáticos escuela técnica superior de ingeniería informática Diseño de Bases de Datos Tema 4: Integridad.
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.
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.
Bases de datos II Universidad del Cauca Ing. Wilson Ortega.
Copyright  Oracle Corporation, All rights reserved. 12 Otros Objetos de la Base de Datos.
DML Transact SQL Sesión X Triggers. Duración 2 Horas.
DML Transact SQL Sesión IX Introducción a los procedimientos almacenados.
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.
Copyright  Oracle Corporation, All rights reserved. 9 Creación y gestión de tablas.
Lenguaje MySQL, DDL (Lenguaje de definición de datos) Ing. Linda Masias Morales.
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.
Transcripción de la presentación:

Bases de Datos Relacionales TRIGGERS Preparó: Ismael Castañeda Fuentes Fuentes: Manuales Sybase Manuales SQL Server Manuales Oracle

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

Trigger - Aplicaciones Típicas Hacer modificarciones en cascada sobre tablas relacionadas Deshacer cambios que violan la integridad de los datos Forzar restricciones que son muy complejas para reglas y restricciones Mantener datos duplicados Mantener columnas con datos derivados Hacer ajustes de registros

Trigger - Definición Un trigger se define asociado con una tabla para una o más sentencias de manipulación de datos Un trigger se puede definir para insert, update, o delete o cualquier combinación de ellos

Trigger - Activación Cuando se modifica un dato en una tabla que tiene declarado un trigger para esa sentencia, el trigger se “dispara” El trigger se dispara una vez, independientemente del número de filas afectadas El trigger se dispara aunque no hayan filas afectadas

Triggers and transacciones Un trigger es parte de la transacción que causa el disparo El trigger puede deshacer: Así mismo solamente Así mismo y la sentencia que causa el disparo La transacción total

Trigger - Reglas Los triggers pueden: Los triggers no pueden: Declarar variables locales Invocar procedimientos almacenados Los triggers no pueden: Llamarse directamente Usar parámetros Definirse sobre tablas temporales o vistas Crear objetos permanentes de base de datos Las operaciones con registro mínimo (como select into) no disparan los triggers

Trigger - Crear Sintaxis simplificada: create trigger trigger_name on table_name for {insert | update | delete} [, {insert | update | delete} ...] as sql_statements

Borrar Triggers Sintaxis simplificada: drop trigger trigger_name

Procedimientos del sistema para Triggers sp_depends {table_name | trigger_name} Cuando se da el nombre de tabla, lista todos los objetos (incluyendo triggers) de la misma base de dtos Cuando se da el nombre de trigger, lista todas las tablas referencias sp_help trigger_name Muestra información del trigger sp_helptext trigger_name Muestra el código usado para crear el trigger sp_rename old_trigger_name, new_trigger_name Cambia el nombre del trigger

Trigger - Tablas inserted y deleted inserted y deleted son dos tablas que se crean automáticamente cada vez que se dispara un trigger inserted almacena cualquier fila que se vaya a añadir a la tabla deleted almacena cualquier fila que se vaya a borrar de la tabla

A delete adds rows to the deleted table Trigger - Borrados A delete adds rows to the deleted table

Trigger - Inserciones insert añade filas en la tabla inserted

Trigger - Actualizaciones Un update añade filas en ambas tablas

Trigger - Reglas para tablas inserted y deleted Ambas tablas tienen las mismas columnas que la tabla asociada al trigger El trigger puede consultar datos de las dos tablas Otros procesos no pueden consultar datos de las dos tablas El trigger no puede modificar datos en las dos tablas Cada anidamiento de triggers tiene sus propias tablas inserted y deleted Si un trigger modifica datos de su tabla asociada, esos cambios no se reflejan en las tablas inserted and deleted de ese trigger

Triggers y rollbacks Tres tipos de rollbacks: Deshacer el trigger Deshacer el trigger y la sentencia que lo disparó Deshacer toda la transacción

Deshacer un trigger Para deshacer un trigger, declarar un punto de grabación y luego hacer el rollback Un rollback sin punto de grabación deshace toda la transacción Procedimiento almacenado Caso A begin tran ... insert ... print "in sp" ... commit tran print "sp done" Trigger save tran s1 .... rollback tran s1 print “tr done” return Caso B begin tran ... (este caso insert ... ocaciona un print "in sp" error) ... commit tran print "sp done" begin tran s2 rollback tran s2

Deshacer un trigger rollback trigger deshace el trigger y la sentencia que lo disparó Sintaxis: rollback trigger [with raiserror error_number [error_statement] ] Procedimiento almacenado Caso C begin tran ... insert ... print "in sp" ... commit tran print "sp done" Trigger .... .... rollback trigger print “tr done” return

Deshacer una transacción Para deshacer toda la transacción donde está inmerso el trigger, ejecutar un rollback sin un punto de grabación Procedimiento almacenado Case D begin tran ... insert ... print "in sp" ... commit tran print "sp done" Trigger begin tran ... rollback tran print "tr done” return Procedimiento almacenado Case E begin tran ... insert ... print "in sp" ... commit tran print "sp done" Trigger .... .... Rollback tran print “tr done” return

Trigger - Prácticas recomendadas Consideraciones al elaborar triggers: @@rowcount if update triggers anidados triggers recursivos

Trigger - if update if update es una condición que le permite a un trigger chequear si ha habido un cambio en una determinada columna Sólo se puede usar en triggers Usualmente se usa para chequear si el valor de una llave primaria ha cambiado Sintaxis simplificada: if update (column_name) [ {and | or} update (column_name)]...

Triggers anidados Un trigger anidado es un trigger que se dispara en respuesta a una modificación hecha en un trigger Nivel máximo de anidamiento: 16 Tanto los procedimientos almacenados como los triggers cuentan en la determinación del nivel máximo @@nestlevel retorna el nivel de anidamiento

Triggers recursivos Un trigger recursivo es aquel que se dispara cuando modifica su propia tabla Por default, un trigger que modifica su propia tabla no causa un disparo recursivo del trigger

Métodos para integridad de datos Dos métodos para implementar integridad de datos

Actualización de valores llave * Valores de llaves primarias se pueden actualizar o borrar si no están referencidos en llaves foráneas Solamente en triggers es posible borrar o actualizar una llave primaria Sólo en triggers es posible hacer cambios en cascada

Restricciones versus triggers Ventajas de las restricciones: Las restricciones (y reglas) son más rápidas que los triggers Las restricciones no requieren codificación adicional Es mejor para chequear datos antes de ingresarlos a la base de datos Ventajas de los triggers: Muy flexible Los triggers pueden hacer cualquier cosa que se pueda codificar Mejor para las reglas complejas del negocio que no se pueden expresar como restricciones referenciales tales como actualizaciones o borrados en cascada