Administración de Base de Datos Integridad Prof Mercy Ospina Torres Prof Renny A. Hernandez

Slides:



Advertisements
Presentaciones similares
Integridad de Las Bases de Datos
Advertisements

SQL Sigla del nombre “Structured Query Language”.
Se necesita un PA que muestre la información de todos los clientes registrados de la siguiente forma: Nombre1 Nombre2, Apellido1 Apellido2 bajo el título.
Insercion de datos..
Ejercicios Solemne 2 Parte 1
Rocio Contreras Aguila Primer Semestre Para poder ejecutar esto SQL Server nos permite definir datos y nos entrega herramientas para poder exigir.
LENGUAJE ESTRUCTURADO DE CONSULTA “SQL”
Implementación de la integridad de datos
Fernando Velasco
Teórico: Modelo Relacional
Unidad 3 Lenguaje de manipulación de datos(DML).
Maestría en Bioinformática Bases de Datos y Sistemas de Información SQL: DML Ing. Alfonso Vicente, PMP
PL/SQL Francisco Moreno Universidad Nacional.
PL/SQL Francisco Moreno Universidad Nacional.
Restricciones de Integridad en ORACLE
Lenguaje SQL (Structured Query Language)
1 BD Activas: Motivación zLos SGBD convencionales son “pasivos”. Sólo ejecutan preguntas o transacciones realizadas por los usuarios o por los programas.
PL/SQL Francisco Moreno Universidad Nacional. Introducción al PL/SQL ¿Por qué PL/SQL? A pesar de que SQL tiene mecanismos de control condicional (cláusula.
Bases de Datos Relacionales
PL/SQL Francisco Moreno Universidad Nacional.
Procedimientos Almacenados Funciones Agregadas
Componentes sintácticos
UNITA - IBARRA TRIGGERS
Lenguaje Estructurado de Consultas
John Freddy Duitama M.U.de.A. Facultad de Ingeniería. Creación del esquema de Una Base de Datos. John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 11 Creando Vistas.
TRIGGERS EN ORACLE 8 J. Iriarte S. España
SQL: DDL Francisco Moreno & Carlos Mario Zapata. SQL:DDL DDL: Lenguaje de Definición de Datos Permite crear objetos en la Base de Datos Tipos de Objetos:
SQL (Structured Query Language / Lenguaje de consulta estructurado)‏
Triggers(Disparadores)
ESCUELA TECNOLÓGICA INSTITUTO TÉCNICO CENTRAL Ing. Johanna Vargas Esp. Gerencia de proyectos.
SQL: Lenguaje de Interrogación Estructurado. Vistas Declaración de vista CREATE VIEW ( ) AS SELECT... Semántica Tabla virtual cuyo contenido es el resultado.
Características Objeto-Relacionales en Oracle Francisco Moreno Universidad Nacional.
Consultas SQL (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.
Restricciones de Integridad
SQL Sigla del nombre “Structured Query Language”.
Prof. De Bases de Datos: Lcdo. Luis Peña. El lenguaje más habitual para construir las consultas a bases de datos relacionales es SQL, Structured Query.
Base de datos Francisco Castro. Creación de una tabla drop table TABLA cascade constraints; /*==============================================================*/
PUESTO-TRABAJO (Código-Puesto, Empresa, Sueldo, DNI- Contratado) TITULADO (DNI-Titulado, Nombre, Apellidos, Dirección) TITULACION (Iden-Titulación, Nombre,
Comandos de SQL Prog. Orientada a Eventos. Inserción de datos (INSERT) INSERT….VALUES INSERT INTO Tabla1 (Columna1, Columna2…) VALUES (‘ValorAlfa’, ValorNum…);
MSSQL SERVER CURSO BÁSICO 1. DESCRIPCIÓN DEL CURSO. Sesión 4: Sentencia Insert,Transacciones,Insert general, Insert Select * From, Sentencia Update,Update.
Comandos DDL Los comandos DDL son las siglas de Data Definition Language, y se corresponde con el conjunto de órdenes que permiten definir las estructuras.
DISPARADORES Y SISTEMAS DE GESTION DE BASE DE DATOS DE SQL
SQL Lenguaje Estructurado de Consultas. Structured Query Lenguaje (SQL). Lenguaje de acceso a bases de datos. Proyecto de Investigación de IBM. La mayoria.
UNIVERSIDAD LATINA IV. CONSULTAS AVANZADAS CON BASES DE DATOS. E.I. L.E. Prof. Ramón Castro Liceaga.
Lenguaje Estructurado de Consultas
Administración de Base de Datos Procesamiento y Optimización de Consultas Prof Mercy Ospina Torres Prof Renny A. Hernandez
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.
Diccionario/Directorio de Datos
Sentencias DDL y DML PostgreSQL. Base de Datos I – Fundamentos Básicos PostgreSQL PostgreSQL es un servidor de base de datos relacional libre bajo la.
SQL: DDL.
Base de Datos SQL - Introductorio - DDL. DEFINICIÓN SQL Volver a los Objetivos.
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.
Administración de Base de Datos Procesamiento y Optimización de Consultas Prof Mercy Ospina Torres Prof Renny A. Hernandez
Apuntes PL-SQL Triggers I.
Mtr. Adrián Monge Monge Educación 2015 Maestría, Mención en Administración de Proyectos ULACITMaestría, Mención en Administración de Proyectos 2012 Licenciatura,
Administración de Base de Datos Procesamiento y Optimización de Consultas Prof Mercy Ospina Torres Prof Renny A. Hernandez
Base de Datos I – Ing. Mary Carlota Bernal J.  Cada instrucción PL/SQL tiene asociado internamente un cursor  Los cursores en PL/SQL pueden ser de dos.
DML Transact SQL Sesión X Triggers. Duración 2 Horas.
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.
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.
Copyright  Oracle Corporation, All rights reserved. 10 Constraints (Restricciones)
Conferencia 12. Temas Avanzados de Integridad de Bases de Datos.
PL/SQL Francisco Moreno Universidad Nacional.
BASE DE DATOS IUPSM CLASE PRACTICA. PROF. ING. JOSE L GUZMAN H.
Transcripción de la presentación:

Administración de Base de Datos Integridad Prof Mercy Ospina Torres Prof Renny A. Hernandez

El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Contenido Marzo 2012Administración de Base de Datos2 ¿Qué es integridad de los datos? Reglas de integridad y tipos – Dominio – Relación – Transición Reglas de integridad en SQL – Claves – Check – Dominios y aserciones – Disparadores Concurrencia

El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Componentes del SMBD Marzo 2012Administración de Base de Datos3 Integridad Procesador de Consultas Gestor de almacenamiento S M B D Precompilador del DML Código objeto de programas de aplicación Motor de evaluación de consultas Consultas DML Compilador del DML Interprete del DDL Gestor de transacciones Gestor de archivos Gestor de memoria intermedia Gestor de autorización e integridad Archivos de Datos Índices Diccionario de datos Datos estadísticos Almacenamiento en disco

El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Integridad Marzo 2012Administración de Base de Datos4 Integridad Exactitud Correctitud Validez ¿Cómo saber si un dato es correcto, exacto o válido? Un peso Una nota El saldo de una cuenta Una fecha Las unidades de crédito a inscribir BD El formato Los valores posibles Reglas de negocio Reglas de integridad

El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Reglas de integridad Marzo 2012Administración de Base de Datos5 Permiten – Monitorear los cambios a la BD para verificar que se cumplen las reglas de negocio – Tomar acciones si no se cumplen las reglas Se almacenan en el diccionario de datos Al crear una nueva regla el SMBD debe garantizar que los datos la satisfagan, de lo contrario no será almacenada. Integridad

El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Tipos de reglas de integridad Marzo 2012Administración de Base de Datos6 Restricciones de tipo o dominio: Especifica los valores válidos para un tipo, es cual es escalar. – Por ejemplo los valores de una nota debe estar entre 1 y 20 Restricciones de relación: Especifica los valores válidos para una relación con respecto a valores de atributos dentro de la misma relación – Por ejemplo el estatus de los proveedores de la ciudad de Caracas debe ser mayor que 4 Restricciones de relación: Especifica los valores válidos para una relación con respecto a valores de atributos de otra relación – Por ejemplo, clave foranea Date, C. J. (2001). Introducción a los Sistemas de Bases de Datos (7ma. ed.). PEARSON EDUCACION. Integridad

El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración  Condición de Activación: Cuando chequear la regla (al momento de inserción, actualización ó eliminación) El predicado a chequear: expresa la condición que deben cumplir los datos Involucrados en la actualización Acciones a tomar: Indica que es lo que se va a hacer en caso de que no se cumpla el predicado exigido Reglas de integridad  Para que el subsistema de integridad de un SMBD pueda: Monitorear las transacciones y detectar violaciones de integridad Si ocurre una violación tomar las acciones necesarias Conjunto de reglas de integridad

El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Tipos de reglas de integridad Marzo 2012Administración de Base de Datos8 Restricciones de tipo o dominio TYPE Date, C. J. (2001). Introducción a los Sistemas de Bases de Datos (7ma. ed.). PEARSON EDUCACION. Integridad TYPE PESO POSSREP (DECIMAL (5,1)) CONSTRAINT THE_PESO (PESO) > 0.0 POSSREP: Representación posible THE_ Es una seudovariable que invoca al operador THE, el cual designa el componente especificado de su argumento.

El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Tipos de reglas de integridad Marzo 2012Administración de Base de Datos9 Restricciones de tipo o dominio Date, C. J. (2001). Introducción a los Sistemas de Bases de Datos (7ma. ed.). PEARSON EDUCACION. Integridad TYPE NOTA POSSREP (INTEGER) CONSTRAINT THE_NOTA (NOTA)>0 AND THE_NOTA(NOTA)<=20 TYPE COLORPRIM POSSREP (CHAR(10)) CONSTRAINT THE_COLORPRIM (COLORPRIM) IN {‘AMARILLO’, ‘AZUL’, ‘ROJO’} TYPE CLAVEP POSREP (CHAR(5) CONSTRAINT SUBSTRING(THE_CLAVEP(CLAVEP),1,1)=P AND IS_NUMERIC(SUBSTRING(THE_CLAVEP(CLAVEP),2,5)

El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Tipos de reglas de integridad Marzo 2012Administración de Base de Datos10 Restricciones de relación CONSTRAINT Date, C. J. (2001). Introducción a los Sistemas de Bases de Datos (7ma. ed.). PEARSON EDUCACION. Integridad CONSTRAINT R4P IS_EMPTY (PROVEEDOR WHERE CIUDAD =”Caracas” AND ESTATUS<>20) Los proveedores de Caracas deben tener un estatus de 20

El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Tipos de reglas de integridad Marzo 2012Administración de Base de Datos11 Restricciones de estado: se ocupan de los estados correctos de la base de datos Restricciones de transición: se refieren a restricciones sobre el cambio de la base de datos de un estado correcto a otro. P.e las restricciones sobre un estado civil Integridad Transiciones válidasTransiciones inválidas  Soltero a casado  Casado a viudo  Casado a divorciado  Viudo a casado  Divorciado a casado  Soltero a viudo  Soltero a divorciado  Viudo a divorciado  Divorciado a viudo  Viudo a soltero  Casado a soltero  Divorciado a soltero

El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Tipos de reglas de integridad Marzo 2012Administración de Base de Datos12 Restricciones de transición: Integridad CONSTRAINT R4P IS_EMPTY(((PROVEEDOR’ {CodP, ESTATUS}) RENAME ESTATUS AS ESTATUS’ JOIN PROVEEDOR {CodP, ESTATUS} ) WHERE ESTATUS’ >ESTATUS) Los provedores no pueden disminuir de estatus Se asume ‘ para los valores de la relación antes del cambio.

El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Tipos de reglas de integridad Marzo 2012Administración de Base de Datos13 Restricciones de tipo o dominio Integridad Atributo  Dominio  Valor  Dominio Sintaxis BNF para reglas de dominios seria: Definición-de-dominio::= DCL nb-de-dominio [PRIMARY] DOMAIN restricción terminador restricción::= tipo-de-dato [predicado] terminador: :=; I ELSE respuesta-a-la-violación respuesta-a-la-violación::= unidad-de-código- ejecutable

El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Tipos de reglas de integridad Marzo 2012Administración de Base de Datos14 Restricciones de tipo o dominio Integridad DCL NOMBRE DOMAIN CHAR (20); DCL COLOR DOMAIN CHAR(10) COLOR IN IN ('ROJO', ‘VERDE', ‘AZUL', ‘MARRON'); DCL PESO DOMAIN FIXED (5,1) PESO > O AND PESO < 2000; DCL SEXO DOMAIN CHAR (1) SEXO IN (’F’,’M’); DCL QTY DOMAIN FIXED (5) QTY > = 0; DCL LOCATION DOMAIN CHARACTER (20) VARYING LOCATION IN ('London', 'Paris', Rome 1, 'Atenas');

El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Tipos de reglas de integridad Marzo 2012Administración de Base de Datos15 Restricciones de tipo o dominio para claves primarias Integridad DCL P#PRIMARY DOMAIN CHAR(6) AND IS NUMERIC(SUBSTR(P#, 2,5)) ELSE DO; set return code to "Regla de dominio de P# violada"; REJECT; END;

El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Tipos de reglas de integridad Marzo 2012Administración de Base de Datos16 Restricciones de relación Date, C. J. (2001). Introducción a los Sistemas de Bases de Datos (7ma. ed.). PEARSON EDUCACION. Integridad Sintaxis BNF para definir reglas de integridad sobre relaciones es: regla-de-integridad-sobre-relaciones ::= etiqueta: [lista-de-condiciones-de-activación:] restricción [; I ELSE respuesta-a-la-violación] condición-de-activación ::= WHEN COMMITTING | BEFORE cambio-before | AFTER cambio-after

El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Tipos de reglas de integridad Marzo 2012Administración de Base de Datos17 Restricciones de relación Date, C. J. (2001). Introducción a los Sistemas de Bases de Datos (7ma. ed.). PEARSON EDUCACION. Integridad cambio-before ::= INSERTING nombre-de-registro[ FROM nombre-de-estructura] | UPDATING parámetro-de-registro [FROM nombre- de-estructura] | UPDATING parámetro-de-campo [ FROM [ nombre-de-estructura.}nombre-de- elemento] | DELETING parámetro-de-registro cambio-after ::= INSERTING parámetro-de-registro | UPDATING parámetro-de-registro | UPDATING parámetro-de-campo | DELETING parámetro-de-registro

El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Tipos de reglas de integridad Marzo 2012Administración de Base de Datos18 Restricciones de relación Date, C. J. (2001). Introducción a los Sistemas de Bases de Datos (7ma. ed.). PEARSON EDUCACION. Integridad parámetro-de-registro ::= [nombre-de-cursor-»] nombre- de-registro parámetro-de-campo ::= [nombre-de-cursor->] nombre- de-registro. nombre-de-campo Restricción::= predicado Respuesta-a-la-violación::= unidad-ejecutable

El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Tipos de reglas de integridad Marzo 2012Administración de Base de Datos19 Restricciones de relación Integridad RREL1 :BEFORE UPDATING S.STATUS FROM S: NEW_STATUS > S.STATUS El nuevo status del proveedor debe ser mayor que el actual RREL2: AFTER INSERTING E1 EMPLEADO AFTER UPDATING E1 EMPLEADO.MGR#: EXISTS (E2 EMPLEADO WHERE E2 EMPLEADO.EMP#=E1 EMPLEADO.MGR#); El gerente de un empleado debe ser otro empleado RREL3:WHEN COMMITTING: UPDATE CUENTA SET SALDO = SALDO * SALDO;

El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Reglas de Integridad en SQL Marzo 2012Administración de Base de Datos20 Integridad en SQL – Datos requeridos – Claves – Generales Clausula CHECK Dominios Aserciones (Assertion) – Disparadores (Triggers) Integridad

El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Reglas de Integridad en SQL Marzo 2012Administración de Base de Datos21 Datos requeridos – Algunas columnas deben tener un valor válido y no está permitido que tengan valores nulos – Se debe especificar en la instrucción DDL para crear o modificar tablas Integridad Nombre VARCHAR(20) NOT NULL

El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Reglas de Integridad en SQL Marzo 2012Administración de Base de Datos22 Claves – Integridad de entidad: cada tupla es única y se identifica univocamente con un conjunto de atributos llamados clave primaria. – Se define en la instrucción DDL para crear o modificar tablas. Integridad CREATE TABLE Estudiante ( CI integer, nombre VARCHAR(20), Sexo SexType NOT NULL, teléfono VARCHAR(20), PRIMAY KEY (CI);

El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Reglas de Integridad en SQL Marzo 2012Administración de Base de Datos23 Claves – Integridad de entidad – Para definir una clave compuesta se especifican todos los nombres de las columnas en la clausuala PRIMARY KEY – Si hay mas de una clave, se llaman claves candidatas y deben cumplir que no deben ser nulas y su valores son únicos Integridad PRIMAY KEY (CI, CodMat,Semestre); RIF CHAR(11) NOT NULL UNIQUE(RIF)

El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Reglas de Integridad en SQL Marzo 2012Administración de Base de Datos24 Claves – Integridad referencial: Las claves externas son definidas por la clausula FOREING KEY – Se implementa mediante la clausula FOREING KEY( ) REFERENCES [( )] [acción referencial] en las instrucciones CREATE y ALTER TABLE, Integridad Tabla padre Tabla hijo Estudiante CI Cursa CI

El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Reglas de Integridad en SQL Marzo 2012Administración de Base de Datos25 Integridad referencial – La acción referencial indica que hacer en caso de la actualización o eliminación de la clave en la tabla padre con las clausulas ON UPDATE y ON DELETE Integridad Si se borra/ actualiza una clave en la tabla padre CASCADE: borra las filas/actualiza claves externas de las filas, correspondientes en la tabla hijo. SET NULL: asigna el valor NULL a la clave externa de las filas correspondientes en la tabla hijo, si la clave externa permite NULL. SET DEFAULT: asigna el valor predeterminado a la clave externa de las filas correspondientes en la tabla hijo, si se ha especificado un valor DEFAULT para la clave externa. NO ACTION: rechaza la operación de borrado o actualización de la tabla padre, es la acción predeterminada.

El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Reglas de Integridad en SQL Marzo 2012Administración de Base de Datos26 Restricciones Generales – Clausula CHECK: define una restricción sobre los valores que puede tomar un atributo. – Se puede usar directamente en la definición de una tabla y puede tener expresiones SQL Integridad CHECK (VALUE >=1 AND VALUE <= 20)); CREATE TABLE Cursa ( CI Integer, CodMat Smallint, Semestre Char(6), Nota Integer, PRIMARY KEY (CI, CodMat, Semestre), CHECK (Nota >=1 AND Nota <= 20));

El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Reglas de Integridad en SQL Marzo 2012Administración de Base de Datos27 Restricciones de dominio – En SQL se pueden definir nuevos dominios (tipos) con nombre que se podrán usar en la definicion de tablas Integridad CREATE DOMAIN valnota INTEGER DEFAULT 1 CHECK (VALUE >=1 AND VALUE <= 20)); CREATE TABLE Cursa ( CI Integer, CodMat Smallint, Semestre Char(6), Nota valnota, ….

El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Reglas de Integridad en SQL Marzo 2012Administración de Base de Datos28 Aserciones (Assertion) – Restricciones que no están asociadas a una tabla en particular – Se verifica su cumplimiento para todos los casos Integridad CREATE ASSERTION incripcionAlumno CHECK (NOT EXISTS (SELECT CI, SEMESTRE FROM inscribe I, materia M WHERE I.codM = M.codM GROUP BY CI, SEMESTRE HAVING SUM(Materia.creditos) > 24))

El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Reglas de Integridad en SQL Marzo 2012Administración de Base de Datos29 Disparadores (Triggers) – Son procedimientos que el SMBD invoca automáticamente cuando un cambio de estado en la BD cumple con ciertas condiciones. Su descripción contiene tres partes. Evento: Una modificación de la base de datos que activa el disparador. Condición: Una condición o consulta (falsa si el conjunto de respuesta es vacio) que se ejecuta cuando se activa el disparador. Acción: Un procedimiento que se ejecuta cuando se activa el disparador y la condición es verdadera Integridad

El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Reglas de Integridad en SQL Marzo 2012Administración de Base de Datos30 Disparadores (Sintaxis) Integridad CREATE TRIGGER ON [REFERENCING OLD ROW AS O, NEW ROW AS N] [FOR EACH ROW] [WHEN ] [BEGIN] acción [END] Donde; momento: BEFORE (antes) o AFTER (después), indica que se ejecuta antes o después de la sentencia que lo activa. Evento de activación: INSERT, UPDATE, o DELETE. FOR EACH ROW Indica que el disparador será por cada fila de la tabla BEGIN… END se usa para definir un bloque que contiene varias sentencias SQL

El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Reglas de Integridad en SQL Marzo 2012Administración de Base de Datos31 Disparadores (Ejemplo SQL99) Integridad CREATE TRIGGER NotaValida BEFORE INSERT OR UPDATE ON CURSA REFERENCING NEW ROW AS N FOR EACH ROW WHEN (N.nota > 20 or N.nota<1) BEGIN PRINT(“Nota no valida, los valores deben estar entre 1 y 20); END

El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Reglas de Integridad en SQL Marzo 2012Administración de Base de Datos32 Disparadores (Ejemplo Oracle) Integridad CREATE TRIGGER NotaValida BEFORE INSERT OR UPDATE ON CURSA FOR EACH ROW BEGIN IF (:new. nota > 20 or (:new. Nota < 1 ) THEN RAISE_APPLICATION_ERROR(-20000,’ Nota no valida, los valores deben estar entre 1 y 20 '); END IF; END

El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Reglas de Integridad en SQL Marzo 2012Administración de Base de Datos33 Disparadores (Ejemplo 2 Oracle) Integridad CREATE TRIGGER StatusValido BEFORE INSERT OR UPDATE ON PROVEEDOR FOR EACH ROW BEGIN IF (:new.status < :old.status ) THEN RAISE_APPLICATION_ERROR(-20000,’ El status nuevo no puede ser menor al existente'); END IF; END

El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Reglas de Integridad en SQL Marzo 2012Administración de Base de Datos34 Disparadores (Ejemplo 2) Integridad CREATE TRIGGER PesoValido BEFORE INSERT OR UPDATE ON PARTES FOR EACH ROW BEGIN CASE WHEN INSERTING THEN IF (:new.color=‘rojo’ ) THEN IF (:new.peso<25) THEN RAISE_APPLICATION_ERROR(-20000,’ Error en el peso'); END IF END IF; WHEN UPDATING(‘peso') THEN IF (:old.color=‘rojo’ ) THEN IF (:new.peso<25) THEN RAISE_APPLICATION_ERROR(-20000,’ Error en el peso'); END IF END IF; WHEN UPDATING(‘color') THEN IF (:new.color=‘rojo’ ) THEN IF (:old.peso<25) THEN RAISE_APPLICATION_ERROR(-20000,’ Error en el peso'); END IF END IF; END CASE END

El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Reglas de Integridad en SQL Marzo 2012Administración de Base de Datos35 Disparadores (Ejemplo 3) Integridad CREATE TRIGGER UnidadesInscritas BEFORE INSERT ON INSCRIPCIÓN FOR EACH ROW DECLARE uninscritas number; unimateria number; BEGIN SELECT sum (M.creditos) INTO uniscritas FROM inscripcion I, materia M WHERE I.codM = M.codM AND I.CI = :new.CI and I.SEMESTRE = :new.semestre; SELECT M.creditos INTO unimateria FROM materia M WHERE M.codM = :new.CodM; IF (uniscritas+unimateria > 24 ) THEN RAISE_APPLICATION_ERROR(-20000,’ exceso de creditos'); END IF; END

El DBA Concurrencia Diccionario Datos Integridad Seguridad Proc. Consultas El SMBD Manejo de Memoria Restauración Reglas de Integridad en SQL Marzo 2012Administración de Base de Datos36 Disparadores (Ejemplo 3) Integridad CREATE TRIGGER UnidadesInscritas AFTER INSERT OR UPDATE ON INSCRIPCIÓN FOR EACH ROW DECLARE uninscritas number; BEGIN SELECT sum (M.creditos) INTO uniscritas FROM inscripcion I, materia M WHERE I.codM = M.codM AND I.CI = :new.CI and I.SEMESTRE = :new.semestre; IF (uniscritas > 24 ) THEN RAISE_APPLICATION_ERROR(-20000,’ exceso de creditos'); END IF; END