abd integridad

25
Administración de Base de Datos Integridad Prof Mercy Ospina Torres [email protected] Prof Renny A. Hernandez [email protected]

Upload: escuela-de-computacion-ucv

Post on 28-Jun-2015

863 views

Category:

Education


4 download

DESCRIPTION

Tema de ABD integridad

TRANSCRIPT

Page 1: Abd integridad

Administración de Base de Datos

Integridad

Prof Mercy Ospina Torres [email protected] Renny A. Hernandez

[email protected]

Page 2: Abd integridad

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

Page 3: Abd integridad

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

Page 4: Abd integridad

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

Page 5: Abd 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

Page 6: Abd 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

Page 7: Abd 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.

Page 8: Abd integridad

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)

Page 9: Abd integridad

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,

}

Page 10: Abd integridad

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

Page 11: Abd integridad

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

Page 12: Abd integridad

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

Page 13: Abd integridad

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.

Page 14: Abd integridad

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

Page 15: Abd integridad

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

Page 16: Abd 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

Page 17: Abd integridad

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);

Page 18: Abd integridad

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)

Page 19: Abd integridad

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

Page 20: Abd integridad

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.

Page 21: Abd integridad

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));

Page 22: Abd integridad

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, ….

Page 23: Abd integridad

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))

Page 24: Abd integridad

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

Page 25: Abd 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