Title: Restricciones de Integridad
1Restricciones de Integridad en ORACLE
E. Sánchez E. Tejadillos
Laboratorio de Sistemas de Información Facultad
de Informática Universidad Politécnica de Valencia
2Índice
- Definición
- Tipos de restricciones de integridad
- Restricciones de Integridad en Oracle
- Valores Nulos
- Valores por Defecto
- Clave Primaria
- Clave Alternativa
- Clave Ajena
- Restricciones de integridad estáticas
- Demo
3Definición
- Las restricciones de integridad aseguran que la
información contenida en una base de datos es
correcta. - Ventajas de declarar las restricciones de
integridad como parte del esquema de la base de
datos - Reduce el coste de desarrollo de software.
- Es más confiable al ser centralizado y uniforme.
- Mantenimiento más fácil.
4Tipos
- Según estén orientadas
- Restricciones de Cardinalidad
- Restricción de Dominio
- Restricción de Unicidad
- Restricción de Inverso
- Restricción de Coexistencia
- Restricción de Clases hijas Disjuntas
- Restricción de Cobertura
- Según el estado
- Estáticas
- limitan los estados permitidos de la BD.
- Dinámicas
- restringen las posibles transiciones de estados
de la BD.
5Restricciones de integridad elementales en Oracle
- Integridad de Entidades
- Valores nulos
- Valores por defecto
- Claves primarias
- Claves alternativas
- Restricciones de integridad estáticas
- Integridad referencial
- Claves ajenas
6Tratamiento de valores nulos
- Especifica si una columna puede contener o no
valores nulos. ORACLE por defecto admite valores
nulos. - atributo tipo CONSTRAINT nombre NOT NULL
NULL. - Ejemplo
- Dni integer CONSTRAINT nn_dni NOT NULL
7Tratamiento de valores por defecto
- Especifica los valores que podrán ser asignados a
una columna, cuando en ésta no se introduzca
ningún valor . - atributo tipo DEFAULT expresión.
-
- Ejemplo
- Num integer DEFAULT 13.
8Tratamiento de clave primaria
- Designa una columna o combinación de columnas
como clave primaria de la tabla. - Puede ser definida a nivel de tabla o columna.
- A nivel columna
- atributo tipo CONSTRAINT nombre PRIMARY KEY.
- A nivel tabla
- CONSTRAINT nombre PRIMARY KEY(colum1,.. colum
..)
9Tratamiento de clave alternativa
- Se designa una columna o combinación de columnas
como clave única alternativa a la clave
seleccionada como primaria . - Puede ser definida a nivel de tabla o columna.
- A nivel columna
- atributo tipo CONSTRAINT nombre UNIQUE
- A nivel tabla
- CONSTRAINT nombre UNIQUE (colum1,.. colum ..)
10Tratamiento de las restricciones de integridad
estáticas
- Son fórmulas bien formadas de primer orden
construidas con atributos de la tabla como
términos básicos, que satisfacen en todos los
estados válidos para las tuplas de una relación .
- Son restricciones de tipo CHECK asociadas a una
columna o una tabla . - atributo tipo CONSTRAINT nombre CHECK
condición. -
- Ejemplo
- Saldo integer CHECK saldo!saldo_base
11Tratamiento de claves ajenas
- A nivel columna
- Se declara detrás del tipo asociado .
- Si solo se indica el nombre de la tabla, por
defecto se referencia a la clave primaria de la
tabla. - La columna donde se define el REFERENCES puede
tener valores nulos - atributo tipo CONSTRAINT nombre
- REFENCES ntabla(columna) ON DELETE CASCADE
- Ejemplo
- Dep char(10) REFERENCES departamento(nom)
12Tratamiento de claves ajenas
- A nivel de tabla
- Se especifica la columna o composición de
columnas que forman parte de la clave ajena
después de la palabra clave FOREIGN KEY y la
columna o columnas a la que se hace referencia
después de la palabra clave REFERENCES - El número de columnas y tipos debe coincidir
- CONSTRAINT nombre FOREIGN KEY (columna1,
columna2, ...) REFERENCES n_tabla(columna1,
columna2,...) ON DELETE CASCADE -
- Ejemplo
- FOREIGN KEY(dep) REFERENCES departamento(nom)
13Tratamiento de claves ajenas
- Acciones realizar en caso de borrado o
modificación de la clave primaria a la que hace
referencia la clave ajena - 1. Restringir (restrict),
- 2. poner a nulos (set null),
- 3. propagar (cascade),
- En ORACLE se puede especificar la situación en
que se borre la clave primaria y queramos
propagarlo a la clave ajena mediante la cláusula
on delete cascade. - Por defecto, ORACLE asume la operación como
restringida y para incluir otras características
hay que generar disparadores (triggers).
14Modificación de restricciones
- Tipos de modificaciones sobre una BD
- No afectan a la integridad de la BD ya existente.
- Si afectan a la integridad de la BD e implican
la toma de decisiones. El diseñador es quién debe
elegir el mecanismo para mantener la BD íntegra - ALTER TABLE sirve para añadir o redefinir una
columna, a añadir o borrar una restricción de
integridad y para activar o desactivar cualquier
restricción de integridad o disparo