tema 4 integridad v131
TRANSCRIPT
-
5/26/2018 Tema 4 Integridad v131
1/63
1
Ficheros y Bases de Datos
Tema 4
Restricciones de integridad
2
Restricciones de Integridad
4. Restricciones de integridad 4.1. Restricciones de los dominios
4.2. Integridad referencial
4.3. Asertos
4.4. Disparadores
4.5. Dependencias funcionales 4.5.1. Cierre de un conjunto de dependencias funcionales
4.5.2. Cierre de un conjunto de atributos
4.5.3. Recubrimientos mnimos de dependencias funcionales
4.6. Dependencias multivaloradas 4.6.1. Reglas de inferencia para las dependencias multivaloradas
-
5/26/2018 Tema 4 Integridad v131
2/63
3
Objetos que viven en los SGBD
Dentro de los SGBD viven distintos elementos relacionadosentre s
Restriccin de Tabla
Bases de Datos
Tabla
T1
V1
Vista
Espacio para Tablas
S1 ==> T1
Sinnimo
Indice
IntegridadReferencial
T1
T2
V1
4
Restricciones de integridad
Las restricciones de integridad proporcionan un medio deasegurar que las modificaciones hechas a la base de datos porlos usuarios autorizados no provoquen la prdida de laconsistencia de los datos.
Por tanto, las restricciones de integridad protegen a la basede datos contra los daos accidentales.
-
5/26/2018 Tema 4 Integridad v131
3/63
5
Restricciones de Integridad
Tipos de restricciones de integridad: Declaracin de claves.
Cardinalidad de la relacin de varios a varios, de uno a varios, deuno a uno.
Restricciones de los dominios
Integridad referencial
Asertos
Disparadores
Dependencias funcionales
Dependencias multivaloradas
6
Restricciones de Integridad
4. Restricciones de integridad 4.1. Restricciones de los dominios
4.2. Integridad referencial
4.3. Asertos
4.4. Disparadores
4.5. Dependencias funcionales 4.5.1. Cierre de un conjunto de dependencias funcionales
4.5.2. Cierre de un conjunto de atributos
4.5.3. Recubrimientos mnimos de dependencias funcionales
4.6. Dependencias multivaloradas 4.6.1. Reglas de inferencia para las dependencias multivaloradas
-
5/26/2018 Tema 4 Integridad v131
4/63
7
4.1 Restricciones de dominio
Una definicin adecuada de las restricciones de los dominiospermite verificar los valores introducidos en la base de datos
Tambin permite examinar las consultas para asegurarse deque tengan sentido las comparaciones que hagan.
El principio subyacente a los dominios de los atributos esparecido al de los tipos de las variables en los lenguajes deprogramacin.
Los lenguajes de programacin con tipos estrictos permitenal compilador examinar el programa con mayor detalle.
8
Restricciones de dominio
Se ha visto que hay que asociar a cada atributo un dominiode valores posibles.
En el Captulo 3 se vieron varios tipos de dominios estndar,
tales como los enteros, caracteres y fecha/tiempo en SQL.La declaracin de que un atributo pertenezca a un
determinado dominio acta como una restriccin sobre losvalores que puede tomar.
Edad:entero 22, Acacia Avenue
-
5/26/2018 Tema 4 Integridad v131
5/63
9
Restricciones de dominio
La clusula CREATE DOMAIN se puede usar para definir nuevosdominios. Ejemplo, las instrucciones: create domain Euros numeric(12,2)
create domain Dlares numeric(12,2) Definen los dominios Euros y Dlares como nmeros decimales con un total de
12 dgitos, dos de los cuales se sitan despus de la coma decimal.
Un intento de asignar un valor de tipo Dlares a una variable de tipo Eurosresultara en un error sintctico, aunque ambos tengan el mismo tipo numrico.
La declaracin de diferentes dominios para diferentes monedas ayuda adetectar errores.
Los valores de un dominio pueden ser convertidos a otro dominio. Si elatributo A de la relacin r es de tipo Euros, se puede convertir a Dlaresescribiendo: cast r.A as Dlares
10
Restricciones de dominio
La clusula CHECK de SQL permite restringir los dominiosde maneras poderosas que no permiten la mayor parte de lossistemas de tipos de los lenguajes de programacin.
Permite al diseador del esquema especificar un predicadoque debe satisfacer cualquier valor asignado a una variablecuyo tipo sea el dominio.
Las condiciones check complejas pueden ser tiles cuando sedesee asegurar la integridad de los datos, pero se deben usarcon cuidado, dado que pueden ser costosas de comprobar.
-
5/26/2018 Tema 4 Integridad v131
6/63
11
Restricciones de dominio:Restricciones Check
Ningn valor en columna ORDER_QTYde la tabla ORDER_ITEM debe ser mayorde 100.
REGLA:
CUMPLIMIENTO:
APLICACIN
SGBD
PGM n
REGLA
SGBD
PGM 1
REGLA
PGM 2
REGLA
PGM n
PGM 1
PGM 2
SGBD
REGLA
Cada programa (PGM)gestiona las reglas
El SGBD gestiona las reglasque afectarn a todos los programas
12
Restricciones de dominio:Restricciones Check
CREATE TABLE ORDER_ITEM (ORDER_NO INTEGER NOT NULL, ART_NO INTEGER NOT NULL, ORDER_QTY SMALLINT NOT NULL
CHECK(ORDER_QTY
-
5/26/2018 Tema 4 Integridad v131
7/63
13
Restricciones de dominio
Ejemplo: Restringir un dominio para que no contenga valores nulos:
Ejemplo: Limitar dominio para que contenga slo un conjuntoespecificado de valores usando la clusula in:
Ejemplo: Asegurar que un dominio de sueldo por hora slo permita
valores mayores que un valor especificado (como puede ser el sueldomnimo):
14
Restricciones de dominio
Dentro de las restricciones de los dominios, un tipo especialde restriccin que se puede aplicar a cualquier dominio es larestriccin de existencia.
Esta restriccin evita la aparicin de valores nulos en lascolumnas.
CREATE TABLE EMP
( EMPNO CHAR(6) NOT NULL, FI RSTNME VARCHAR( 12) NOT NULL, MI DI NI T CHAR( 1) NOT NULL WI TH DEFAULT LASTNAME VARCHAR(15) NOT NULL, WORKDEPT CHAR(3) , PHONENO CHAR(4) , HI REDATE DATE, J OB CHAR( 8) , EDLEVEL SMALLI NT, SEX CHAR( 1) , BI RTHDATE DATE, SALARY DECI MAL( 9, 2) , BONUS DECI MAL( 9, 2) , COMM DECI MAL( 9, 2) )
I N DBX. TSX
Atributo NULLTipo de datos
---
-
5/26/2018 Tema 4 Integridad v131
8/63
15
Restricciones de dominio
Nulos NULL es un valor especial que indica que es un valor desconocido
No se tiene en cuenta cuando se usan funciones de columna (AVG,SUM, MIN, MAX) excepto COUNT
Dos nulos no se consideran iguales, salvo para: GROUP BY, ORDER BY
Unicidad de columna a menos que se utilice UNIQUE WHERE NOTNULL
NULL + 7 = NULL
Estas instancias representancosas muy diferentes
16
Restricciones de dominio
Nulos Al definir una columna se puede elegir entre:
Admitir nulos (por omisin)
No admitirlos Columna tipo NOT NULL
Establecer valores por defecto Campo DEFAULT informado
-
5/26/2018 Tema 4 Integridad v131
9/63
17
Restricciones de dominio
Ejemplo NulosCREATE TABLE departments (ID NUMBER(10) NOT NULL,NAME VARCHAR2(50) NOT NULL DEFAULT ---DESCRIPTION VARCHAR2(50) NOT NULL);
INSERT INTO departments VALUES (1, Aces High, Powerslave);
INSERT INTO departments (ID, NAME) VALUES (2, Wasted Years);
INSERT INTO departments (ID, DESCRIPTION) VALUES (3, Toto II);
INSERT INTO departments VALUES (4, Revelations, NULL);
Toto II---3
PowerslaveAces High1
DESCRIPTIONNAMEID
ERRORERROR
ERRORERROR
18
Restricciones de dominio:Nulos en columnas numricas
EMPNO SALARY000320000310
000290000340000330
19950.0015900.00
15340.00-25370.00
AVG(SALARY)
19140.00
Obtener la media de salariosde estos empleados
-
5/26/2018 Tema 4 Integridad v131
10/63
19
Restricciones de dominio:Nulos en columnas de cadenas de caracteres
Resultado usando NULL
EMPNO WORKDEPT000320000290000300000330
E21-
E11-
EMPNO DEPTNAME
000320 SFTWR SUPP000300 OPERATIONS
Proporcionar una lista de empleados y el nombre de su departamento,emparejando DEPTNO con WORKDEPT
DEPTNO DEPTNAMEE11E21
-
OPERATIONSSFTWR SUPPUNKNOWN
20
Restricciones de dominio:Peligro de los nulos
A B
2 5
- 3
4 -
SUM (A) =SUM (B) =
SUM (A) =COUNT(*)
SUM (A + B) =
AVG (A) =
68
7
2 3
-
5/26/2018 Tema 4 Integridad v131
11/63
21
Restricciones de dominio:Consideraciones de los nulos
Los nulos extienden el lgebra relacional a un lgebra de lodesconocido.
Lo desconocido es absorbente: nulo operado con cualquier cosa es nulo
nulo comparado con cualquier cosa es falso
Sin embargo, se agrupan en un mismo grupo de GROUP BY( a pesar de que dos nulos son diferentes)
Se debe tener en cuenta el tratamiento que los SGBD realizansobre los nulos de manera concreta.
22
Restricciones de dominio
Restricciones de unicidad Otro tipo especial de restriccin que se puede aplicar a cualquier dominio es la
restriccin de unicidad. Esta restriccin evita la aparicin de valores duplicados en las columnas.
Ejemplo:Slo se admite una sucursal en cada ciudad.
CREATE TABLE Sucursales(nombre-sucursal VARCHAR(20),ciudad-sucursal VARCHAR(20) NOT NULL,
- Restriccin de existencia
direccion-sucursal VARCHAR(20) UNIQUE- Restriccin de unicidad
PRIMARY KEY(nombre-sucursal)
-
5/26/2018 Tema 4 Integridad v131
12/63
23
Restricciones de Integridad
4. Restricciones de integridad 4.1. Restricciones de los dominios
4.2. Integridad referencial 4.3. Asertos
4.4. Disparadores
4.5. Dependencias funcionales 4.5.1. Cierre de un conjunto de dependencias funcionales
4.5.2. Cierre de un conjunto de atributos
4.5.3. Recubrimientos mnimos de dependencias funcionales
4.6. Dependencias multivaloradas
4.6.1. Reglas de inferencia para las dependencias multivaloradas
24
4.2 Integridad referencial
La integridad referencial permite asegurar que un valor queaparece en una relacin para un conjunto de atributosdeterminado aparezca tambin en otra relacin para un ciertoconjunto de atributos.
Clave
primaria
ORDER_NO ART_NO ORDER_QTY
22333
22333
40000
42500
2
8
35555 40000 1
ORDER_ITEM
Tabladependiente
ORDER
Tablapadre
ORDER_NO ORDER_DATE ORDER_QTY ORDER_REF
22333
22444
35555
ARTICLE
Tablapadre
ART_NO ART_NAME STOCK_QTY
40000
42500
75500
Claveajena
Clave
primaria
Claveajena
Clave
primaria
Como puedo evitar que haya lneas de pedido que no sean de unpedido existente?
-
5/26/2018 Tema 4 Integridad v131
13/63
25
Integridad referencial:Unicidad por Claves
Una clave es un conjunto ordenadode columnas de una tabla
Una clave compuesta est formada por varias columnas
000010 Christine Haas A00
000020 Michael Thompson B01000030 Sally Kwan C01000050 John Geyer E01
21
Clave simple Clave compuesta
EMPNO FIRSTNME LASTNAME WORKDEPT
26
Integridad referencial:Columnas de identidad
Existen SGBD que permiten la utilizacin desecuencias para generacin automtica de valores,por ejemplo en Oracle:
-
5/26/2018 Tema 4 Integridad v131
14/63
27
Integridad referencial:Columnas de identidad
Algunos SGBD admiten la generacin automticade valores, por ejemplo en MySQL:
28
Integridad referencial
El SGBD garantiza que slo se puede actualizar una claveprimaria (PRIMARY KEY) o nica (UNIQUE KEY) si nohay ninguna clave externa (FOREIGN KEY) que dependa deella.
-
5/26/2018 Tema 4 Integridad v131
15/63
29
Integridad referencial:Clave Primaria
E01 Support Services
E11 OperationsE21 Software Support
. . .
000050 John B GEYER E01
000280 Ethel R SCHNEIDER E11
. . .
DEPTNO
EMPNO
DEPT
EMP
Una clave primaria define de forma nica cada fila de la tabla
Una Clave primaria debe ser y
Claveprimaria
Claveprimaria
nica no nula
30
Integridad referencial:Clave ajena o externa
Una restriccin referencial garantiza que todos losvalores (no nulos) de una FK tambin son valores de la PK
E01 Support Services
E11 Operations
E21 Software Support. . .
000050 John B GEYER E01000280 Ethel R SCHNEIDER E11
. . .
DEPTNO
EMPNO
DEPT
EMP
Restriccin referencial
PKPK
FK
-
5/26/2018 Tema 4 Integridad v131
16/63
31
Integridad referencial
Qu pasa cuando borramos una clave que es referenciada por una clave ajena? Se puede establecer cmo gestionar las relaciones cuando se producen operaciones
como borrado o actualizacin. La creacin estara controlada si el SGBD no deja crear filas para las que no exista
una clave ajena definida.
CASCADE: Borra o actualiza la fila de la tabla padre y automticamente borra oactualiza las filas asociadas en la tabla hija
SET NULL: Borra o actualiza la fila de la tabla padre y establece la clave ajena en latabla hija como NULL. Las columnas de clave ajena en la fila hija no deberan estardefinidas como NOT NULL
NO ACTION: Evita que se actualice o borre la fila en la tabla padre si hay un valorde clave ajena que lo invalida en la tabla hija. RESTRICT: Rechaza el borrado o actualizacin en la tabla padre (simila a NO
ACTION)
32
Integridad referencial
ALTER TABLE ORDER ADD PRIMARY KEY (ORDER_NO)
ALTER TABLEARTICLE
ADD PRIMARY KEY (ART_NO)
ALTER TABLE ORDER_ITEM ADD PRIMARY KEY (ORDER_NO, ART_NO)
ALTER TABLE ORDER_ITEM ADD FOREIGN KEY(ORDER_NO) REFERENCES ORDER ON DELETE CASCADE
ALTER TABLE ORDER_ITEM ADD FOREIGN KEY(ART_NO) REFERENCESARTICLE ON DELETE RESTRICT
-
5/26/2018 Tema 4 Integridad v131
17/63
33
Integridad referencial
CREATE TABLE EMP
( EMPNO CHAR( 6) NOT NULL PRIMARY KEY,
FI RSTNAME VARCHAR( 12) NOT NULL,
MI DI NI T CHAR( 1) NOT NULL WI TH DEFAULT,LASTNAME VARCHAR(15) NOT NULL,WORKDEPT CHAR( 3) ,PHONENO CHAR(4) ,
HI REDATE DATE,J OB CHAR( 8) ,EDLEVEL SMALLI NT,SEX CHAR( 1)BI RTHDATE DATE,
SALARY DECI MAL ( 9, 2) ,BONUS DECI MAL ( 9, 2) ,COMM DECI MAL ( 9, 2) ,
PRIMARY KEY (EMPNO))
Debe usarse en casos de multicolumna
O bien
34
Integridad referencial
La tabla DEPT debe estar definida
CREATE TABLE EMP
( EMPNO CHAR(6) NOT NULL
FI RSTNME VARCHAR( 12) NOT NULL,
MI DI NI T CHAR( 1) NOT NULL WI TH DEFAULT,
LASTNAME VARCHAR(15) NOT NULL,WORKDEPT CHAR(3) REFERENCES DEPT ON DELETE SET NULL,
PHONENO CHAR(4) ,
HI REDATE DATE,
J OB CHAR( 8) ,
EDLEVEL SMALLI NT,
SEX CHAR( 1) ,
BI RTHDATE DATE,
SALARY DECI MAL(9, 2) ,
BONUS DECI MAL( 9, 2) ,
COMM DECI MAL(9, 2) ,
PRI MARY KEY ( EMPNO) ,
FOREIGN KEY RED (WORKDEPT) REFERENCES DEPT
ON DELETE SET NULL
)
O bien
-
5/26/2018 Tema 4 Integridad v131
18/63
35
Integridad Referencial
RI es la situacin en la que todos losvalores de todas las FK son vlidos
Ejemplo:
PKEMPEMPNO INSERT
UPDATE
DELETE
INSERT
UPDATE
DELETE
FK DEPT
MGRNO
Que har el sistema en estos 6 casos?
36
Integridad referencial:Creacin de ndices
Un ndice de una base de datos es una estructura de datos quemejora la velocidad de las operaciones, permitiendo unrpido acceso a los registros de una tabla.
Al aumentar drsticamente la velocidad de acceso, se suelenusar sobre aquellos campos sobre los cuales se haganfrecuentes bsquedas.
Los ndices pueden ser definidos como nicos o no nicos. Un ndice nico acta como una restriccin en la tabla previniendo
filas idnticas en el ndice.
-
5/26/2018 Tema 4 Integridad v131
19/63
37
Integridad referencial:Creacin de ndices
38
Integridad referencial
PRIMARY KEY / UNIQUE KEY Deben tener un ndice nico
No debe admitir nulos
FOREIGN KEY Se recomienda un ndice por cuestin de rendimiento (cuando se
modifica/borra el valor padre, se comprueba la existencia de valoresdependientes)
Puede contener valores nulos
-
5/26/2018 Tema 4 Integridad v131
20/63
39
Integridad referencial:ndices nicos y no nicos
PHONE NO
555-1111
LASTNAME FIRSTNME MIDINIT ADDRESS PHONENO
SMITH DIANA A 2253 DAHLIA ST. 555-1111GAINES LOIS B 6094 BEAVER ST. 555-1221BROWN TERRY S 45 RIVER WALK 555-2168ADAMS SANDY A 26 CISCO LANE 555-1361FRIEDRICH JOHN P 5 BEAUMONT RD. 555-1411JONES LARRY R 1921 HILL RD. 555-3242
WISE SARA J 25 RAWLINGS ST. 555-2345JONES LAVERNE G 504 1ST AVE. 555-1777ADAMS BOBBY D 1426 MAPLE DR. 555-1423JONES LARRY R 240 BOSWELL DR. 555-5390SMITH GRACE G 983 FAMOUS RD. 555-8764CALDWELL SIMONE B 1224 42ND ST. 555-5367
INDICE UNICO VALOR DE CLAVE UNICAUN RID PARA CADA
INDICE NO UNICOMLTIPLES
RIDs
LASTNAME, FIRSTNME
JONES, LARRY
Puede haber varias tuplascon el mismo valor de ndice
No hay dos tuplas conel mismo valor de ndice
Varias referencias paraun mismo ndice
40
Integridad referencial:Creacin de ndices
LASTNAME FIRSTNME MIDINIT ADDRESS PHONENO PAGERNO
Smith Diana A 2253 Dahlia St. 555-1111 1234Gaines Lois B 6094 Beaker St. 555-1221 --Brown Terry S 45 River Walk 555-2168 3456Adams Sandy
A 26 Cisco Lane 555-1311 --Friedrich John P 5 Beaumont Rd. 555-1411 --
CREATE INDEX XLAST_FIRST_MON PHONEBOOK (LASTNAME, FIRSTNME,MIDINIT)
CREATE UNIQUE INDEX XPHONENOON PHONEBOOK (PHONENO)
CREATE UNIQUE INDEX WHERE NOT NULL INDEX XPAGER
ON PHONEBOOK (PAGERNO)
CREATE INDEX XNAMEON PHONEBOOK (LASTNAME, FIRSTNME)
-
5/26/2018 Tema 4 Integridad v131
21/63
41
Restricciones de Integridad
4. Restricciones de integridad 4.1. Restricciones de los dominios
4.2. Integridad referencial 4.3. Asertos
4.4. Disparadores
4.5. Dependencias funcionales 4.5.1. Cierre de un conjunto de dependencias funcionales
4.5.2. Cierre de un conjunto de atributos
4.5.3. Recubrimientos mnimos de dependencias funcionales
4.6. Dependencias multivaloradas
4.6.1. Reglas de inferencia para las dependencias multivaloradas
42
4.3 Asertos
Un aserto es un predicado que expresa una condicin que sedesea que la base de datos satisfaga siempre.
Las restricciones de dominio y las de integridad referencial
son formas especiales de los asertos. Sin embargo, hay muchas restricciones que no se pueden
expresar utilizando nicamente estas formas especiales.
-
5/26/2018 Tema 4 Integridad v131
22/63
43
Asertos
Ejemplos de estas restricciones pueden ser La suma de todos los importes de los prstamos de cada sucursal
debe ser menor que la suma de todos los saldos de las cuentas de esasucursal.
Cada prstamo tiene al menos un cliente que tiene una cuenta con unsaldo mnimo de 1200 Euros.
En SQL-92 los asertos adoptan la forma: create assertion check
44
Asertos
create assertion restriccin-saldo check
(not exists (select * from prstamo
where not exists (select *
from prestatario,impositor, cuenta
where prstamo.nmero-prstamo=prestatario.nmero-prstamo
and prestatario.nombre-prestatario = impositor.nombre-cliente
and impositor.nmero-cuenta = cuenta.nmero-cuenta
and cuenta.saldo >= 1200)))
Cuando se crea un aserto el sistema comprueba su validez.
Si el aserto es vlido, slo se permiten las modificaciones posteriores dela base de datos que no hagan que se viole el aserto.
Esta comprobacin puede introducir una sobrecarga importante si se han
realizado asertos complejos.
-
5/26/2018 Tema 4 Integridad v131
23/63
45
Restricciones de Integridad
4. Restricciones de integridad 4.1. Restricciones de los dominios
4.2. Integridad referencial 4.3. Asertos
4.4. Disparadores
4.5. Dependencias funcionales 4.5.1. Cierre de un conjunto de dependencias funcionales
4.5.2. Cierre de un conjunto de atributos
4.5.3. Recubrimientos mnimos de dependencias funcionales
4.6. Dependencias multivaloradas
4.6.1. Reglas de inferencia para las dependencias multivaloradas
46
4.4 Disparadores
Un disparador es una orden que el sistema ejecuta de manera automticacomo efecto secundario de la modificacin de la base de datos.
Los disparadores son mecanismos tiles para alertar a los usuarios o pararealizar de manera automtica ciertas tareas cuando se cumplen
determinadas condiciones. Se almacenan en la base de datos como si fueran datos normales,
persistentes y accesibles para las operaciones de la base de datos
PGM n
SGBDCUMPLIMIENTO:
APLICACIN
SGBD
REGLAS DENEGOCIO:
Las acciones de INSERT,UPDATE, y DELETEsobre una tabla, puedenprovocar que se debanrealizar otras accionespara cubrir lasnecesidades de negocio
-
5/26/2018 Tema 4 Integridad v131
24/63
47
Disparadores
Para disear un disparador es necesario: Especificar las condiciones en las que se va a ejecutar el disparador:
Evento que provoca la comprobacin del disparador Una condicin que se debe cumplir para que se ejecute el disparador
Especificar las acciones que se van a realizar cuando se ejecute eldisparador
Siguen el modelo evento-condicin-accin
48
Disparadores
Los disparadores estn asociados a operaciones sobre lasfilas de las tablas o vistas de la base de datos.
Cuando se realiza una operacin de insercin, modificacin o
borrado, el SGBD detecta si hay algn disparador asociadoque se ha de ejecutar
-
5/26/2018 Tema 4 Integridad v131
25/63
49
Disparadores
Un disparador (trigger) es un procedimiento especial que seejecuta en respuesta a un evento especfico.
Ej. Al aumentar el sueldo de un empleado, que se aumenteautomticamente el total de gastos de la empresa.
Un disparador tiene 3 partes: Evento: cabecera con la que se crea el trigger
Condicin: que tiene que suceder para que se dispare el trigger
Accin: que actividades se tienen que llevar a cabo
50
Disparadores
Crear o reemplazar un disparador:
Create [or replace] trigger nombre[Temporalidad del evento]
[Granularidad del evento]
[WHEN condicin]
Begin
Cuerpo del trigger
End;
EVENTO
CONDICIN
ACCIN
-
5/26/2018 Tema 4 Integridad v131
26/63
51
Disparadores
Temporalidad del evento BEFORE Operacin El cuerpo del disparador debe ejecutarse
antes del evento que causa la activacin del disparador
AFTER Operacin El cuerpo del disparador debe ejecutarsedespus del evento que causa la activacin del disparador
Operacin: INSERT: El disparador se activa cuando se inserta una nueva fila en la tabla, por
ejemplo, a travs de acciones INSERT UPDATE: El disparador se activa cuando se modifica una fila en la tabla, por
ejemplo, a travs de acciones UPDATE DELETE: El disparador se activa cuando se borra una fila en la tabla, por
ejemplo, a travs de acciones DELETE
Ejemplo: AFTER DELETE ON nombre_tabla AFTER DELETE OF nombre_columna ON nombre_tabla
52
Disparadores
Ejemplos:
1) CREATE OR REPLACE TRIGGER emp
BEFORE INSERT ON empleado
..
2) CREATE OR REPLACE TRIGGER salar
AFTER DELETE OF salario ON empleado
-
5/26/2018 Tema 4 Integridad v131
27/63
53
Disparadores
Por ejemplo, en lugar de permitir saldos de cuenta negativos,el banco trata los descubiertos dejando a cero el saldo de las
cuentas y creando un prstamo por el importe deldescubierto.
Este prstamo recibe un nmero de prstamo idntico alnmero de cuenta que ha tenido el descubierto.
54
Disparadores
En este ejemplo la condicin para ejecutar el disparador esuna actualizacin de la relacin cuenta que d lugar a unvalor negativo de saldo.
Supngase que Santos retir cierta cantidad de dinero de unacuenta que di lugar a que el saldo de la cuenta fueranegativo.
-
5/26/2018 Tema 4 Integridad v131
28/63
55
Disparadores
Las acciones que hay que emprender son las siguientes: t denota la tupla de la cuenta con un valor negativo de saldo.
Insertar una nueva tupla s a la relacin prstamo con s[nombre-sucursal] = t[nombre-sucursal] s[nmero-prstamo] = t[nmero-cuenta] s[importe] = - t[saldo]
Obsrvese que, dado que t[saldo] es negativo, hay quecambiar el signo de t[saldo] para obtener el importe delprstamo como un nmero positivo).
Insertar una nueva tupla u a la relacin prestatario con u[nombre-cliente] = Santos u[nmero-prstamo] = t[nmero-cuenta]
Hacer que t[saldo] sea 0.
56
Disparadores
Se refiere a la nueva
fila que se procesa
Un ejemplo en SQL:1999:
-
5/26/2018 Tema 4 Integridad v131
29/63
57
Disparadores
Se refiere ala nuevafila que seprocesa
Un ejemplo en MySQL:
58
Disparadores
Ejemplo de gestin de disparadores combinado conla utilizacin de secuencias, por ejemplo en Oracle:
Trigger para insertarnuevos identificadoresa partir de la secuencia
-
5/26/2018 Tema 4 Integridad v131
30/63
59
Restricciones de Integridad
4. Restricciones de integridad 4.1. Restricciones de los dominios
4.2. Integridad referencial 4.3. Asertos
4.4. Disparadores
4.5. Dependencias funcionales 4.5.1. Cierre de un conjunto de dependencias funcionales
4.5.2. Cierre de un conjunto de atributos
4.5.3. Recubrimientos mnimos de dependencias funcionales
4.6. Dependencias multivaloradas
4.6.1. Reglas de inferencia para las dependencias multivaloradas
60
Dependencias Funcionales
Una dependencia funcional (DF) es una propiedad semnticade un esquema de relacin que presentan las tuplas vlidas dela relacin que determina para cada valor de un conjunto deatributos X el valor de otro conjunto de atributos Y.
Es decir, dada una tupla t1 de la relacin con un valor para Xy otro para Y, si aparece otra tupla t2 con el mismo valor paraX, entonces esta tupla debe tener el mismo valor en Y que t1.
-
5/26/2018 Tema 4 Integridad v131
31/63
61
Dependencias Funcionales
Ejemplo 1. En la siguiente relacin se combinan los datos de los empleados,
como su cdigo de identificacin y nombre, y de los centros a losque estn adscritos, como la direccin y el telfono.
Empleados_Centros
Id_empleado NombreE DireccinE Puesto Salario Centro DireccinC TelfonoC123A Ana Almansa c/ Argentales Profesor 20.000 Informtica c/ Complutense 123012D David Daz c/ Daroca Ayudante 10.000 Informtica c/ Complutense 123789C Carlos Crespo c/ Cruz Catedrtico 30.000 Empresariales c/ Corua 789
62
Dependencias Funcionales
En este ejemplo se muestra grficamente que el valor delconjunto de campos DireccinC y TelfonoC depende delvalor del campo Centro.
En concreto, a un centro en particular le correspondenunvocamente una direccin y un telfono.
Es decir, cada vez que aparezca una fila con el valorInformtica para Centro, siempre le corresponder losmismos valores para los campos DireccinC y TelfonoC.
-
5/26/2018 Tema 4 Integridad v131
32/63
63
Dependencias Funcionales
Se dice entonces que tanto DireccinC como TelfonoC sondependientes funcionalmente de Centro.
Por cada fila con un mismo valor de Centro se repiten losvalores DireccinC y TelfonoC, lo que implica unaredundancia de valores no deseable que se estudiar msadelante en la normalizacin de relaciones.
64
Dependencias Funcionales
La validez de una relacin con respecto a las DF se interpretadesde el significado que el diseador asocia a la relacin.
Por tanto, una DF no se puede inferir de una relacin, sino
que se debe definir explcitamente sobre los atributos de larelacin conociendo perfectamente su semntica.
Una DF define los estados consistentes de una relacin enfuncin de las dependencias entre los valores de losatributos.
-
5/26/2018 Tema 4 Integridad v131
33/63
65
Dependencias Funcionales
Definicin 1.
Sea R={A1,.., An} el esquema universal de la base de datos
relacional, es decir, el conjunto de todos los atributos quepueden definirla y r una instancia del esquema R.
Una dependencia funcional XY (los valores de Xdeterminan unvocamente (o funcionalmente) los valores deY) entre dos conjuntos de atributos X e Y , tales que X,Y Respecifica la siguiente restriccin:
t1,t2R tales que t1[X]=t2[X] entonces t1[Y]=t2[Y]
66
Dependencias Funcionales
X se denomina antecedente e Y consecuente.
En otras palabras, quiere decir que los componentes Y decada tupla de r estn determinados unvocamente por los
valores de X.
-
5/26/2018 Tema 4 Integridad v131
34/63
67
Dependencias Funcionales
Observaciones: XY no implica necesariamente YX.
Ejemplo 2. {Nif}{nombre}
Sin embargo, {Nombre}{Nif} no es cierto puesto que se puedenrepetir nombres para diferentes personas.
68
Dependencias Funcionales
No se debe confiar en general en la dependencia funcional{Nif}{Nombre} porque en la prctica tambin hay Nifrepetidos.
Por ello, en las bases de datos generalmente se usa unidentificador propio que identifica unvocamente cada tuplaasociada a una persona.
-
5/26/2018 Tema 4 Integridad v131
35/63
69
Dependencias Funcionales
Una dependencia funcional determina una relacin uno avarios entre dos conjuntos de atributos:
Para un valor de X slo puede haber un valor de Y, peropara un valor de Y habr en general varios de X.
Por lo tanto, una dependencia funcional se puede observarcomo una restriccin de cardinalidad entre conjuntos deatributos de una misma relacin.
70
Dependencias Funcionales
Ejemplo 3.
Corolario 1. Una restriccin de cardinalidad de uno a varios entre dos esquemas
de relacin R1 y R2 y con superclaves XR1 e Y R2 se especificacon la dependencia funcional X Y en un nuevo esquema derelacin R3.
Una restriccin de cardinalidad de uno a uno entre dos esquemas derelacin R1 y R2 con superclaves XR1 e Y R2 se especifica con
las dependencias funcionales X Y e YX en un nuevo esquemade relacin R3. No obstante, las relaciones uno a uno se implementan generalmente
como un atributo de la relacin.
Empleados_Centros
Id_empleado NombreE DireccinE Puesto Salario Centro DireccinC TelfonoC123A Ana Almansa c/ Argentales Profesor 20.000 Informtica c/ Complutense 123
012D David Daz c/ Daroca Ayudante 10.000 Informtica c/ Complutense 123789C Carlos Crespo c/ Cruz Catedrtico 30.000 Empresariales c/ Corua 789
X Y
-
5/26/2018 Tema 4 Integridad v131
36/63
71
Dependencias Funcionales
Una superclave se puede definir en trminos de dependenciasfuncionales. S es superclave del esquema de relacin R si
S R y S R.Es decir, si t1,t2R tales que t1[S]=t2[S] entonces
t1[R]=t2[R], lo cual implica t1=t2porque deben coincidir entodos sus atributos, por lo que se est hablando de la mismatupla.
72
Dependencias Funcionales
Ejemplo 5.
Dependencias funcionales {ID_empleado}{NombreE, DireccinE, Puesto,Salario, Centro,
DireccinC,TelfonoC}
{Centro}{DireccinC,TelfonoC}
{DireccinC} {Centro, TelfonoC}
{TelfonoC} {Centro, DireccionC}
Empleados_Centros
Id_empleado NombreE DireccinE Puesto Salario Centro DireccinC TelfonoC123A Ana Almansa c/ Argentales Profesor 20.000 Informtica c/ Complutense 123012D David Daz c/ Daroca Ayudante 10.000 Informtica c/ Complutense 123789C Carlos Crespo c/ Cruz Catedrtico 30.000 Empresariales c/ Corua 789
X Y
-
5/26/2018 Tema 4 Integridad v131
37/63
73
Satisfaccin de dependencias funcionales
Definicin 2. Una relacin r con esquema R satisface una dependencia funcional
X
Y con X,Y
R, si todas las tuplas de r satisfacen
t1,t2
R talesque t1[X]=t2[X] entonces t1[Y]=t2[Y].
La comprobacin de la satisfaccin de dependencias funcionales esnecesaria en casos como la migracin de datos o la actualizacin desistemas heredados.
74
Satisfaccin de dependencias funcionales
Bajo esta definicin se pueden proponer algoritmos sencillospara comprobar la satisfaccin de un conjunto dedependencias funcionales de una relacin r, o paracomprobar la validez de la insercin de una tupla.
-
5/26/2018 Tema 4 Integridad v131
38/63
75
Algoritmos
Algoritmo 1.
Algoritmo para comprobar la integridad de una relacin con
respecto a un conjunto de dependencias funcionales. Entrada: relacin r con un conjunto enumerable de tuplas tiR,
i=1..n y n conjunto enumerable de dependencias funcionalesdi=Xi Yi, diD, i=1..m
for i:=1 to n-1
for j:=i+1 to n
for k:=1 to mif ti[Xk]=tj[Xk] and ti[Yk]tj[Yk] then
Valores inconsistentes de ti y tj debido a DF
76
Algoritmos
Algoritmo 2.Algoritmo para comprobar la integridad de la insercin de
una tupla en una relacin con respecto a un conjunto dedependencias funcionales. Entrada: relacin r con un conjunto enumerable de tuplas tiR,
i=1..n, una tupla t para insertar en r y n conjunto enumerable dedependencias funcionales di=Xi Yi, diD, i=1..m .
for i:=1 to nfor j:=1 to m
if t[Xj]=ti[Xj] and t[Yj]ti[Yj]
Valores inconsistentes de y debido a la DF
-
5/26/2018 Tema 4 Integridad v131
39/63
77
Mnimas dependencias funcionales
Las dependencias funcionales representan restricciones deintegridad que el sistema de gestin de bases de datos debe
asegurar.As que, dado un cierto conjunto D de dependencias
funcionales, es deseable encontrar otro conjunto E que sea lomenor posible que D de manera que cada dD se deduzcade E, con el objetivo de que el coste de mantener laintegridad definida en D se reduzca con E.
78
Mnimas dependencias funcionales
Una de las maneras de reducir el coste del aseguramiento dela consistencia mediante dependencias funcionales eseliminar las que no aportan nada semnticamente, es decir,son dependencias funcionales que cumple cualquier tupla.
-
5/26/2018 Tema 4 Integridad v131
40/63
79
Dependencias funcionales triviales
Una dependencia funcional X Y es trivial si y slo siYX .
Esto slo dice que si dos tuplas coinciden en una serie deatributos, entonces coinciden (obviamente) en unsubconjunto de esos mismos atributos.
Se denomina trivial porque no aporta ninguna restriccin alesquema de relacin.
80
Dependencias funcionales
En general interesar encontrar el conjunto mnimo dedependencias funcionales que sea semnticamenteequivalente (asegure el mismo nivel de integridad) a unconjunto dado de dependencias funcionales aportadas por eldiseador de la base de datos.
-
5/26/2018 Tema 4 Integridad v131
41/63
81
Cierre de un conjunto de dependenciasfuncionales
Definicin 4. El cierre de un conjunto de dependencias funcionales S, denotado
S+, es el conjunto de todas las dependencias definidas
intensionalmente por S.
En otras palabras, es el conjunto de todas las dependenciasfuncionales que se pueden deducir de S.
Este concepto es importante para poder determinar laequivalencia semntica de dos conjuntos de dependencias ypoder elegir el menor de forma que la comprobacin de susatisfaccin sea ms rpida.
Por otra parte, permite razonar sobre la descomposicin derelaciones que se estudia en el tema Normalizacin.
82
Cierre de un conjunto de dependenciasfuncionales
Ejemplo 6. Si a un centro le corresponden una direccin y un telfono
determinados, en particular tambin es cierto que a ese centro lecorresponde una direccin, y que a ese centro le corresponde un
telfono. Es fcil ver que si {Centro}{DireccinC,TelfonoC}
entonces {Centro}{DireccinC} y {Centro}{TelfonoC}
-
5/26/2018 Tema 4 Integridad v131
42/63
83
Cierre de un conjunto de dependenciasfuncionales
Notacin: Si X e Y son conjuntos de atributos, XY = XY
84
Cierre de un conjunto de dependenciasfuncionales
Para calcular el cierre de un conjunto de dependenciasfuncionales se dispone de un conjunto de axiomas deproduccin denominados Axiomas de Armstrong en honor ala persona que los propuso. 1. Reflexividad: Si YX , entonces X Y .
2. Aumentatividad: Si X Y , entonces XZ YZ.
3. Transitividad: Si X Y e Y Z , entonces X Z .
-
5/26/2018 Tema 4 Integridad v131
43/63
85
Cierre de un conjunto de dependenciasfuncionales
Estos axiomas son correctos en cuanto que derivaninformacin consistente con la definicin de dependencia
funcional.Adems son completos porque permiten deducir todas las
consecuencias de un conjunto de dependencias funcionales,es decir, su cierre.
86
Cierre de un conjunto de dependenciasfuncionales
Hay otras reglas de inferencia que se deducen de los axiomasde Armstrong y que permiten calcular el cierre de unconjunto de dependencias funcionales. 4. Autodeterminacin: X X (por reflexividad).
5. Unin: Si X Y y X Z, entonces X YZ
6. Descomposicin: Si X YZ , entonces X Y y X Z.
7. Composicin: Si X Y y ZW , entonces XZ YW.
8. Pseudotransitividad: Si X Y , YZW entonces XZW
-
5/26/2018 Tema 4 Integridad v131
44/63
87
Cierre de un conjunto de dependenciasfuncionales
Ejemplo 7. Dado el conjunto S de dependencias funcionales: {A}{B, C},
{C, D}
{E, F}, Se puede demostrar que {A,D} {F}, est en S+ :
{A}{B, C}, dada.
{A}{C}, descomposicin.
{A,D} {C, D}, aumentatividad.
{C, D}{E, F}, dada.
{A, D}{E, F}, transitividad
{A, D}{F}, descomposicin.
88
Cierre de un conjunto de dependenciasfuncionales
Se puede desarrollar un algoritmo que calcule el cierre delconjunto de dependencias funcionales a partir de slo las tresprimeras reglas de inferencia aplicndolas repetidamentehasta que no se produzcan ms dependencias funcionales (sealcance el punto fijo).
Este algoritmo es seguro con respecto a la completitud de losaxiomas.
La demostracin de completitud necesita la nocin de cierrede un conjunto de atributos.
-
5/26/2018 Tema 4 Integridad v131
45/63
89
Cierre de un conjunto de dependenciasfuncionales
Sin embargo, tambin es un algoritmo muy ineficiente por lacantidad de dependencias funcionales que se generan.
Ejemplo 8. Dado el conjunto de dependencias funcionales:
S={X{B1},...,{Bn}}
El cierre de S incluye todas las dependencias funcionales XYitales que Y{B1,...,Bn}, es decir, 2n-1, demasiado grande aunque Ssea pequeo.
90
Cierre de un conjunto de atributos
En la prctica no es necesario en general calcular todo elcierre de un conjunto de dependencias. Es ms interesantecalcular el conjunto de las dependencias que tienen en suparte izquierda un conjunto especificado de atributos.
El clculo del cierre de un conjunto de atributos permite: 1. Comprobar si una dependencia funcional se deduce de un
conjunto de dependencias funcionales sin necesidad de calcular sucierre. Se puede determinar si su comprobacin es redundante para laintegridad de los datos.
2. Comprobar si un conjunto de atributos es superclave. Asegura queel conjunto de atributos elegido por el diseador es adecuado paradeterminar unvocamente cada tupla de una relacin. Permitedeterminar superclaves que se pueden usar como ndice sin repetidos
(algoritmo de indexacin ms eficiente) para el acceso a los datosmediante consultas. 3. Calcular un conjunto mnimo de dependencias funcionales. til
para mantener la comprobacin de integridad menos costosa.
-
5/26/2018 Tema 4 Integridad v131
46/63
91
Cierre de un conjunto de atributos
Definicin 5. El cierre de un conjunto de atributos X con respecto a un conjunto de
dependencias funcionales S, denotado X+
S, es el conjunto deatributos Y tales que X Y se puede deducir de S. En otras palabras, el cierre de un conjunto de atributos X es el
conjunto de atributos Y determinados funcionalmente por X.
92
Cierre de un conjunto de atributos
Lema 1: X Y se deduce de un conjunto de dependencias funcionales S
Y X+S.
-
5/26/2018 Tema 4 Integridad v131
47/63
93
Cierre de un conjunto de atributos:Algoritmo
Algoritmo 3. Entrada: Conjunto de atributos X y un conjunto de dependencias
funcionales S. Salida: X+S.
resultado := X
while cambios en resultado do
for each YZ S do
if Yresultado then resultado := resultado Z.
94
Cierre de un conjunto de atributos:Algoritmo
Se puede demostrar que el algoritmo es correcto y completo.
El algoritmo tiene una complejidad cuadrtica con lacardinalidad de S.
Existen otros algoritmos de complejidad lineal.
-
5/26/2018 Tema 4 Integridad v131
48/63
95
Cierre de un conjunto de atributos:Algoritmo
Corolario 2. Se puede determinar si una dependencia funcional X Y se deduce
de un conjunto de dependencias funcionales S si Y
X+
S. Se puede determinar, por tanto, en tiempo lineal, si una dependencia
funcional est en S+.
96
Cierre de un conjunto de atributos:Algoritmo
Corolario 3. Se puede determinar si un conjunto de atributos C es superclave de
una relacin r bajo un conjunto de dependencias funcionales S sitodos los atributos de r pertenecen al cierre de C, es decir, si todos
los atributos de la relacin estn determinados funcionalmente por C. Adems, ser clave candidata si el conjunto de atributos es
irreducible (no hay ningn conjunto de cardinalidad menor que talque determine funcionalmente todos los atributos de r).
-
5/26/2018 Tema 4 Integridad v131
49/63
97
Cierre de un conjunto de atributos:Algoritmo
Ya es posible definir lo que es un recubrimiento mnimo dedependencias o conjunto irreducible equivalente, que va a
permitir mantener la integridad definida por un conjunto dedependencias funcionales a coste mnimo.
Para definir un recubrimiento mnimo hay que definir dosconceptos: el recubrimiento de un conjunto de dependenciasfuncionales y la equivalencia entre conjuntos dedependencias funcionales.
98
Recubrimiento de un conjunto dedependencias funcionales
Definicin 6. Dados dos conjuntos de dependencias funcionales S1 y S2, se dice
que S2 es un recubrimiento de S1 si cada dependencia de S1 sededuce de S2 es decir, se puede demostrar que cada dependencia de S1 est en el
cierre de S2
-
5/26/2018 Tema 4 Integridad v131
50/63
99
Equivalencia entre conjuntos dedependencias funcionales
Definicin 7.
Dos conjuntos de dependencias funcionales S1 y S2 sonequivalentes si S1+ = S2+.
De forma alternativa se define como Dos conjuntos de dependencias funcionales S1 y S2 son equivalentes si
S1 es un recubrimiento de S2 y S2 es un recubrimiento de S1.
100
Conjunto mnimo (o irreducible) dedependencias funcionales
Definicin 8. Un conjunto S de dependencias funcionales es irreducible si y
solamente si cumple las siguientes propiedades: 1. La parte derecha de cada dependencia funcional de S tiene slo unatributo.
2. La parte izquierda de cada dependencia funcional de S es irreducibleen el sentido en que si se elimina algn atributo, necesariamente cambiael cierre de S.
3. No se puede eliminar ninguna dependencia funcional de S sincambiar su cierre.
-
5/26/2018 Tema 4 Integridad v131
51/63
101
Recubrimientos mnimos dedependencias funcionales
Definicin 9. Recubrimiento mnimo de un conjunto de dependencias funcionales
Al conjunto mnimo de dependencias funcionales S1 equivalente aS2 se le denomina recubrimiento mnimo de S2.
Se puede demostrar que todo conjunto de dependencias funcionalestiene al menos un recubrimiento mnimo, por lo que se plantea elsiguiente lema.
102
Recubrimientos mnimos dedependencias funcionales
Lema 2. Todo conjunto S de dependencias funcionales tiene un conjunto de
dependencias funcionales equivalente en el que el lado derecho decada dependencia funcional tiene un nico atributo.
Teorema 1. Todo conjunto de dependencias funcionales tiene al menos un
recubrimiento mnimo.
-
5/26/2018 Tema 4 Integridad v131
52/63
103
Recubrimientos mnimos de dependenciasfuncionales
Algoritmo 4Calcular un recubrimiento mnimo G para un conjunto de
dependencias funcionales F
1. G := F2. Reemplazar cada dep. func. XY1Y2...Yk de G por k dep. func.
XY1, XY2,. ..., XYk3. // Eliminacin de atributos redundantes
Para cada XA G hacer:Para cada atributo B X hacer:
Calcular {X-B}+ con respecto al conjunto de dep. func. GSi A {X-B}+ entonces
G := (G {XA}) U {X-B A)4. // Eliminacin de dependencias funcionales redundantesPara cada XA G, Calcular X+ con respecto a (G {XA})
Si A X+ entoncesG := G {XA}
104
Recubrimientos mnimos dedependencias funcionales
Ejemplo 9: {A}{B, C}
{B}{C}
{A}{B}
{A, B}{C}
{A, C}{D}
-
5/26/2018 Tema 4 Integridad v131
53/63
105
Recubrimientos mnimos dedependencias funcionales
Primer Paso: {A}{B} {A}{C} {B}{C} {A}{B} {A, B}{C} {A, C}{D} Antes de aplicar el segundo paso, vemos que se repite {A}{B} ,
por lo que se puede eliminar una de ellas (esto correspondera altercer paso).
Segundo paso: Se puede eliminar C de {A, C}{D} porque se tiene {A}{C} , y
por la regla de aumentatividad se obtiene {A}{A,C}, como setiene tambin {A, C}{D}, se deduce por transitividad {A}{D}
106
Recubrimientos mnimos dedependencias funcionales
Tercer paso: Se puede eliminar {A, B}{C} porque se tiene {A}{C}, y por la
regla de aumentatividad se obtiene {A, B}{B,C}, y {A,B}{C}por descomposicin.
Se puede eliminar {A}{C} porque se tiene {A}{B}, {B}{C}y por transitividad se obtiene {A}{C}.
Se llega al recubrimiento mnimo T de S en el que las partesderecha de las dependencias funcionales tienen un soloatributo, las partes izquierda no son reducibles (ya que sonunitarias) y no se puede eliminar ninguna dependencia
funcional sin alterar S+
: T={{A}{B}, {B}{C}, {A}{D}}
-
5/26/2018 Tema 4 Integridad v131
54/63
107
Recubrimientos mnimos dedependencias funcionales
Para comprobar que no se puede eliminar ningunadependencia funcional se usa el corolario 2:
Se comprueba si {A}{B} se puede deducir de U={{B}{C},{A}{D}} comprobando si B{A}+U={A,D}, que no se cumple.
Se comprueba si {B}{C} se puede deducir de U={{A}{B},{A}{D}} comprobando si C{B}+U U={B}, que no se cumple.
Se comprueba si {A}{D} se puede deducir de U={{A}{B},{B}{C}} comprobando si D{A}+U ={A, B, C}, que no secumple.
Por lo tanto, es irreducible.
108
Dependencias funcionales
Las dependencias funcionales permiten imponer restriccionesde integridad que no son posibles de expresar con claves.
Una dependencia funcional es una generalizacin del
concepto de superclave.
-
5/26/2018 Tema 4 Integridad v131
55/63
109
Dependencias funcionales
Se ha mostrado un procedimiento que permite determinar elmnimo nmero de dependencias funcionales necesario para
la comprobacin de la consistencia de una relacin a partir deun conjunto inicial de dependencias funcionales.
Con este procedimiento el diseador de la base de datos tieneuna herramienta muy til para mejorar el rendimiento de susdiseos.
110
Restricciones de Integridad
4. Restricciones de integridad 4.1. Restricciones de los dominios
4.2. Integridad referencial
4.3. Asertos
4.4. Disparadores
4.5. Dependencias funcionales 4.5.1. Cierre de un conjunto de dependencias funcionales
4.5.2. Cierre de un conjunto de atributos
4.5.3. Recubrimientos mnimos de dependencias funcionales
4.6. Dependencias multivaloradas 4.6.1. Reglas de inferencia para las dependencias multivaloradas
-
5/26/2018 Tema 4 Integridad v131
56/63
111
Dependencias multivaloradas
Las dependencias multivaloradas son restricciones deintegridad que expresan relaciones entre los atributos de un
esquema que no pueden ser expresables con las dependenciasfuncionales.
112
Dependencias multivaloradas
Ejemplo 10. En la siguiente relacin se representan los empleados, sus domicilios
y telfonos, asumiendo que pueden tener ms de una vivienda ytelfono, y que no se dispone informacin acerca del tipo de
telfono, fijo o mvil, por lo que no se puede relacionar con undomicilio.
Estos atributos son independientes entre s. Para mantener la relacinconsistente es necesario expresar todas las combinaciones de losatributos.
-
5/26/2018 Tema 4 Integridad v131
57/63
113
Dependencias multivaloradas
Em p lea d os
Nombre Direccin TelfonoAna Almansa c/ Argentales 1Ana Almansa c/ Argentales 2Ana Almansa c/ Argentales 3Ana Almansa c/ Amaniel 1Ana Almansa c/ Amaniel 2Ana Almansa c/ Amaniel 3
114
Dependencias multivaloradas
Mientras que las dependencias funcionales impiden queaparezcan ciertas tuplas en las relaciones, las dependenciasmultivaloradas obligan a ello.
Las dependencias multivaloradas aparecen cuando en unesquema de relacin hay varias relaciones 1:Nindependientes entre s.
-
5/26/2018 Tema 4 Integridad v131
58/63
115
Dependencias multivaloradas
Definicin 10. Dados dos subconjuntos de atributos X e Y y un esquema R, la
dependencia multivalorada X
Y ( X multidetermina a Y)especifica la siguiente restriccin sobre la relacin r del esquema R:si existen en r dos tuplas t1 y t2 tales que t1[X]= t2[X], entonces debenexistir dos tuplas, t3 y t4, tales que:
t1[X]= t2[X]= t3[X]= t4[X],
t1[Y]= t3[Y] y t2[Y]= t4[Y],
t2[Z]= t3[Z] y t1[Z]= t4[Z] donde Z=R-(XY)
116
Dependencias multivaloradas
Esta definicin es ms sencilla de lo que parece si se observael siguiente grfico.
X Y Z
t1
t2
t3
t4
-
5/26/2018 Tema 4 Integridad v131
59/63
117
Dependencias multivaloradas
En definitiva se imponen todas las combinaciones de losvalores de los atributos Y y Z.
Si Z es vaco o sus valores son nicos, necesariamente t1 =t3y t2 =t4 , es decir, estamos hablando slo de dos tuplas.
X Yt1
t2
118
Dependencias multivaloradas
Informalmente se dice que siempre que existan dos tuplascon valores iguales de X pero distintos de Y, los valores de Yse deben repetir en tuplas separadas por cada valor distintode Z.
En definitiva, con esta restriccin se dice que la relacinentre X e Y es independiente de la relacin entre X y Z.
-
5/26/2018 Tema 4 Integridad v131
60/63
119
Dependencias multivaloradas
Ejemplo 11. En el ejemplo anterior se observan las restricciones multivaloradas
{Nombre}
{Direccin} y {Nombre}
{Telfono} . Debido a la simetra de la definicin (se pueden intercambiar los
papeles de Y y Z ) se deduce que si se cumple XY , entoncestambin se cumple XZ, que se representa de forma compactacomo
XY|Z.
120
Dependencias multivaloradas triviales
Definicin 11. Una dependencia multivalorada XY se denomina trivial si Y
X o XY=R .
Se denomina trivial porque no aporta ninguna restriccin relevante alesquema.
En el primer caso, Y X , slo se impone que un subconjunto delos valores de X est asociado siempre a los valores de X, lo cual estrivialmente cierto.
El segundo caso se vio en la definicin de dependenciamultivalorada.
-
5/26/2018 Tema 4 Integridad v131
61/63
121
Reglas de inferencia para lasdependencias multivaloradas
Para las dependencias multivaloradas tambin se proponenaxiomas de produccin que permiten calcular el cierre de un
conjunto de ellas. 1. Reflexividad para dependencias funcionales:
Si Y X, entonces XY.
2. Aumentatividad para dependencias funcionales: Si XY, entonces XZYZ.
3. Transitividad para dependencias funcionales: Si XY e YZ, entonces XZ.
4. Complemento para dependencias multivaloradas:
Si XY, entonces X R- (XY) 5. Aumentatividad para dependencias multivaloradas:
Si XY y VW, entonces WXVY.
122
Reglas de inferencia para lasdependencias multivaloradas
6. Transitividad para dependencias multivaloradas: Si XY e YZ, entonces X(Z-Y)
7. Si XY, entonces XY.
8. Si , XY, y Z Y existe un W disjunto de Y, entonces WZ y
XZ.
-
5/26/2018 Tema 4 Integridad v131
62/63
123
Reglas de inferencia para lasdependencias multivaloradas
Las tres primeras son las mismas reglas que los axiomas deArmstrong, las tres siguientes se refieren a dependencias
multivaloradas y las dos ltimas se refieren tanto adependencias multivaloradas como funcionales.
En concreto, la sptima se refiere a que una dependenciafuncional es un caso particular de una dependenciamultivalorada.
Se puede demostrar que este conjunto de reglas de inferenciaes correcto y completo para calcular el cierre de un conjunto
de dependencias, denotado por S+
.
124
Dependencias multivaloradas
Las dependencias multivaloradas permiten asegurar laconsistencia cuando se expresan atributos multivaloradosindependientes en un nico esquema de relacin.
Las dependencias funcionales permiten establecer relacionesuno a varios y uno a uno entre los atributos de un esquema derelacin, mientras que las dependencias multivaloradaspermiten expresar relaciones varios a varios.
-
5/26/2018 Tema 4 Integridad v131
63/63
125
Dependencias multivaloradas
Las dependencias funcionales y multivaloradas se usarncomo herramienta fundamental en el proceso de
normalizacin de esquemas.Adems son tiles en la comprobacin de consistencia de
relaciones resultado de migraciones y de sistemas heredados.