Integridad PDF
Integridad PDF
Integridad PDF
Bibliografa:
Fundamentos de bases de datos - Korth , Silberschatz
Introduccin a los sistemas de bases de datos - C.J. Date
Restricciones de Integridad
Proporcionan un medio de asegurar
que los cambios que se hacen en
la BD por usuarios autorizados
no resultan en una prdida de la
consistencia de los datos.
Integridad
Se refiere a la correccin de la
informacin contenida en la BD.
La verificacin de integridad se puede
realizar mediante programas
el sistema debera encargarse de esta
verificacin
Restricciones de Integridad
Existen tres tipos de restricciones de
integridad:
de dominio
de las entidades
referencial
Restricciones de dominio
A cada atributo est asociado un
dominio de valores posibles.
Los lmites de dominio son la forma ms
elemental de restricciones de integridad.
Son fciles de probar por el sistema
siempre que se introducen nuevos datos
a la BD.
Ejemplos
En la BD de proveedores y partes:
el peso de una parte no puede ser negativo.
En la BD bancaria:
los nmeros de una sucursal no pueden ser
negativos.
las ciudades de sucursales deben provenir de
una cierta lista
El SQL estndar soporta un conjunto
restringido de tipos de dominio:
cadenas de caracteres de longitud fija,
nmeros en coma fija,
entero,
entero pequeo,
fecha.
Observaciones
Las restricciones de dominio son
especficas
porque se refieren a una BD especfica.
El modelo relacional incluye dos reglas
generales de integridad
Se aplican no slo a una BD sino a todas.
Estas reglas se refieren a las claves
primarias y a las claves ajenas.
Regla de integridad de las
entidades
Ningn componente de la clave primaria
de la relacin base puede aceptar
nulos.
Las entidades en el mundo real son
distinguibles.
Las claves primarias realizan una
identificacin nica en el modelo relacional.
Una entidad sin identidad (con valor
desconocido) es una contradiccin.
Regla de integridad referencial
La BD no debe contener valores de clave
ajena sin concordancia.
La BD no debe contener un valor no nulo
de clave ajena para el cual no existe un
valor concordante de la clave primaria en la
relacin objetivo pertinente.
Clave ajena
Una clave ajena es un atributo ( conjunto de
atributos) de una relacin R2 cuyos valores
deben concordar con los de la clave primaria de
alguna relacin R1, donde R1 y R2 no son
necesariamente distintos.
Ejemplo, en la BD de proveedores y partes:
S# y P# son claves ajenas de la tabla SP.
SP no puede incluir un envo del proveedor S9 si no
existiera un proveedor S9 en S.
Observaciones
Una clave ajena dada y la clave primaria
correspondiente deben definirse sobre el
mismo dominio.
Observaciones
La clave ajena no necesita ser un
componente de la clave primaria de la
relacin que la contiene.
Observaciones
La clave ajena no necesita ser un componente
de la clave primaria de la relacin que la
contiene.
Ejemplo: dados los esquemas
depto( numdep,..., presup,...)
empleado(numemp,..,numdep,..,salario,.)
Observaciones
Una relacin dada puede ser desde luego
tanto una relacin referida como una
relacin referencial
R3 R2 R1
Observaciones
R1 y R2 no son necesariamente distintas en la
definicin de clave ajena.
Una relacin podra incluir una clave ajena
cuyos valores (no nulos) deben concordar con
los valores de la clave primaria de esa misma
relacin.
Observaciones
R1 y R2 no son necesariamente distintas en la
definicin de clave ajena.
Una relacin podra incluir una clave ajena cuyos
valores (no nulos) deben concordar con los valores de
la clave primaria de esa misma relacin.
Ejemplo:
empleado (NUMEMP,..., NUMDEP,
NUMEMP_GERENTE, . .., SALARIO,...)
Observaciones
Las claves ajenas pueden aceptar
nulos.
el empleado gerente no va a tener valor en
NUMEMP_GERENTE.
Justificacin de la regla
de integridad referencial
As como los valores de la clave primaria
representan identificadores de
entidades, los valores de clave ajena
representan referencias a entidades.
La regla de integridad referencial dice
tan slo que si B hace referencia a A,
entonces A debe existir.
PARA CADA CLAVE AJENA, EL DISEADOR
DEBE RESPONDER 3 PREGUNTAS
1- Puede aceptar nulos esa clave ajena?
En los envos no tendra sentido la existencia de un
envo cuyo proveedor se desconozca.
En los empleados, si podra existir un empleado no
asignado de momento a un departamento.
Esta respuesta depende de las polticas
vigentes del mundo real representado por la BD
2- Qu deber suceder si hay un intento
de eliminar el objetivo de una
referencia de clave ajena?
Ejemplo:
un intento de eliminar un proveedor del cual
existe al menos un envo.
2- Qu deber suceder si hay un intento de eliminar el
objetivo de una referencia de clave ajena?
Existen tres posibilidades:
RESTRINGIDA (RESTRICTED): La operacin de
eliminacin est restringida al caso en el cual no existen
tales envos. Se rechazar en caso contrario.
SE PROPAGA (CASCADES): La operacin de
eliminacin se propaga en cascada eliminando tambin
los envos correspondientes.
ANULA (NULLIFIES): Se asignan nulos a la clave
ajena en todos los envos correspondientes y enseguida
se elimina el proveedor. Esto vale slo si la clave ajena
puede aceptar nulos.
3- Qu deber suceder si hay un intento
de modificar la clave primaria del
objetivo de una referencia de clave
ajena?
Ejemplo:
un intento de modificar un nmero de
proveedor del cual existe por lo menos un
envo.
Existen tres posibilidades:
RESTRINGIDA (RESTRICTED): La operacin de
modificacin est restringida al caso en el cual no
existen tales envos. Se rechazar en caso contrario.
SE PROPAGA (CASCADES): La operacin de
modificacin se propaga en cascada modificando
tambin la clave ajena en los envos
correspondientes.
ANULA (NULLIFIES): Se asignan nulos a la clave
ajena en todos los envos correspondientes y enseguida
se modifica el proveedor. Esto vale slo si la clave ajena
puede aceptar nulos.
Sintaxis
CREATE TABLE tabla (definicin de campos,
PRIMARY KEY (clave primaria),
FOREIGN KEY (clave ajena) REFERENCES tabla-
objetivo
NULLS [NOT] ALLOWED
DELETE OF tabla-objetivo efecto
UPDATE OF clave-primaria-del-objetivo efecto ) ;
donde efecto = RESTRICTED, CASCADES
NULLIFIES
Otras posibilidades
podra efectuarse un dilogo con el usuario
final
podra grabarse informacin en archivo
histrico
podra transferirse a otro proveedor los
envos del proveedor en cuestin.