Title: La L
1La Lógica en el desarrollo de las Bases de Datos
2La Lógica en el desarrollo de las Bases de
Datos 1. Lógica y Bases de Datos. 2. Bases de
datos deductivas. 3. Actualización de bases de
datos deductivas. 3.1 Actualización 3.2
Comprobación de la integridad 3.3 Restauración
de la consistencia
31. Lógica y Bases de Datos
La idea básica que subyace al uso de la lógica
para el estudio de los sistemas de bases de datos
es una idea común a todos los campos de la
computación lógica la semántica por teoría de
modelos de la lógica proporciona una base para la
representación del conocimiento, y la semántica
por teoría de la demostración proporciona una
base para la computación J.W. Lloyd, en
Computational Logic, 1990.
41. Lógica y Bases de Datos.
- La lógica de primer orden ha sido utilizada en el
desarrollo del modelo relacional de datos desde
su aparición en 1970. - Problemas
- formalización
- definición de lenguajes de consulta
- estudio del concepto de independencia del
dominio - actualización de vistas
- - comprobación y restauración de la integridad.
- - optimización de consultas
- - diseño de bases de datos
52. Bases de datos deductivas.
Base de datos relacional
Conocimiento explícito
Base de datos relacional
Reglas deductivas
Reglas deductivas
Conocimiento implícito
Base de datos deductiva
Las Bases de Datos Deductivas extienden la
capacidad expresiva de las bases de datos
relacionales incluyendo un conjunto de reglas que
permiten definir conocimiento implícito
62. Bases de datos deductivas.
Hechos tuplas de relaciones (conocimiento
explícito)
Hechos
Información derivada
Sistema de inferencia
Reglas reglas deductivas (conocimiento
implícito)
Reglas
Sistema de Gestión de Bases de Datos Relacionales
Hechos
Usuario
Reglas
Sistema de Inferencia
Base de datos deductiva
Sistema de gestión de bases de datos deductivas
72. Bases de datos deductivas
BASE DE DATOS
ESQUEMA
Ri
Relaciones básicas Ri Í (Di1 x Di2 x ... x
Dini ) (1 i m) (m relaciones
básicas)
Relaciones básicas Ri (Ai1 Di1, Ai2 Di2 , ...,
Aini Dini) (1 i m) (m relaciones
básicas) Relaciones derivadas Si (Ai1 Di1 ,
Ai2 Di2 , ..., Aini Dini) (1 i s) (s
relaciones derivadas) Restricciones de
Integridad Wi Wi es una expresión lógica (1
i k) (k restricciones de integridad)
Relaciones derivadas Sij (x1, x2,..., xni )
Wij (1 i s) (s relaciones
derivadas) (1 j Ki) (Ki reglas para
la relación Si)
82. Bases de datos deductivas
Relaciones básicas PIEZA (codpieza D1, desc
D2, peso D3) CP codpieza PROV (codprov D4,
nombre D5, zona D6) CP codprov PRECIOS
(codprov D4, codpieza D1, precio D7) CP
codprov, codpieza CAj codprov PROV CAj
codpieza PIEZA COMP (pieza1 D1, pieza2
D1) CP pieza1, pieza2 CAj pieza1
PIEZA CAj pieza2 PIEZA
Relaciones derivadas PRECIOS3 (codprov D4,
codpieza D1, precio D7) CP codprov,
codpieza CAj codprov PROV CAj codpieza
PIEZA PRECIOS_EXT (codprov D4, nombre D5,
codpieza D1, desc D2, precio D7) CP
codprov, codpieza CAj codprov PROV CAj
codpieza PIEZA COMPONENTE (pieza1 D1,
pieza2 D1) CP pieza1, pieza2 CAj pieza1
PIEZA CAj pieza2 PIEZA Restricciones de
integridad "x "y ( COMPONENTE (x,y) Ø
COMPONENTE (y,x) )
Esquema
92. Bases de datos deductivas
PIEZA
PROV
BDD
PRECIOS
COMP
Reglas deductivas 1 precios3 (x, y,z) ?z (
precios (x, y, z) Ù prov (x, w, 3) ) 2
componente (x, y) ?z (comp (x, z) Ù componente
(z, y) ) 3 componente (x, y) comp (x, y) 4
precios_ext (x,n,y,d,p) ?z ?z ( prov (x,
n,z)Ùpieza (y, d,w)Ùprecios (x, y, p) )
102. Bases de datos deductivas
PROV
PIEZA
PRECIOS
COMP
BASE DE DATOS
PRECIOS3
COMPONENTE
PRECIOS_EXT
El usuario desea manipular (consultar y
actualizar) las relaciones de la BD
independientemente de que sean relaciones básicas
o derivadas.
112. Bases de datos deductivas
Definición de información implícita
Mecanismo de vistas del modelo relacional
VISTA
Relación derivada
Base de datos relacional con vistas
Base de datos deductiva
122. Bases de datos deductivas
Limitaciones del modelo relacional (SQL92)
Limitaciones en la definición de vistas recursivas
Definición de vistas
Limitaciones en la actualización de las vistas
Actualización
SGBD relacionales
Ausencia de procedimientos para la evaluación de
consultas recursivas
132. Bases de datos deductivas.
Los sistemas de gestión de bases de datos
deductivas deben superar las limitaciones de los
sistemas relacionales
- PROBLEMAS
- Formalización
- Actualización de la base de datos
- Construcción de SGBD deductivos
LÓGICA
142. Bases de datos deductivas.
Formalización
Si intentamos representar la información
explícita y la información implícita en un mismo
lenguaje (lenguaje de 1er orden) obtenemos un
programa lógico
pieza (pz1, tornillo, 10) ... prov (pv1, Juan,
1) ... comp (pz1, pz3) ... precios3 (x, y, z)
?w (prov (x, w, 3) Ù precios (x, y, z)
) componente (x, y) ?z ( comp (x, z) Ù
componente (z, y) ) componente (x, y) comp (x,
y) precios_ext (x,n,y,d,p) ?z?w (prov (x, n, z)
Ù pieza (y, d, w) Ù precios (x, y, p) )
Base de datos deductiva
Reglas deductivas Hechos
152. Bases de datos deductivas
MARCO FORMAL Lógica de 1er orden (Programación
Lógica) Esquema de BDD (L, RI) - L es un
lenguaje de 1er orden - RI es un conjunto de
f.b.f de L (restricciones de integridad) BDD
(programa lógico) A A es un átomo base
(hechos) È A L1 Ù L2 Ù ... Ù Ln A es
un átomo y Li es un literal (reglas)
162. Bases de datos deductivas
Semántica de una BDD
Semántica de una BDD definir el conocimiento
existente en la base de datos. qué es cierto
en la BDD? Semántica declarativa conocimiento
en la BDD Semántica operacional procedimiento
para obtener el conocimiento
172. Bases de datos deductivas
Semántica de una BDD
- Programación lógica semántica operacional
SLDNF - semántica declarativa comp(D)
- Semántica operacional procedimiento SLDNF
- SLDNF - procedimiento de refutación
- - reglas de inferencia
- resolución
- negación como fallo
- Semántica declarativa asociada al SLDNF
compleción de D
18 componente (pz1,w)
Procedimiento SLDNF
2
3
comp (pz1,z) Ù componente (z,w)
comp (pz1,w)
z/pz3
hecho
hecho
w/pz3
componente (pz3,w)
w pz3 w pz8
3
2
comp (pz3,w)
comp (pz3,z ) Ù componente (z ,w)
De qué piezas se compone la pieza pz1?
w/pz8
z/pz8
hecho
hecho
componente ( pz8,w)
2
3
comp (pz8,w)
comp (pz8,z ) Ù componente (z ,w)
comp(D) componente (pz1, pz3) comp(D)
componente (pz1, pz8)
2 componente (x, y) comp (x, z) Ù componente
(z, y) 3 componente (x, y) comp (x, y)
19La Lógica en el desarrollo de las Bases de
Datos 1. Lógica y Bases de Datos. 2. Bases de
datos deductivas. 3. Actualización de bases de
datos deductivas. 3.1 Actualización 3.2
Comprobación de la integridad 3.3 Restauración
de la consistencia
203. Actualización de base de datos deductivas
Actualización sobre relación derivada
Actualización(es) sobre relación(es) básicas(s)
Dada una base de datos D (DBDI È BDE) y un
requisito de actualización insertar (A) (resp.
borrar (A)) donde A es una tupla de una relación
derivada, encontrar una transacción T sobre EDB
tal que T(D) satisfaga el requisito de
actualización
Ejemplo DELETE FROM PRECIOS3 WHERE codprovpv1
21PIEZA
PRECIOS_EXT
PRECIOS
PROV
T1borrar (PROV (pv1,Juan,1)) T2borrar (PIEZA
(pz3,tuerca,11), borrar (PIEZA
(pz8,arandela,8)) T3borrar (PRECIOS
(pv1,pz3,10), borrar (PRECIOS (pv1,pz8,20))
223. Actualización de bases de datos deductivas
Métodos para la actualización de bases de datos
deductivas
Utilización de los procedimientos de
evaluación de consultas para determinar los
posibles caminos de derivación del conocimiento
que se desea a actualizar
23SLDNF
precios_ext (pv1, x1, x2, x3, x4)
4
prov (pv1, x1, x5) Ù pieza (x2,x3,x6) Ù precios
(pv1,x2,x4)
T1
prov(pv1,Juan,1)
x1 / Juan
pieza (x2,x3,x6) Ù precios (pv1,x2,x4)
pieza(pz3,tuerca,11)
pieza(pz8,arandela,8)
T2
T2
x2 / pz8, x3 / arandela
x2 / pz3, x3 / tuerca
precios (pv1,pz3,x4)
precios (pv1,pz8,x4)
precios(pv1,pz3.10)
precios(pv1,pz8,20)
T3
T3
x4/ 10
x4/ 20
243.1 Actualización
Enunciado general del problema Dados el esquema
(L,RI) de una base de datos deductiva, un estado
de base de datos D de ese esquema tal que ?W?RI
se cumple que D satisface W, y dado un requisito
de actualización U tal que U no es cierto en D
entonces encontrar una transacción T tal que
?W?RI, D T(D) satisface W y U es cierto en D.
253.1 Actualización
Ejemplo 1
1. p(x) ? q(x) ? t(x) 2. p(x) ? w(x) ? v(x) 3.
t(x) ? s(x) ? r(x)
Actualización U p(1)
1) w(1), v(1) Í BDE 2) q(1), s(1) Í BDE y
r(1) ? BDE 3) p(1) Í BDE 4) q(1), t(1) Í
BDE
Obtener transacciones que aseguren una de estas
cuatro situaciones
263.1 Actualización
Caracterización del problema
- 1) Tiempo de generación de la solución.
- 2) Variables cuantificadas existencialmente
- 3) Recursividad
- 4) Información asumida
- 5) Tratamiento de restricciones de integridad
273.1 Actualización
- 1) Tiempo de generación de la solución.
- Tiempo de ejecución el árbol de derivación para
el requisito de actualización se genera cuando la
actualización es solicitada. - Tiempo de definición el árbol de derivación para
un requisito de actualización se estudia cuando
se define el esquema de la base de datos, lo que
supone una mejora ya que determinadas tareas sólo
se realizan una vez. - Mixto en este caso una parte de la solución se
genera en tiempo de definición del esquema y se
completa en tiempo de ejecución.
283.1 Actualización
- En el Ejemplo 1
- un método que obtuviese la solución en tiempo de
ejecución estudiaría el árbol de derivación de la
actualización p(1) para encontrar una solución. - un método que trabajase en tiempo de definición
del esquema estudiaría el requisito genérico p(x)
para obtener soluciones que luego se
instanciarían en tiempo de ejecución.
293.1 Actualización
2) Variables existencialmente cuantificadas.
Dada una regla deductiva de una base de datos
normal, a las variables que aparecen en el cuerpo
de la regla y no aparecen en la cabeza se les
denomina variables existencialmente
cuantificadas.
?x1 ¼?xi ¼?xm (A ? L1 Ù ? Ù Ln) ? (xi no
aparece en A) ?x1 ¼?xi-1 ?xi1 ¼ ?xm (A ? xi (L1
Ù ¼ Ù Ln))
La presencia de variables existencialmente
cuantificadas en las reglas deductivas puede
provocar la aparición del problema llamado falta
de valores durante la generación de las
transacciones que resuelven un requisito de
actualización.
303.1 Actualización
BDD 1. p(x) ? q(x,y) ? t(x,y) . t(1,2)
Ejemplo 2
p(1)
Actualización U p(1).
1
resolución
q(1,y) ? t(1,y)
y (q(1,y) Ù t(1,y))
y/--
Una solución sencilla a este problema consiste en
utilizar el valor nulo para la variable de la que
se desconoce el valor o bien un valor cualquiera
proporcionado por el usuario o extraído sin
criterio de la base de datos. Aunque en ocasiones
esta solución es la única posible, en otras se
puede elegir un valor tal que la transacción
obtenida sea más sencilla.
313.1 Actualización
BDD 1. p(x) ? q(x,y) ? t(x,y) . t(1,2)
Ejemplo 2
p(1)
Actualización U p(1).
1
resolución
q(1,y) ? t(1,y)
y (q(1,y) Ù t(1,y))
y/ nulo
y/ c
y/ 2
T1 insertar(q(1,nulo)), insertar(t(1,nulo))
T2 insertar(q(1, c)), insertar(t(1, c))
T3 insertar(q(1,2))
323.1 Actualización
3) Recursividad. La presencia de reglas
recursivas en la base de datos puede complicar la
generación de la transacción, ya que el árbol de
derivación puede ser infinito para un determinado
requisito de actualización, lo que supone la
existencia de infinitas transacciones posibles
para satisfacerlo.
333.1 Actualización
Ejemplo 3
BDD 1. p(x,y) ? q(x,y) 2. p(x,y) ? q(x,z) ?
p(z,y)
Actualización U p(1,1).
Para satisfacer este requisito hay infinitas
transacciones posibles T1 insertar(q(1,1))
T2 insertar(q(1,2)), insertar(q(2,1)) T3
insertar(q(1,2)), insertar(q(2,3)),
insertar(q(3,1))
343.1 Actualización
4) Problema de la información asumida. En
presencia de negación en las reglas deductivas,
es posible que algunas soluciones que podrían
parecer correctas no lo sean, ya que alguna
información que se ha supuesto cierta (resp.
falsa), durante la construcción de la solución
pase a ser falsa (resp. cierta) debido a las
actualizaciones propuestas más adelante.
353.1 Actualización
BDD 1. p(x) ? r(x,y) Ù Ø s(x,y) Ù q(x,y) 2.
s(1,2) ? q(1,2) r(1,2)
Ejemplo 4
p(1)
Actualización U p(1).
resolución
1
y (r(1,y) Ù Ø s(1,y) Ù q(1,y))
r(1,2) ? s(1,2) ? q(1,2)
r(1,y) ? s(1,y) ? q(1,y)
y/2
r(1,2) ? BDE s(1,2) fallo finito q(1,2) ? BDE
T1 insertar( q(1,2))
s(1,2)
s(1,2)
T1 no es una solución correcta porque induce la
inserción de s(1,2) que se había asumido falsa en
la construcción de la solución.
2
resolución
2
resolución
q(1,2)
q(1,2)
q(1,2)
resolución
363.1 Actualización
5) Tratamiento de las restricciones de
integridad. La solución propuesta para un
requisito de actualización puede suponer la
violación de alguna restricción de integridad por
lo que es interesante estudiar cómo integra cada
método, si lo hace, su estrategia con la
comprobación de las restricciones del esquema.
373.1 Actualización
Ejemplo 5
BDD 1. p(x) ? q(x) Ù r(x) W ?x (r(x) ?
t(x))
p(1)
1
resolución
Actualización U p(1).
q(x) ? r(x)
T1 insertar(q(1)), insertar(r(1))
T1 no es una solución correcta porque el estado
T1(BDD) viola la restricción de integridad W
Un método que integre la generación de las
soluciones con la restauración de la integridad
podría generar la transacción insertar(q(1)),
insertar(r(1)), insertar(t(1)).
383.1 Actualización
Estudio de un método de actualización 1. Semántic
a asumida la semántica declarativa determina el
conjunto de posibles soluciones al requisito de
actualización y la semántica operacional
constituye la herramienta para computar esas
soluciones. 2. Bases de datos tipo de bases de
datos y de restricciones de integridad para los
que está definido el método. 3. Requisitos de
actualización forma sintáctica de los requisitos
de actualización permitidos en el
método. 4. Transacciones generadas tipo de
soluciones obtenidas y si sólo se obtiene una o
todas las soluciones posibles. 5. Descripción del
método estrategia seguida para generar las
transacciones. 6. Corrección y completitud del
método. 7. Resumen cómo el método resuelve los
problemas antes mencionados.
39La Lógica en el desarrollo de las Bases de
Datos 1. Lógica y Bases de Datos. 2. Bases de
datos deductivas. 3. Actualización de bases de
datos deductivas. 3.1 Actualización 3.2
Comprobación de la integridad 3.3 Restauración
de la consistencia
403.2 Comprobación de la integridad
Restricción de integridad propiedad del mundo
real que una base de datos debe satisfacer en
cualquier instante para ser consistente con
cierto modelo del mundo real.
Evolución de una BD
D0
T1
D1
Ti
Di
Tn
Dn
Restricciones estáticas hacen referencia a un
único estado de la base de datos. Estas
restricciones restringen los estados válidos con
independencia de la secuencia de los
mismos. Restricciones dinámicas hacen referencia
a dos o más estados de la base de datos. Estas
restricciones restringen las secuencias de
estados válidas. Un caso particular de
restricciones dinámicas son las restricciones de
transición que restringen dos estados
consecutivos válidos.
413.2 Comprobación de la integridad
Comprobación de la integridad la comprobación de
la integridad en bases de datos consiste en
comprobar si el par de estados (D,D') implicados
en una transacción T satisface las restricciones
de transición y si el estado final D' satisface
las restricciones estáticas.
Método de comprobación de la integridad es un
procedimiento de decisión tal que, dado un estado
D y una restricción de integridad estática W,
decide con una respuesta binaria si/no si el
estado D satisface/viola la restricción estática
W.
423.2 Comprobación de la integridad
La forma más sencilla de comprobar las
restricciones estáticas es evaluar cada una de
ellas después de la transacción sin embargo esta
aproximación puede ser muy costosa en bases de
datos voluminosas. La comprobación de la
integridad podría simplificarse si consideráramos
sólo los "cambios" que la transacción ha
producido en la base de datos. Todos los métodos
propuestos para simplificar la comprobación de la
integridad suponen que la base de datos era
íntegra antes de la transacción. Apoyándose en
esta hipótesis, los métodos comprueban sólo
instancias de las restricciones generadas a
partir de las actualizaciones (inserciones y
borrados) de la transacción, evitando comprobar
instancias que ya se satisfacían antes de la
transacción y que además no se ven afectadas por
ésta.
433.2 Comprobación de la integridad
Comprobación simplificada de la integridad en
bases de datos relacionales
PRECIOS (codprov D4, codpieza D1, precio
D7) CP codprov, codpieza CAj codprov
PROV CAj codpieza PIEZA
W "x "y "z ( (precios(x, y, z) w t
(prov(x,w,t)) )
T insertar (PRECIOS (pv11,pz3,100))
D
D
T
Si D es un estado íntegro entonces D satisface
W si y sólo si D satisface w t (prov
(pv11,w,t) )
443.2 Comprobación de la integridad
Comprobación simplificada de la integridad en
bases de datos deductivas
En bases de datos deductivas las actualizaciones
generadas por una transacción no son sólo las
explícitamente requeridas por ésta (operaciones
que la componen) sino también todas las
actualizaciones que se pueden inducir por la
presencia de reglas deductivas en la base de
datos.
45COMP
COMPONENTE
D
Reglas deductivas
COMPONENTE
COMPONENTE (x, y) COMP (x,z) ÙCOMPONENTE (z,
y) COMPONENTE (x, y) COMP (x, y)
Transacción insertar (COMP(pz8,pz1))
COMP
D
inserciones inducidas
463.2 Comprobación de la integridad
Restricción de integridad
W "x "y ( COMPONENTE (x,y) Ø COMPONENTE (y,x) )
insertar ( COMPONENTE(pz8,pz1) )
Ø COMPONENTE (pz1, pz8)
Si D es un estado íntegro entonces D satisface
W si y sólo si D satisface Ø COMPONENTE (pz1,
pz8)
D viola W
473.2 Comprobación de la integridad
Enunciado general del problema
Dados, el esquema (L,RI) de una base de datos
deductiva, un estado D de ese esquema tal que D
satisface W (para toda W?RI), una transacción T
formada por dos conjuntos de sentencias de base
de datos, TTins?Tdel, (Tins?Tdel ?, Tdel ? D y
Tins?D ? ), el estado D resultante de aplicar
a D la transacción T, (D' (D?Tins) \ Tdel),
comprobar que D' satisface W (para toda W?RI).
483.2 Comprobación de la integridad
Caracterización del problema
1) Concepto de satisfacción 2) Corrección y
completitud de un método 2) Fases en la
comprobación simplificada de la integridad
493.2 Comprobación de la integridad
1) Concepto de satisfacción a) Punto de vista de
la demostración D satisface W sii Tr W.
b) Punto de vista de la consistencia D
satisface W sii Tr ? W es consistente. El
concepto de violación se define en términos del
concepto de satisfacción D viola W sii no (D
satisface W). Diremos que un estado D es íntegro
si, para toda restricción W perteneciente a RI, D
satisface W.
Tr es la teoría de 1er orden que representa la
base de datos en la semántica asumida
503.2 Comprobación de la integridad
Ejemplo 1 D p(a) ? q(x) ? r(x), q(a),
r(x) ? r(x) . Si asumimos la
semántica de la compleción Trcomp(D) ?y(p(y)
? ya ? ?x(q(x) ? r(x))), ? x(q(x) ?
xa), ? x(r(x) ? r(x)) . Desde el punto de
vista de la consistencia D satisface W1q(a),
W2r(a), W3p(a), W4r(a). Desde el punto de
vista de la demostración D satisface W1q(a).
Tr es la teoría de 1er orden que representa la
base de datos en la semántica asumida
513.2 Comprobación de la integridad
Si asumimos la semántica del punto fijo iterado
MDq(a), p(a) Tr(MD) ?x (p(x) ? xa),
?x (q(x) ? xa), ?x (?r(x) . D
satisface W1q(a) y W2p(a) en los dos conceptos
de satisfacción.
Tr es la teoría de 1er orden que representa la
base de datos en la semántica asumida
523.2 Comprobación de la integridad
- 2) Corrección y completitud de un método
- Sean
- M un método de comprobación de la integridad. D
satisfaceM (resp. violaM) W significa que el
método M decide que el estado D satisface (resp.
viola) la restricción W (W?RI). - CS el concepto de satisfacción asumido por el
método M. D satisfaceCS (resp. violaCS) W
significa que el estado D satisface (resp. viola)
la restricción W (W?RI) en el concepto de
satisfacción CS. - Un método M es correcto cuando se cumple
- si D satisfaceM W entonces D satisfaceCS
W (correcto para satisfacción) - si D violaM W entonces D violaCS W (correcto
para violación). - Un método M es completo cuando se cumple
- si D satisfaceCS W entonces D satisfaceM
W (completo para satisfacción) - si D violaCS W entonces D violaM W (completo
para violación).
533.2 Comprobación de la integridad
3) Fases en la comprobación simplificada de la
integridad Hipótesis D es íntegro. Comprobación
de la integridad FASE I Fase de
Generación Paso 1 Cálculo del conjuntos de
literales que representan la diferencia entre
los estados consecutivos D y D'. Paso
2 Identificación de las restricciones
relevantes. Paso 3 Instanciación de las
restricciones relevantes. Paso 4 Simplificación
de las instancias de las restricciones
relevantes. FASE II Fase de Evaluación Paso 5
Comprobación en D' de las instancias
simplificadas de las restricciones relevantes.
543.2 Comprobación de la integridad
3) Fases en la comprobación simplificada de la
integridad Ejemplo 2
D p(x) ? q(x,y) ? t(y), t(y) ?
s(y), q(a,b), q(b,a), s(c)
D p(x) ? q(x,y) ? t(y), t(y) ?
s(y), t(y) ? q(y,z) ? t(z) q(a,b), q(b,a),
s(c), s(b)
T ins(s(b), ins(t(y) ? q(y,z) ? t(z))
W1 ?x ?y ( q(x,y) ? q(y,x) ) W2 ?x ( s(x) ?
p(x) )
55Fase de Generación
Paso 1 Cálculo del conjuntos de literales que
representan la diferencia entre los estados
consecutivos D y D'.
D p(x) ? q(x,y) ? t(y), t(y) ?
s(y), t(y) ? q(y,z) ? t(z) q(a,b), q(b,a),
s(c), s(b)
D p(x) ? q(x,y) ? t(y), t(y) ?
s(y), q(a,b), q(b,a), s(c)
T
T ins(s(b), ins(t(y) ? q(y,z) ? t(z))
Actualizaciones inducidas por T Inserciones
A A?BD, comp(D) A y comp(D) A s(b),
t(a), t(b) Borrados A A?BD, comp(D) A y
comp(D) A p(a), p(b)
Se asume la semántica de la compleción y el punto
de vista de la demostración.
56Fase de Generación
Paso 2 Identificación de restricciones relevantes
D p(x) ? q(x,y) ? t(y), t(y) ?
s(y), t(y) ? q(y,z) ? t(z) q(a,b), q(b,a),
s(c), s(b)
D p(x) ? q(x,y) ? t(y), t(y) ?
s(y), q(a,b), q(b,a), s(c)
T
T ins(s(b), ins(t(y) ? q(y,z) ? t(z))
W1 ?x ?y ( q(x,y) ? q(y,x) ) no es relevante
para T
Inserciones s(b), t(a), t(b) Borrados
p(a), p(b)
Paso 2
W2 ?x ( s(x) ? p(x) ) es relevante para T
57Fase de Generación
Paso 3 Instanciación de las restricciones
relevantes
Paso 4 Simplificación de las instancias de las
restricciones relevantes
D p(x) ? q(x,y) ? t(y), t(y) ?
s(y), t(y) ? q(y,z) ? t(z) q(a,b), q(b,a),
s(c), s(b)
D p(x) ? q(x,y) ? t(y), t(y) ?
s(y), q(a,b), q(b,a), s(c)
T
Inserciones s(b), t(a), t(b) Borrados
p(a), p(b)
W2 ?1 s(b) ? p(b)
W2 ?1 p(b)
W2 ?x ( s(x) ? p(x) )
W2 ?2 s(a) ? p(a)
W2 ?2 ?s(a)
W2 ?3 s(b) ? p(b)
W2 ?3 ?s(b)
Paso 3
Paso 4
583.2 Comprobación de la integridad
3) Fases en la comprobación simplificada de la
integridad Hipótesis D es íntegro. Comprobación
de la integridad FASE I Fase de
Generación Paso 1 Cálculo del conjuntos de
literales que representan la diferencia entre
los estados consecutivos D y D'. Paso
2 Identificación de las restricciones
relevantes. Paso 3 Instanciación de las
restricciones relevantes. Paso 4 Simplificación
de las instancias de las restricciones
relevantes. FASE II Fase de Evaluación Paso 5
Comprobación en D' de las instancias
simplificadas de las restricciones relevantes.
Paso 1 El cálculo de las actualizaciones
inducidas por la transacción puede ser muy
costoso en base de datos voluminosas. Sólo
algunas de estas actualizaciones serán relevantes
para la integridad.
593.2 Comprobación de la integridad
3) Fases en la comprobación simplificada de la
integridad Hipótesis D es íntegro. Comprobación
de la integridad FASE I Fase de Generación
Potencial Paso 1 Cálculo del conjuntos de
literales que capturen la diferencia entre los
estados consecutivos D y D sin acceder a la
BDE. Paso 2 Identificación de las restricciones
relevantes. Paso 3 Instanciación de las
restricciones relevantes. Paso 4 Simplificación
de las instancias de las restricciones
relevantes. FASE II Fase de Evaluación Paso 5
Comprobación en D' de las instancias
simplificadas de las restricciones relevantes.
Solución
60Fase de Generación Potencial
Paso 1 Cálculo del conjuntos de literales que
capturen la diferencia entre los estados
consecutivos D y D'.
D p(x) ? q(x,y) ? t(y), t(y) ?
s(y), t(y) ? q(y,z) ? t(z) q(a,b), q(b,a),
s(c), s(b)
D p(x) ? q(x,y) ? t(y), t(y) ?
s(y), q(a,b), q(b,a), s(c)
T
T ins(s(b), ins(t(y) ? q(y,z) ? t(z))
Actualizaciones potenciales inducidas por
T Inserciones Borrados s(b), t(y)
t(b) p(x)
Actualizaciones reales inducidas por
T Inserciones s(b), t(a), t(b) Borrados
p(a), p(b)
instancias
61Fase de Generación Potencial
Paso 3 Instanciación de las restricciones
relevantes
Paso 4 Simplificación de las instancias de las
restricciones relevantes
D p(x) ? q(x,y) ? t(y), t(y) ?
s(y), t(y) ? q(y,z) ? t(z) q(a,b), q(b,a),
s(c), s(b)
D p(x) ? q(x,y) ? t(y), t(y) ?
s(y), q(a,b), q(b,a), s(c)
T
Inserciones s(b), t(y), t(b) Borrados
p(x)
W2 ?1 s(b) ? p(b)
W2 ?x ( s(x) ? p(x) )
W2 ?2 ?x s(x) ? p(x)
W2 ?x s(x) ? p(x)
W2 ?3 ?x s(x) ? p(x)
Paso 3
Paso 4
62Fase de Generación Potencial
Paso 3 Instanciación de las restricciones
relevantes
Paso 4 Simplificación de las instancias de las
restricciones relevantes
D p(x) ? q(x,y) ? t(y), t(y) ?
s(y), t(y) ? q(y,z) ? t(z) q(a,b),
q(b,a), , s(c), s(b)
D p(x) ? q(x,y) ? t(y), t(y) ?
s(y), q(a,b), q(b,a), , s(c)
T
Inserciones s(b), t(y), t(b) Borrados
p(x)
Si la extensión de q es grande los borrados sobre
p inducidos por T pueden ser muchos.
W3 ?x ( p(x) ? r(x) ) no es relevante para T.
633.2 Comprobación de la integridad
- Estudio de un método de simplificación
- Semántica asumida referencia para interpretar el
concepto de satisfacción. - Concepto de satisfacción utilizado.
- 3. Requisitos sintácticos forma sintáctica de
las reglas y de las restricciones de integridad. - 4. Corrección y completitud del método.
- Estrategia del método
- Fase de Generación potencial (sin acceso a la
BDE), real (con acceso a la BDE). - Intercalación de las fases de Generación y
Evaluación. - Etapa de compilación independiente de la
transacción.
64La Lógica en el desarrollo de las Bases de
Datos 1. Lógica y Bases de Datos. 2. Bases de
datos deductivas. 3. Actualización de bases de
datos deductivas. 3.1 Actualización 3.2
Comprobación de la integridad 3.3 Restauración
de la consistencia
653.2 Restauración de la consistencia
D
D
T Tins?Tdel
U
Actualización
Requisito de actualización
D satisface W Tr (D) U
D' (D?Tins) \ Tdel) Tr (D) U
Comprobación RI
D
T Tins? Tdel
NO
SI
Restauración de la consistencia
D
D (D?Tins) \ Tdel) Tr (D) U D
satisface W (?W ?RI)
663.2 Restauración de la consistencia
Enunciado general del problema
Dados, el esquema (L,RI) de una base de datos
deductiva, un estado D de ese esquema tal que D
satisface W (para toda W?RI), una transacción
TTins?Tdel, (Tins?Tdel ?, Tdel ? D y Tins?D
? ), el estado D resultante de aplicar a D la
transacción T, (D' (D?Tins) \ Tdel), y una
restricción W?RI tal que D' viola W, encontrar
una transacción TTins?Tdel (Tins?Tdel ?,
Tdel?Tins ?, Tins?Tdel ?, ), tal que el
estado D resultante de aplicar T a D, D
(D?Tins) \ Tdel), satisface W.