Professional Documents
Culture Documents
Snchez E
Tejadillos E.
Facultad de Informtica Universidad Politcnica de Valencia
email: evsanar@inf.upv.es, eltepe@inf.upv.es
Resumen
1. Introduccin
1
Laboratorio de Sistemas de Informacin
Facultad de Informtica
Universidad Politcnica de Valencia
En los primeros puntos del trabajo, se realizar una definicin a modo
general de lo que son las restricciones de integridad, los tipos y
ventajas que tiene su implementacin en el esquema de la base de
datos.
2. Definicin de restricciones
2
Laboratorio de Sistemas de Informacin
Facultad de Informtica
Universidad Politcnica de Valencia
Es ms confiable al ser centralizado y uniforme.
Mantenimiento ms fcil.
3
Laboratorio de Sistemas de Informacin
Facultad de Informtica
Universidad Politcnica de Valencia
La comprobacin de la integridad consiste en asegurar que un par de
estados (D,D), implicados en una transaccin, satisface las
restricciones dinmicas y que el estado final D satisface las
restricciones esttica /dinmicas.
Formato:
atributo tipo [CONSTRAINT nombre] NOT NULL | NULL.
4
Laboratorio de Sistemas de Informacin
Facultad de Informtica
Universidad Politcnica de Valencia
Ejemplo:
Dni integer CONSTRAINT nn_dni NOT NULL
Formato:
atributo tipo DEFAULT expresin.
Ejemplo:
Num integer DEFAULT 1+3.
Formato:
5
Laboratorio de Sistemas de Informacin
Facultad de Informtica
Universidad Politcnica de Valencia
A nivel columna:
atributo tipo [CONSTRAINT nombre] PRIMARY KEY.
A nivel tabla:
[CONSTRAINT nombre] PRIMARY KEY(colum1,.. colum ..).
Ejemplo:
A nivel columna:
A nivel tabla:
CONSTRAINT pk_nomapelli PRIMARY KEY(nom,apelli).
Formato:
atributo tipo [CONSTRAINT nobmre] UNIQUE.
Ejemplo:
nombre char CONSTRAINT unq_nombre UNIQUE.
Formato:
[CONSTRAINT nombre] UNIQUE (columan1, columana2 ...)
Ejemplo:
CONSTRAINT unq_nomapell UNIQUE(nombre, apellidos)
6
Laboratorio de Sistemas de Informacin
Facultad de Informtica
Universidad Politcnica de Valencia
En ORACLE pueden definirse claves ajenas a nivel columna o a nivel
de tabla.
A acciones a realizar:
1. Restringir (restrict),
2. poner a nulos (set null),
3. propagar (cascade),
Formato:
atributo tipo [CONSTRAINT nombre] REFENCES ntabla[(columna)]
[ON DELETE CASCADE]
Ejemplo:
Dep char(10) REFERENCES departamento(nom)
7
Laboratorio de Sistemas de Informacin
Facultad de Informtica
Universidad Politcnica de Valencia
Formato:
[CONSTRAINT nombre] FOREIGN KEY (columna1, columna2, ...)
REFERENCES n_tabla[(columna1, columna2,...)] [ON DELETE
CASCADE]
Ejemplo:
FOREIGN KEY(dep) REFERENCES departamento(nom)
Formato:
atributo tipo [CONSTRAINT nombre] CHECK condicin.
Ejemplo:
Saldo integer CHECK saldo!=saldo_base
3. Modificacin de restricciones
8
Laboratorio de Sistemas de Informacin
Facultad de Informtica
Universidad Politcnica de Valencia
Se trata de un problema clsico en Base de Datos, al que se le conoce
como Gestin de Evolucin de Esquemas.
Formato:
ALTER TABLE [esquema.]nom_tabla
[ADD nom_col + defe_de_restriccion_col]
[MODIFY nom_col tipo + def_de_restriccion_col]
[ADD + def_restriccion_tabla]
[DROP PRIMARY KEY | UNIQUE | CONSTRAINT nombre [CASCADE]]
[ENABLE PRIMARY KEY | UNIQUE | CONSTRAINT nombre | ALL
TRIGGERS]
[DISABLE PRIMARY KEY | UNIQUE | CONSTRAINT nombre
[CASCADE]]
donde:
9
Laboratorio de Sistemas de Informacin
Facultad de Informtica
Universidad Politcnica de Valencia
- Si deshabilitamos una restriccin tenemos la posibilidad de
deshabilitar en cascada todas las restricciones que dependan de
ella a travs de la clusula cascade.
1. Procesar con A2or las reglas activadas de tipo BEFORE evento FOR
EACH STATEMENT.
10
Laboratorio de Sistemas de Informacin
Facultad de Informtica
Universidad Politcnica de Valencia
Aqu se comprueba las restriciones de integridad relevantes par
ael evento que son comprobadas a nivel de tupla individual
(NOT NULL, CHECK(), ...).
5. Procesar con A2or las reglas activadas de tipo AFTER evento FOR
EACH STATEMENT.
7. Conclusiones
13
Laboratorio de Sistemas de Informacin
Facultad de Informtica
Universidad Politcnica de Valencia
su mecanismo de validacin de datos puede hacerse mediante
disparos (triggers).
8. Referencias
14
Laboratorio de Sistemas de Informacin
Facultad de Informtica
Universidad Politcnica de Valencia