La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "Administración de Base de Datos Integridad Prof Mercy Ospina Torres Prof Renny A. Hernandez"— Transcripción de la presentación:

1 Administración de Base de Datos Integridad Prof Mercy Ospina Torres mercy.ospinat@gmail.com Prof Renny A. Hernandez renny.hernandez@ciens.ucv.ve

2 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

3 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

4 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

5 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

6 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

7 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

8 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.

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

10 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

11 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

12 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.

13 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

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

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

16 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

17 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

18 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

19 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 + 0.1 * SALDO;

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 Datos20 Integridad en SQL – Datos requeridos – Claves – Generales Clausula CHECK Dominios Aserciones (Assertion) – Disparadores (Triggers) Integridad

21 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

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

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

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

25 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.

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

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

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

29 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

30 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

31 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

32 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

33 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

34 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

35 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

36 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


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

Presentaciones similares


Anuncios Google