Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Contenidos
Consideraciones generales
1. Nos interesan las reglas de integridad específicas de
una BD (reglas del negocio), además de RI Entidad, RI Referencial...
2. Veremos las RI definidas sobre relaciones base,
por estar restringidas a contener datos correctos (reflejar la realidad)
La regla “los títulos de las películas son únicos” se aplica a la
tabla base PELICULA, y a cualquier vista definida sobre ésta
¿Podemos definir RI sobre relaciones derivadas (sobre vistas)?
• Sería deseable
• La vista heredaría toda RI de sus relaciones base y podría añadir
nuevas (clave candidata nueva para la vista, p.ej.)
I Sólo consideraremos RI sobre relaciones base (por simplicidad)
Tema 6. Integridad en Sistemas de Bases de Datos Relacionales 4
6.1 Reglas de integridad
Consideraciones generales (y 2)
3. Nos interesa soporte de RI declarativo
No hablaremos de...
- Procedimientos almacenados (stored procedures), ni de
- Procedimientos disparados ( triggered procedures)
4. Una BD en un estado de integridad es correcta:
• No viola ninguna RI conocida por el SGBD, es decir,
• Satisface AND lógico de todas las RI definidas en su esquema
5. La integridad es importante en...
• DISEÑO (estructuras de datos y reglas de integridad adecuadas)
• EJECUCIÓN (corrección de la información)
6. RI son mantenidas en el Catálogo del Sistema
Subsistema de Integridad del SGBD:
• controla operaciones de usuario (INSERT,UPDATE,DELETE...)
• para asegurar que NO violan las reglas de integridad
Tema 6. Integridad en Sistemas de Bases de Datos Relacionales 5
• Alteración de un dominio
ALTER DOMAIN <nomdominio> ... ;
– Permite añadir y eliminar restricciones de integridad de dominio y
valor por defecto
ON UPDATE...
– Indica la regla de actualización para T1.CK respecto de T2.FK
Qué ocurre si se intenta modificar la clave candidata dentro de una fila r1 de T1 y
existe alguna fila r2 en T2 que le hace referencia (contiene valor r2.FK = r1.CK)
– Acciones referenciales posibles:
a. NO ACTION (opción por omisión) Rechazar la actualización sobre T1.CK
b. CASCADE Propagar la actualización de C K a toda fila r2 de T2 que se refiera a r1
c. SET DEFAULT
Asignar su valor por defecto a los componentes de FK que corresponden a
componentes modificados de T1.CK, en todas las filas r2, y actualizar r1
» Debe existir una fila en T1 con cada componente de C K a su valor por defecto
d. SET NULL
Asignar NULL a los componentes de la FK correspondientes a componentes modificados
en T1.CK, en todas las filas r2, y actualizar r1
» Tales componentes de la FK debe tener nulos permitidos
El código de los guiones es único (≡si hay 2 guiones con igual código, son el mismo)
CREATE ASSERTION guión_código_único
NOT EXISTS (SELECT * FROM Gui ón G1, Guión G2
WHERE G1.codG = G2. codG
AND NOT ( G1.titulo=G2.titulo AND
G1.descrip= G2.descrip) );
N este aserto...
- Equivale a especificar UNIQUE( codG ) en el CREATE TABLE