Академический Документы
Профессиональный Документы
Культура Документы
y
Bases de Datos
- actualización de vistas
- optimización de consultas
• Tupla
Estructuras
• Relación
de datos
• Álgebra Relacional
Operadores • Cálculo Relacional de Tuplas/Dominios
(lenguajes)
• SQL
• Definición de relaciones
Restricciones
(estáticas) • Restricciones generales
• Tupla
Estructuras de datos
• Relación
tupla registro
• Álgebra Relacional
Lenguajes • Cálculo Relacional de Dominios
• Cálculo Relacional de Tuplas SQL (estándar)
selección
Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 10
1. Lógica y Bases de Datos: introducción
• Álgebra Relacional
Lenguajes • Cálculo Relacional de Dominios
• Cálculo Relacional de Tuplas SQL (estándar)
SQL
INSERT (insertar tupals)
actualización
DELETE (borrar tuplas)
consulta SELECT
Consulta: “Nombre de los ríos que sólo pasan por una provincia”
SELECT nombre FROM Río R
WHERE EXISTS (SELECT * FROM Pasa_por P1 WHERE P1.rcod = R.rcod
AND
NOT EXISTS (SELECT * FROM Pasa_por P2 WHERE P2.rcod = R.rcod
AND
P1.pcod <> P2.pcod ) ) )
Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 12
1. Lógica y Bases de Datos: introducción
Ext(Matriculado) Ext(Enseña)
a CS100 A CS100
a CS200
A CS200
b CS100
c P100 B P100
d CS100 C P200
d P200
Fórmulas bien
RI
Variables: { X, Y, Z, …}
Cuantificadores: { ,$}
Conectivas lógicas: { ,,}
Símbolos de puntuación: { (, ),’, ... }
Restricciones de Integridad:
Fórmula bien
RI
|=I F sii T |= F
T = comp(D)
Teoría de primer
orden en L
{axioma de cierre de dominio}
A D
Hipótesis del mundo cerrado
D AHMC
Base de datos
Base de datos Conocimiento explícito
relacional
relacional
+
Reglas Reglas
deductivas Conocimiento implícito
deductivas
Base de datos
deductiva
Luis María
Luis Pedro
Pedro Jose
Sistema de Gestión
Base de datos
de Bases de Datos
relacional Relacionales
+ +
Reglas
Usuario
deductivas Sistema de Inferencia
Base de datos
deductiva Sistema de gestión
de bases de
datos deductivas
Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 38
2. Bases de datos deductivas: definición y formalización
Relación derivada
Base de datos deductiva
Padre Antecesor
Padre Hijo
Antecesor Descendiente
Juan Luis
Juan Luis
Luis María
Juan María
Luis Pedro
Juan Pedro
Pedro José
Juan José
Luis María
Reglas Deductivas:
Luis Pedro
Antecesor (x, y) Padre (x, y) Luis José
Antecesor (x, y) $z (Padre (x, z) Antecesor (z, y))
Pedro José
ESQUEMA ESQUEMA
Relaciones derivadas:
Restricciones de Integridad
Si (Ai1: Di1 , Ai2: Di2 , ..., Aini: Dini)
Wi: Wi es una expresión lógica
(1 i s) (s relaciones derivadas)
(1 ≤ i ≤ k) (k restricciones de integridad)
Restricciones de Integridad
Wi: Wi es una expresión lógica
(1 ≤ i ≤ k) (k restricciones de integridad)
Relaciones básicas:
PIEZA (codpieza: D1, desc: D2, peso: D3)
CP = {codpieza}
CP = {codprov}
Relaciones derivadas:
PRECIOS3 (codprov: D4, codpieza: D1, precio: D7)
CP = {codprov, codpieza}
CAj = {codprov} PROV
CAj = {codpieza} PIEZA
Esquema
PRECIOS_EXT (codprov: D4, nombre: D5, codpieza: D1, desc: D2, precio: D7)
CP = {codprov, codpieza}
CAj = {codprov} PROV
CAj = {codpieza} PIEZA
Restricciones de integridad:
x y ( COMPONENTE (x,y) COMPONENTE (y,x) )
PRECIOS COMP
codprov codpieza precio
pieza1 pieza2
pv1 pz3 10
pz1 pz3
pv1 pz8 20
pz3 pz8
pv3 pz8 30
pv5 pz1 50
Reglas deductivas:
BASE DE DATOS
PRECIOS3 PRECIOS_EXT COMPONENTE
NO SI SI NO
NO SI
error c
Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 50
2. Bases de datos deductivas: definición y formalización
Limitaciones del modelo relacional (SQL92)
en la actualización de vistas:
SI NO
opción 1 opción 2
PROBLEMAS:
Formalización
notación
ESQUEMA BASE DE DATOS
algebraic
a
Relaciones básicas: Ri (Di1 x Di2 x ... x Din )
i
...
Hechos
Sistema de gestión
Sistema de programación
de bases de datos
lógica
deductivas
Esquema de BDD:
Sij (x1, x2,..., xni ) Wij { A L1 L2 ... Ln: A es un átomo y Li es un literal}
(1 i s)
(1 j Ki)
Fórmulas bien
RI
Variables: { X, Y, Z, …}
Cuantificadores: { ,$}
Conectivas lógicas: { ,,}
Símbolos de puntuación: { (, ),’, ... }
Restricciones de Integridad:
Fórmulas bien
RI
BDD:
{ pieza (pz1, tornillo, 10), ...,
proveedor (pv1, Juan, 1), ..., Fórmulas bien
Hechos precios (pv1, pz3, 100), ..., formadas de L
comp (pz1, pz3), ... }
precios3 (x, y,z) precios (x, y, z) prov (x, w, 3)
Reglas componente (x, y) comp (x,z) componente (z, y)
deductivas componente (x, y) comp (x, y)
2 3
z’/pz8 hecho
w/pz8
hecho
componente ( pz8,w)
2 3
w = pz3
w = pz8
2 componente (x, y) comp (x, z) componente (z, y)
3 componente (x, y) comp (x, y)
componente (pz3,w)
componente (x,y) comp (x,y) regla 3
respuesta
resolución x/pz3 y/w
comp (pz3,w)
resolución comp (pz3,pz8) hecho
w = pz8
éxito w/pz8
precios (pv1,pz1,30)
negación
respuesta como fallo
x/pv1 fallo
éxito
x y z ( precios (x, y, z)
(x=pv1 y=pz3 z=10) (x= pv1 y= pz8 z= 20)
(x= pv3 y= pz8 z= 30) (x= pv5 y= pz1 z= 50) )
precios3 (x, y,z) precios (x, y, z) prov (x, w, 3)
x1, ..., xn ( p(x1, ..., xn) (E1 ... Ek) ), Axiomas de compleción de p
x1, ..., xn ¬ p(x1, ..., xn): no existen sentencias de p en D
BDD PL
relaciones de D:
- básicas predicados de P
- derivadas
pz1 tornillo 10
pz3 tuerca 11
pz8 arandela 8
PRECIOS_EXT
PRECIOS
codprov nombre codpieza desc precio
codprov codpieza precio
pv1 Juan... pz3 tuerca 10
pv1 pz3 10
pv1 Juan... pz8 arandela 20
pv1 pz8 20 pv3 Luis... pz8 arandela 30
pv3 pz8 30 pv5 Carlos.. pz1 tornillo 50
pv5 pz1 50 .
PROV
T1={borrar (PROV (pv1,Juan,1))}
codprov nombre zona
T2={borrar (PIEZA (pz3,tuerca,11),
pv1 Juan..... 1 borrar (PIEZA (pz8,arandela,8))}
pv5 Carlos .... 3 T3={borrar (PRECIOS (pv1,pz3,10),
pv3 Luis ...... 3
borrar (PRECIOS (pv1,pz8,20))}
prov(pv1,Juan,1) T1 x1 / Juan
pieza(pz3,tuerca,11) pieza(pz8,arandela,8)
precios(pv1,pz3.10) precios(pv1,pz8,20)
T3 x4/ 10 T3 x4/ 20
r(a) NF
3. s(x) r(x) 1 2
resolución
4. s(x) t(x) ¬m(x) ¬q(a) f(a) s(a) n(a)
r(a) resolución
T1= {insertar (f(a)), borrar (q(a))}
T2 = {insertar (t(a)), borrar (m(a)), insertar (n(a))} n(a)
T3 = {insertar (n(a))}
Hipótesis:
- reglas deductivas sin recursión (BDD jerárquicas)
- procedimiento de evaluación: SLDNF
- regla de selección de literales en un paso de derivación:
seleccionar primero los literales derivados positivos y sólo
seleccionar un literal negativo cuando es base.
Características:
Inicio
t:= un árbol SLDNF para D { A}
t := { [T1, ..., Tn ]: (debe existir un Ti por cada rama de éxito del árbol t)
Ti = borrar(C) donde C es un hecho de D utilizado como cláusula de
entrada en una rama de éxito de t
o
Ti = insertar(B) tal que B es básico y ¬B tiene éxito en una rama no
fallada de t
o
Ti tal que ¬B tiene éxito en una rama no fallada de t, B es derivado y
es la salida de la llamada al procedimiento de inserción con
argumentos de entrada D y B }
Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 83
Fin
Procedimiento de inserción: Inserción (D, A, t)
Entrada: una base de datos D y un requisito de inserción insertar(A) donde A es una tupla
de una relación derivada
Salida: un conjunto de transacciones t
Inicio
t := { [T1, ..., Tn ]:r:= una rama (derivación*) SLDNF fallada para D { A}
L1 ... Ln es el objetivo que falla en r, Li (i=1.. n) es base**
r(a), m(a)
T1={borrar(m(a)), insertar(n(a))}
q(a)
3 resolución T1 = {borrar (r(a)), insertar (f(a))}
r(a) ¬t(a) T2 = {insertar (t(a)), insertar (f(a))}
r(a) resolución
¬t(a)
borrar(q(a)) 1= {insertar(t(a))}
NF
2= {borrar(r(a))}
Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 85
3. Actualización de vistas
3.2 Estudio avanzado del problema.
p(1)
1) {w(1), v(1)} BDE
2) {q(1), s(1)} BDE y {r(1)} BDE
w(1) v(1) q(1) t(1) 3) {p(1)} BDE
4) {q(1), t(1)} BDE
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.
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.
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.
Actualización: U = p(1,1).
s(1,2) s(1,2)
T1 no es una solución
correcta porque induce 2 2 resolución
resolución
la inserción de s(1,2)
que se había asumido q(1,2) q(1,2)
falsa en la construcción
de la solución. q(1,2) resolución
T1 no es una solución
correcta porque el estado
T1(BDD) viola la
restricción de integridad W
Métodos:
1. Método de Kakas y Mancarella
2. Método de Guessoum y Lloyd
[KM90] Kakas, A. C.; Mancarella, P. Database updates through abduction. Proc. 16th International
Conference on Very Large Databases, 1990, págs. 650-661.
[EK89] Eshghi, K.; Kowalski, R.A. Abduction compared with negation by failure. Proc. 6th International
Conference on Logic Programming, MIT Press, 1989.
Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 102
Marco Abductivo:
Debido a la semántica operacional asumida, la base de datos se traduce a un marco
abductivo.
Dado un estado de base de datos D = BDE BDI, el marco abductivo asociado con D
es < BDI*, Ab, RI* > donde:
BDI* es el conjunto de reglas deductivas obtenido a partir de BDI, reemplazando
cada literal negativo q( ) por un nuevo literal positivo q*( ).
Ab está formado por el conjunto de símbolos de predicados básicos junto con un
nuevo predicado p* por cada predicado básico o derivado p. Ab es el conjunto de
predicados abducibles. Un átomo es abducible si su predicado lo es.
RI* es un conjunto de restricciones de integridad tal que para todo conjunto de
hipótesis abducidas sobre predicados de Ab representadas por átomo abducibles,
BDI* debe satisfacer:
RI* = { p() p*() } { p() p*()} : p es un predicado de la base de datos.
(Estas restricciones de integridad definen la equivalencia entre p*() y p()).
Requisitos de actualización.
insertar(A) o borrar(A) (A es un átomo derivado base)
Transacción generada.
conjunto de operaciones de inserción y borrado de
hechos.
Dado un átomo L = p() (resp. L = p*()) con la expresión L* se representará al átomo p*() (resp. p()).
Una regla de selección R es segura si es una función parcial tal que dado un objetivo L1 … Lk
(k 1) devuelve un átomo Lj (1 j k) tal que Lj no es abducible o Lj es abducible y base.
= p(1)
A
= t(1)
A
= {t(1)}
A
= q(1)r*(1)
Derivación de consistencia
A3 r(1)} ’= {q(1),r*(1)}
= {q(1),r*(1),s*(1)} C4
’= {q(1),r*(1),s*(1)}
C4
C4
A
= t(1)
T1 = { insertar(t(1)) }
A
= {t(1)}
2ª Derivación abductiva
= p(1)
A
= q(1)r*(1)
Derivación de consistencia
r(1)} ’= {q(1),r*(1)}
A3
T2= {insertar(q(1)), borrar(s(1))}
= {q(1)} r*(1) C
= {q(1),r*(1),s*(1)} C4
’= {q(1),r*(1),s*(1)}
C4
T3= {borrar(q(1)), borrar(t(1))}
t(1)} ’= {p*(1), q*(1)}
C4
2ª Derivación abductiva
= p*(1)
Derivación de consistencia
A4 p(1)} ’= {p*(1)}
4= {p*(1),s(1),t*(1)} C
C5
Derivación abductiva
r(1) ’’= {p*(1)}
T4= {insertar(s(1)), borrar(t(1))}
t(1)} ’= {p*(1),s(1)}
A1
C4
s(1) ’’= {p*(1)}
’= {p*(1),s(1),t*(1)}
A3
’’= {p*(1), s(1)}
Requisito de actualización.
insertar(A) (resp. borrar(A)) (A es un átomo).
Transacción generada.
inserción y borrado de hechos y reglas deductivas
q(1)r(1) t(1)
Fallo Fallo
p(1) T1 = {insertar(p(1))}
t(1) T2 = {insertar(t(1))}
q(1) r(1) T3 = {insertar(q(1)), borrar(r(x) s(x))}
q(1) r(1) T4 = {insertar(q(1)), borrar(s(1))}
r(x)s(x)
Éxito
q(1)r(1) t(1)
q(1) t(1)
r(1)
Éxito
Éxito
Borrado_Básico
Fallo
Corrección y completitud.
Corrección del procedimiento de inserción: Sea D una base de datos
normal localmente consistente en llamada, A un átomo y RI un conjunto
de restricciones de integridad tal que comp(D) |= A y tal que D satisface
RI. Sea T una transacción del conjunto t que es la salida de la llamada al
procedimiento Inserción con parámetros de entrada (D, insertar(A), RI)
entonces se cumple comp(T(D)) |= A.
Resumen.
Las soluciones obtenidas ante un requisito de actualización dependen del árbol
SLDNF obtenido en el primer paso del algoritmo Inserción_Básica o del algoritmo
Borrado_Básico siendo necesario para obtener todas las soluciones la ejecución del
mismo para cada uno de los posibles árboles
El problema de la falta de valores no se resuelve con la elección de valores para
las variables existencialmente cuantificadas sino al permitir la inserción de reglas
deductivas sin cuerpo (que no cumplen, por lo tanto, la propiedad de ser
independientes del dominio).
La corrección de una transacción T obtenida para el requisito de actualización
insertar(A) (resp. borrar(A)) se comprueba en la última instrucción de los algoritmos
Inserción (resp. Borrado) cuando verifica que comp(T(D)) |= A (resp. comp(T(D)) |=
A), también en este momento se comprueba si se satisfacen las restricciones de
integridad. Esta verificación es muy costosa ya que en general se realizan tantos
accesos a la base de datos extensional como accesos se hayan realizado en la
generación de la solución.
D0 T1 D1 Ti Di Tn Dn Evolución de una BD
D T D’
Si D es un estado íntegro
entonces
D’ satisface W si y sólo si D’ satisface $w $t (prov (pv11,w,t) )
Teorema de
D’ satisface W si y sólo si D’ satisface W’’
simplificación
insertar (COMPONENTE(pz8,pz1))
En el trabajo original de Nicolas, [Nic79], [Nic82], una base de datos relacional se formaliza
como una interpretación I de unlenguaje de 1er orden; dicha interpretación se construye a
partir de la extensión de la base de datos [NG78]. En esta formalización el concepto de
satisfacción utilizado es el siguiente: D satisface W sii |=I W.
Método de Nicolas :
Ejemplo:
D={ p(1,1), p(2,2)
q(1,1,1), q(1,2,2), q(2,1,1), q(1,3,3) }
RI = { W1 = x y (p(x,y) $z q(z,x,y))
W2 = $z x y (p(x,y) q(z,x,y)) }
Método de Nicolas:
Restricciones de integridad relevantes para T:
Si W es una restricción de integridad de rango restringido [Nic82]
(independiente del dominio), podemos afirmar que:
"W es relevante respecto a la inserción (resp. borrado) de la tupla
<e1,e2,...,en> en R si y sólo si R(e1,e2,...,en) es unificable con un
átomo que ocurre negativamente (resp. positivamente) en W".
Un átomo A ocurre negativamente (resp. positivamente) en una
fórmula W sii ¬A (resp. A) aparece en la forma prenexa normal de
W.
La operación borrar(q(2,1,1)) genera una instancia de W1: = {z/2, x/1, y/1} W1 = p(1,1) q(2,1,1).
La operación borrar(q(2,1,1)) genera una instancia de W2: = {z/2, x/1, y/1} W2 = p(1,1) q(2,1,1).
Para W1: insertar(p(3,3)): 1= {x/3, y/3}, W11= p(3,3) $z q(z,3,3)
Método de Nicolas:
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.
Comprobación de la integridad:
FASE I: Fase de Generación
Paso1: Cálculo de conjuntos de literales que “representen” 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.
Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 162
4. Comprobación de restricciones de integridad
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 (WRI).
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 (WRI) 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).
Métodos:
Método de Lloyd, Sonnenberg y Topor
Concepto de satisfacción
Este método utiliza el punto de vista de la demostración con
Tr = comp(D) {ACD}:
D satisface W sii Tr |= W.
{A : A ← W D, B ocurre negativamente en W, C posD,D‘n y = mgu(B,C)}
(borrados potenciales inducidos)
posD,D‘ = n0 posD,D‘n
- RI = {W: W=x1 x2... xn W'} es el conjunto de restricciones de integridad, fórmulas cerradas de
L en forma prenexa normal.
• D un estado de la base de datos: D = {A← B: A es un átomo, B es una fbf }.
• La semántica asumida es la de la compleción más el axioma de cierre de dominio. La teoría que
representa el estado D es Tr = comp(D) {ACD}. Es importante destacar que comp(D) y ACD son
las versiones con tipos de la compleción de D y del axioma de cierre de dominio [Llo87].
• T una transacción formada por dos conjuntos de cláusulas:
Tdel: borrados de T
Tins: inserciones de T.
La transacción no es contradictoria (no inserta y borra la misma cláusula) y además no modifica el
lenguaje L.
• = { : es la restricción a x1,x2,...,xn del unificador más general entre un átomo que ocurre
negativamente en W y un átomo de posD'',D‘ o de un átomo que ocurre positivamente en W y un
átomo de negD'',D‘ }.
• = {: es la restricción a x1,x2,...,xn del unificador más general entre un átomo que ocurre
positivamente en W y un átomo de posD'',D o de un átomo que ocurre negativamente en W y un
átomo de negD'',D }.
Se cumple:
a) D' satisface W sii D' satisface (W‘) para todo .
b) Si D' {← (W‘)} tiene una refutación SLDNF para todo , entonces D' satisface W.
c) Si D' {← (W‘)} tiene un árbol SLDNF fallado finitamente para algún , entonces D'
viola W.
Si , WDepartamento
no admitedesimplificación.
Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 170
Método de Lloyd, Sonnenberg y Topor
Resumen.
Semántica asumida: semántica de la compleción.
Concepto de satisfacción: punto de vista de la demostración.
Tipo de base de datos: las reglas deductivas son cláusulas generales de la
forma A W.
Restricciones sintácticas: la base de datos debe ser estratificada. Las
restricciones de integridad son fórmulas cerradas en forma prenexa normal.
Estrategia: Fase de Generación potencial (sin acceso a la BDE).
Concepto de satisfacción
Este método utiliza el punto de vista de la consistencia,
con Tr=comp(D) (semántica de la compleción):
D satisface W sii Tr {W} es consistente
Actualizaciones de la transacción
Sea T= Tins Tdel una transacción formada por dos conjuntos de cláusulas. El conjunto
ACT de actualizaciones de la transacción se define:
ACT= { A: AL1 L2 ... Ln Tins}
{¬A: A Tdel y existe un árbol SLDNF fallado finitamente para D' {A}}
{ ¬A: A L1 L2 ... Ln Tdel, es una respuesta computada para
D { L1 L2 ... Ln} y existe un árbol SLDNF fallado finitamente para
D' { A} }.
Teorema de simplificación
Sea:
• (L,RI) el esquema de una base de datos deductiva, donde:
- L es un lenguaje de primer orden y
- RI es el conjunto de restricciones de integridad, fórmulas cerradas de L.
• {incw: incw¬W, WRI} el conjunto de restricciones de integridad en forma negada
(las cláusulas resultantes de aplicar el algoritmo Lloyd y Topor [LT84] a {incw ¬W:
WRI} deben ser de rango restringido y formar parte de cualquier estado de la base de
datos).
• D un estado de la base de datos:
D= {AL1 L2 ... Ln: A es un átomo, Li es un literal y n 0}.
• La semántica asumida es la de la compleción.
Teorema de simplificación
Sea:
• T una transacción formada por dos conjuntos de cláusulas, el conjunto Tins de
inserciones y un conjunto Tdel de borrados.
• D' el estado resultante de aplicar a D la transacción T:
D‘ = (DTins)\Tdel.
• D y D' son estratificados y de rango restringido.
• W una restricción de integridad tal que D satisface W.
Se cumple:
"Si existe una refutación SLDNF* para D' RI {C0} para alguna actualización C0 de
la transacción entonces D' viola RI".
Resumen.
Semántica asumida: semántica de la compleción.
Concepto de satisfacción: punto de vista de la consistencia.
Tipo de base de datos: las reglas deductivas son cláusulas normales de la
forma AL1 L2 ... Ln.
Restricciones sintácticas: la base de datos debe ser estratificada y las
reglas de rango restringido. Las restricciones de integridad son fórmulas
cerradas en forma negada (incw: incw¬W, WRI) .
Estrategia: Intercalación de la Fase de Generación y de la Fase de
Evaluación.
El procedimiento SLDNF* no contempla los borrados inducidos.
Mecanismo de vistas
del modelo relacional definición relaciones derivadas
(SQL92)
evaluación
COMPONENTE COMP
UNION
(COMP ((pieza2,X)) JOIN COMP ((pieza1,X) ) [pieza1, pieza2 ]
UNION
(COMP((pieza2,X)) JOIN COMP((pieza1,X), (pieza2, Y) ) JOIN COMP((pieza1,Y) ) [pieza1, pieza2 ]
UNION
(COMP((pieza2,X)) JOIN COMP((pieza1,X), (pieza2, Y) ) .................................................
UNION
...
Esquema
Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 183
5. SGBD deductivos
PIEZA PROV
BDD codpieza
pz1
desc
tornillo
peso
10
codprov
pv1
nombre
Juan.....
zona
PRECIOS COMP
codprov codpieza precio pieza1 pieza2
pv1 pz3 10 pz1 pz3
pv1 pz8 20 pz3 pz8
pv3 pz8 30
pv5 pz1 50
Reglas deductivas:
Estrategias
Estrategia bottom-up
F Reglas F1*
¿De qué piezas se compone la pieza pz1?
PIEZA
PRECIOS_EXT
información derivada
que no es relevante
4
para la consulta
Generación de
PROV
PRECIOS3
1
PRECIOS
COMP COMPONENTE
pieza1 pieza2 pieza1 pieza2
pz1 pz3 3 pz1 pz3
pz3 pz8 pz3 pz8
PIEZA
PRECIOS_EXT
4
PROV
PRECIOS3
1
PRECIOS
Generación de la misma
PRECIOS_EXT PRECIOS3
información derivada en
cada iteración.
COMP COMPONENTE
pieza1pieza2
pieza2 pieza1 pieza2
pieza1 3
pz1
pz1 pz3 pz3 pz1 pz3
pz3
pz3 pz8 pz8 2
pz3 pz8
pz1 pz8
COMPONENTE
pieza1 pieza2
Generación de la misma
pz1 pz3 información derivada en
pz3 pz8 cada iteración.
Estrategia bottom-up
Problemas:
generación de información derivada que no es relevante para la consulta
Soluciones:
restringir las regla utilizadas durante la generación de la información derivada a
aquellas que son relevantes para la consulta original
eliminar en cada iteración las filas que ya han sido generadas en iteraciones
anteriores
F Reglas F1*
¿De qué piezas se compone la pieza pz1?
PIEZA
PRECIOS
PROV
COMP COMPONENTE
pieza1 pieza2 pieza1 pieza2
COMP
pieza1pieza2
pieza1
pieza2 COMPONENTE
pz1
pz1 pz3 pz3 pieza1 pieza2
pz3
pz3 pz8 pz8 2
pz1 pz8
COMPONENTE
pieza1 pieza2
pz1 pz3
pz3 pz8
* Una regla de D será miembro de Dreglas si y sólo si, en el grafo de dependencias de D, aparece en un
camino entre un predicado de la consulta y un predicado básico.
Paso 3 Mant M
hasta Mdif =
Paso 4: generar cualquier sustitución de las variables de Q tal que cualquier
hecho en Q sea cierto en M
PRECIOS COMP
codprov codpieza precio pieza1 pieza2
pv1 pz3 10 pz1 pz3
pv1 pz8 20 pz3 pz8
pv3 pz8 30
pv5 pz1 50
Reglas deductivas:
Paso 1: {1,2,3,4}
Paso 3:
Repetir
PRECIOS3 PRECIOS3ant UNION (PROV DONDE zona=3 JOIN PRECIOS)[codprov, codpieza, precio]
PRECIOS_EXT PRECIOS_EXTant UNION (PROV[codprov, nombre] JOIN PRECIOS JOIN PIEZA[codpieza, desc])
COMPONENTE COMPONENTEant UNION
(COMP UNION (COMP ((pieza2,X)) JOIN COMPONENTE ((pieza1,X))[pieza1,pieza2])
Nivel 3 p + 1
r
Paso 1: Dreglas= {1,2}
Paso2:
En el Paso 3, en cada
Nivel 1 M = {q(1), r(1)} nivel se aplican sólo las
reglas que definen los
Paso3: predicados del nivel.
Nivel 2 Iteración. 1ª: M = {q(1), r(1), s(1)}
Nivel 3 Iteración 1ª: M = {q(1), r(1), s(1)}
Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia 201
5. SGBD deductivos
Estratificación de la BDI*:
Asignar cada predicado a un nivel de forma que para toda regla de la
BDI, A L1 L2 ... Ln, se cumple que “el nivel de todo predicado
positivo en el cuerpo de la regla es menor o igual que el nivel del
predicado de la cabeza, y el nivel de todo predicado negativo en el
cuerpo de la regla es menor que el nivel del predicado de la cabeza”
Solución
Naive y Seminaive: algoritmos que no tienen en
Soluciones:
uso de técnicas de detección de ramas infinitas
2’ 3’
2’ w / pz3
3’ hecho
hecho
rama infinita
w = pz3
w = pz8
Relación básica:
comp (pieza1 char(3), pieza2 char(3))
Relación derivada:
componente (pieza1 char(3), pieza2 char(3))
Reglas deductivas:
componente (x,y) comp (x,y)
componente(x,y) com(x,z) , componente(z,y)