RESTRICCIONES DE INTEGRIDAD
RESTRICCIONES DE INTEGRIDAD
RESTRICCIONES DE INTEGRIDAD
rechazo de la operacin
- Explcita
establece una restriccin adicional (no incorporada al modelo de datos)
se pueden incorporar de distinta forma a la Base de Datos:
Declarativa (establece qu, no cmo)
Procedural (indica qu y cmo)
- Inherente
no se requiere especificarlas
se asumen por definicin del modelo de datos (ej. en el modelo
relacional los valores de dominio son atmicos)
- RI de transicin
restringe los posibles cambios de valores entre estados sucesivos
(ej. el sueldo no puede decrecer implica conocer el estado viejo y el
nuevo para compararlos y chequear)
CLASIFICACIN DE RESTRICCIONES
De Estado:
CLASIFICACIN DE RESTRICCIONES
De Estado:
CLASIFICACIN DE RESTRICCIONES
De Estado:
(0,N)
TRABAJA
(0,1)
AREA
AREA (idArea, )
12
Ej:
(0,N)
EMPLEADO
TRABAJA
(0,1)
AREA
13
(0,N)
T2
T1
T2
T1
A
a1 b1
a1 b2
a2 b1
Matching
X
x1
x2
x3
x4
x5
a1
a2
null
null
a3
b1
b2
null
b1
null
Simple
ok
X
ok
ok
ok
Parcial
ok
X
ok
ok
X
Full
ok
X
ok
X
X
16
18
AREA
IdE
Nombre
AreaT
IdArea
111
E1
101
101
222
E2
102
102
333
E3
101
103
RI Dominio (DOMAIN)
(*)
20
RESTRICCIONES DE DOMINIO/ATRIBUTO
Definicin de un dominio en SQL:
CREATE DOMAIN NomDominio
AS TipoDato
[ DEFAULT ValorDefecto ]
[ [CONSTRAINT NomRestriccion] CHECK (Condicion) ]
[NOT] DEFERRABLE;
RESTRICCIONES DE DOMINIO/ATRIBUTO
Otra forma: Asociar a un dominio una o ms restricciones en la definicin
del atributo:
[CONSTRAINT NomRestriccion]
CHECK (Condicin)
[NOT] DEFERRABLE
Condicin: expresa una condicin que debe cumplirse (debe evaluar
como VERDADERA o DESCONOCIDA)
DEFERRABLE: se comprueba la validez de la restriccin al finalizar la
transaccin activa (no con cada operacin de actualizacin individual)
NOT DEFERRABLE: se comprueba la validez de la restriccin despus
de cada operacin de actualizacin individual
22
RESTRICCIONES DE DOMINIO/ATRIBUTO
Pueden plantearse:
- Comparacin simple: operadores (=,<,>,<=,>=,<>) Ej: Sueldo>0
- Rango: [NOT] BETWEEN (incluye extremos) Ej: nota BETWEEN 0 AND 10
- Pertenencia [NOT] IN
Lista explcita
Lista implcita
Ej: LIKE s%
Ej: LIKE s_
RESTRICCIONES DE DOMINIO/ATRIBUTO
Ej: El precio de un producto debe ser mayor a 0 e inferior a 1000, y tener 2
decimales
24
RESTRICCIONES DE DOMINIO/ATRIBUTO
Ej: Las Areas pueden ser de tres tipos: Admin, Taller o Ventas
DOMINIO
O bien:
CREATE TABLE Empleado
( ..
AreaT CHAR(30) CHECK (VALUE IN (Admin, Taller, Ventas)),
.. );
+ Definicin similar en Tabla Area
misma tabla
Ambito de la restriccin = tabla
Casos particulares: PRIMARY KEY, UNIQUE (a nivel tabla)
Su violacin promueve el rechazo de la operacin
Ej: El premio asignado a un empleado no debe superar el 20% del
promedio de todos los sueldos
ALTER TABLE Empleado
ADD CONSTRAINT premio_max
CHECK (premio < (SELECT AVG(sueldo)*0.2 FROM Empleado))
);
27