Administración de Base de Datos
Integridad
Prof Mercy Ospina Torres [email protected] Renny A. Hernandez
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 2
El SMBD
Manejo de Memoria
Restauración
Contenido
Marzo 2012
• ¿Qué es integridad de los datos?• Reglas de integridad y tipos
– Atributos y Tipos– Relación– Base de datos– Transición– Propias del modelo
• Reglas de integridad en SQL– Claves – Check– Dominios y aserciones– Disparadores
Concurrencia
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 3
El SMBD
Manejo de Memoria
Restauración
Componentes del SMBD
Marzo 2012
Integridad
Procesador de Consultas
Gestor de almacenamiento
S
M
B
D
Precompilador del DML
Precompilador del DML
Código objeto de programas de aplicación
Código objeto de programas de aplicación
Motor de evaluación de
consultas
Motor de evaluación de
consultas
Consultas DML
Compilador del DML
Compilador del DML
Interprete del DDL
Interprete del DDL
Gestor de transacciones
Gestor de transacciones
Gestor de archivosGestor de archivos
Gestor de memoria
intermedia
Gestor de memoria
intermedia
Gestor de autorización e integridad
Gestor de autorización e integridad
Archivos de Datos Índices Diccionario
de datosDatos
estadísticos
Almacenamiento en disco
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 4
El SMBD
Manejo de Memoria
Restauración
Integridad
Marzo 2012
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
Administración de Base de Datos 5
El SMBD
Manejo de Memoria
Restauración
Reglas de integridad
Marzo 2012
• 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
Administración de Base de Datos 6
El SMBD
Manejo de Memoria
Restauración
Tipos de reglas de integridad
Marzo 2012
• Restricciones de tipo: Especifica los valores válidos para un tipo, es cual es escalar.
• Restricciones de atributo: Especifica los valores válidos de un atributo dado
• Restricciones de relación: Especifica los valores válidos para una relación
• Restricción de base de datos: Especifica el valor válido de una base de datos dada
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
Administración de Base de Datos 7
El SMBD
Manejo de Memoria
Restauración
Tipos de reglas de integridad
Marzo 2012
• Restricciones de tipo o dominio
TYPE <nombre tipo> <representación posible>
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 posibleTHE_ 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
Administración de Base de Datos 8
El SMBD
Manejo de Memoria
Restauración
Tipos de reglas de integridad
Marzo 2012
• 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
Administración de Base de Datos 9
El SMBD
Manejo de Memoria
Restauración
Tipos de reglas de integridad
Marzo 2012
• Restricciones de atributo
Date, C. J. (2001). Introducción a los Sistemas de Bases de Datos (7ma. ed.). PEARSON EDUCACION.
Integridad
VAR PROVEEDOR BASE RELATION {CopP CLAVEPNOMBRE VARCHAR(50),ESTATUS INTEGER,CIUDAD CHAR(50),ATTR TYPE,
}
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 10
El SMBD
Manejo de Memoria
Restauración
Tipos de reglas de integridad
Marzo 2012
• Restricciones de relación
CONSTRAINT <nombre restricción> <definición restricción>
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
Administración de Base de Datos 11
El SMBD
Manejo de Memoria
Restauración
Tipos de reglas de integridad
Marzo 2012
• Restricciones de base de datos
– No puede validarse de inmediato, se difiere hasta el final de la transacción COMMIT
Date, C. J. (2001). Introducción a los Sistemas de Bases de Datos (7ma. ed.). PEARSON EDUCACION.
Integridad
CONSTRAINT R1BD IS_EMPTY ((PROVEEDOR JOIN SUMINISTRA) WHERE ESTATUS<20 AND CANT > 500)
Ningún proveedor de estatus menor a 20 puede suministrar alguna parte en cantidades mayores a 500
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 12
El SMBD
Manejo de Memoria
Restauración
Tipos de reglas de integridad
Marzo 2012
• Restricciones de estado: se ocupan de los estados correctos de la base de datos
• Restricciones de transición: se refieren a restricciones sobre transición de un estado correcto a otro. P.e las restricciones sobre un estado civil
Integridad
Transiciones válidas Transiciones 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
Administración de Base de Datos 13
El SMBD
Manejo de Memoria
Restauración
Tipos de reglas de integridad
Marzo 2012
• 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
Administración de Base de Datos 14
El SMBD
Manejo de Memoria
Restauración
Reglas de integridad
Marzo 2012
• Reglas propias del modelo relacional
– Integridad de entidad: Cada tupla de una relación debe ser única esto se logra definiendo un atributo como clave primaria
– Integridad referencial: Se define una clave foranea cuyos valores deben coincidir con los valores de la clave primaria o candidata para otra relacion
Integridad
VAR VENTA BASE RELATION {CopP CLAVEP,CodProd CLAVEProd,FECHA DATE,CANTIDAD INTEGER,
}
PRIMARY KEY {CodP, CodProd}FOREING KEY {CodP} REFERENCES PROVEEDORFOREING KEY {CodProd} REFERENCES PRODUCTO
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 15
El SMBD
Manejo de Memoria
Restauración
Reglas de Integridad en SQL
Marzo 2012
• Integridad en SQL– Datos requeridos
– Claves
– Generales
• Clausula CHECK
• Dominios
• Aserciones (Assertion)
– Disparadores (Triggers)
Integridad
El DBA
Concurrencia
Diccionario Datos
Integridad
Seguridad
Proc. Consultas
Administración de Base de Datos 16
El SMBD
Manejo de Memoria
Restauración
Reglas de Integridad en SQL
Marzo 2012
• 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
Administración de Base de Datos 17
El SMBD
Manejo de Memoria
Restauración
Reglas de Integridad en SQL
Marzo 2012
• 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
Administración de Base de Datos 18
El SMBD
Manejo de Memoria
Restauración
Reglas de Integridad en SQL
Marzo 2012
• 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
Administración de Base de Datos 19
El SMBD
Manejo de Memoria
Restauración
Reglas de Integridad en SQL
Marzo 2012
• Claves
– Integridad referencial: Las claves externas son definidas por la clausula FOREING KEY
– Se implementa mediante la clausula
FOREING KEY(<atributo>) REFERENCES <tabla_padre>[(<atributo_tpadre>)] [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
Administración de Base de Datos 20
El SMBD
Manejo de Memoria
Restauración
Reglas de Integridad en SQL
Marzo 2012
• 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
Administración de Base de Datos 21
El SMBD
Manejo de Memoria
Restauración
Reglas de Integridad en SQL
Marzo 2012
• 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
Administración de Base de Datos 22
El SMBD
Manejo de Memoria
Restauración
Reglas de Integridad en SQL
Marzo 2012
• 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 1CHECK (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
Administración de Base de Datos 23
El SMBD
Manejo de Memoria
Restauración
Reglas de Integridad en SQL
Marzo 2012
• Aserciones (Assertion)
– Restricciones que no están asociadas a una tabla en particular
– Se verifica su cumplimiento para todos los casos
Integridad
CREATE ASSERTION incripcionAlumnoCHECK (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
Administración de Base de Datos 24
El SMBD
Manejo de Memoria
Restauración
Reglas de Integridad en SQL
Marzo 2012
• 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
Administración de Base de Datos 25
El SMBD
Manejo de Memoria
Restauración
Reglas de Integridad en SQL
Marzo 2012
• Disparadores (Sintaxis)
Integridad
CREATE TRIGGER <nombre disparador> <momento> <evento>ON <nombre tabla>[WHEN <condición>][FOR EACH ROW] [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: INSERT, UPDATE, o DELETE.FOR EACH ROW Indica que el disparador será por cada fila de la
tablaBEGIN… END se usa para definir un bloque que contiene varias
sentencias SQL