Professional Documents
Culture Documents
La idea bsica que subyace al uso de la lgica para el estudio de los sistemas de bases de datos es una idea comn a todos los campos de la computacin lgica: la semntica por teora de modelos de la lgica proporciona una base para la representacin del conocimiento, y la semntica por teora de la demostracin proporciona una base para la computacin [J.W. Lloyd, en Computational Logic, 1990].
1. Lgica y Bases de Datos. La lgica de primer orden ha sido utilizada en el desarrollo del modelo relacional de datos desde su aparicin en 1970. Problemas:
- formalizacin - definicin de lenguajes de consulta - estudio del concepto de independencia del dominio - actualizacin de vistas - comprobacin y restauracin de la integridad. - optimizacin de consultas - diseo de bases de datos
Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia 4
Conocimiento explcito
Reglas deductivas
Reglas deductivas
Conocimiento implcito
Las Bases de Datos Deductivas extienden la capacidad expresiva de las bases de datos relacionales incluyendo un conjunto de reglas que permiten definir conocimiento implcito
Informacin derivada
Reglas
Hechos
+
Reglas
+
Sistema de Inferencia
Usuario
BASE DE DATOS
Ri
Ai1
Ai2
......
Aini
(1
m) (m relaciones bsicas)
(1
m)
(m relaciones bsicas)
(1
s) (s relaciones derivadas)
(1 (1
i j
s) Ki)
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
Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia 8
PROV
co p v d ro pv1 pv5 pv3 n m re o b Juan..... C arlos .... Luis ...... zo a n 1 3 3
PRECIOS
co p v d ro pv1 pv1 pv3 pv5 c d ieza o p p z3 p z8 p z8 p z1 p recio 10 20 30 50
COMP
p ieza1 p z1 p z3 p ieza2 p z3 p z8
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) )
Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia 9
PROV
PIEZA
PRECIOS
COMP
PRECIOS3
PRECIOS_EXT
COMPONENTE
El usuario desea manipular (consultar y actualizar) las relaciones de la BD independientemente de que sean relaciones bsicas o derivadas.
BASE DE DATOS
10
Mecanismo de vistas del modelo relacional Relacin derivada Base de datos deductiva
11
Actualizacin
SGBD relacionales
12
PROBLEMAS:
Formalizacin
LGICA
13
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) )
Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia 14
2. Bases de datos deductivas MARCO FORMAL: Lgica de 1er orden (Programacin Lgica)
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 lgico) {A: A es un tomo base} (hechos) { A L1 L2 ... Ln : A es un tomo y Li es un literal} (reglas)
15
:
Semntica declarativa: conocimiento en la BDD Semntica operacional: procedimiento para obtener el
conocimiento
16
17
componente (pz1,w)
Procedimiento SLDNF
comp (pz1,w)
hecho
z/pz3
w/pz3
componente (pz3,w)
2 3
comp (pz3,w)
hecho
w = pz3 w = pz8
z/pz8
w/pz8
componente ( pz8,w)
2 3
comp (pz8,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)
18
19
Dada una base de datos D (D=BDI BDE) y un requisito de actualizacin insertar (A) (resp. borrar (A)) donde A es una tupla de una relacin derivada, encontrar una transaccin T sobre EDB tal que T(D) satisfaga el requisito de actualizacin
20
PIEZA
codpieza pz1 pz3 pz8 desc tornillo tuerca arandela peso 10 11 8
PRECIOS
codprov codpieza precio pv1 pv1 pv3 pv5 pz3 pz8 pz8 pz1 10 20 30 50
PRECIOS_EXT
codprov nombre codpieza pv1 pv1 pv3 pv5 Juan... Juan... Luis... Carlos.. . pz3 pz8 pz8 pz1 desc tuerca arandela arandela tornillo precio 10 20 30 50
PROV
codprov pv1 pv5 pv3 nombre Juan..... Carlos .... Luis ...... zona 1 3 3
T1={borrar (PROV (pv1,Juan,1))} T2={borrar (PIEZA (pz3,tuerca,11), borrar (PIEZA (pz8,arandela,8))} T3={borrar (PRECIOS (pv1,pz3,10), borrar (PRECIOS (pv1,pz8,20))}
21
3. Actualizacin de bases de datos deductivas Mtodos para la actualizacin de bases de datos deductivas
Utilizacin de los procedimientos de evaluacin de consultas para determinar los posibles caminos de derivacin del conocimiento que se desea a actualizar
22
SLDNF:
pieza(pz3,tuerca,11)
x2 / pz3, x3 / tuerca
pieza(pz8,arandela,8)
x2 / pz8, x3 / arandela T 2 precios (pv1,pz8,x4)
T 2 precios (pv1,pz3,x4)
precios(pv1,pz3.10) T 3
x4/ 10
precios(pv1,pz8,20) T 3
x4/ 20
23
3.1 Actualizacin
24
3.1 Actualizacin 1. p(x) q(x) t(x) 2. p(x) w(x) v(x) 3. t(x) s(x) r(x)
p(1) w(1) v(1) q(1) t(1) q(1) s(1) r(1)
Ejemplo 1
Actualizacin: 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
3.1 Actualizacin
26
3.1 Actualizacin
27
28
La presencia de variables existencialmente cuantificadas en las reglas deductivas puede provocar la aparicin del problema llamado falta de valores durante la generacin de las transacciones que resuelven un requisito de actualizacin.
29
Actualizacin: U = p(1).
y (q(1,y) t(1,y)) {y/--}
q(1,y) t(1,y)
Una solucin 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 extrado sin criterio de la base de datos. Aunque en ocasiones esta solucin es la nica posible, en otras se puede elegir un valor tal que la transaccin obtenida sea ms sencilla.
Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia 30
Actualizacin: U = p(1).
y (q(1,y) t(1,y))
q(1,y) t(1,y)
{y/ nulo}
{y/ c}
{y/ 2}
T1 = { insertar(q(1,nulo)), insertar(t(1,nulo))}
T3 = { insertar(q(1,2))}
31
3.1 Actualizacin
3) Recursividad.
La presencia de reglas recursivas en la base de datos puede complicar la generacin de la transaccin, ya que el rbol de derivacin puede ser infinito para un determinado requisito de actualizacin, lo que supone la existencia de infinitas transacciones posibles para satisfacerlo.
32
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))}
3.1 Actualizacin
34
Actualizacin: U = p(1).
y (r(1,y) s(1,y) q(1,y)) {y/2} T1 = { insertar( q(1,2)) } r(1,2) s(1,2) q(1,2)
r(1,2) BDE
s(1,2) fallo finito
q(1,2) BDE
T1 no es una solucin correcta porque induce la insercin de s(1,2) que se haba asumido falsa en la construccin de la solucin.
s(1,2)
2 resolucin
s(1,2)
2 resolucin
q(1,2)
q(1,2) resolucin
q(1,2)
35
3.1 Actualizacin
36
W = x (r(x) t(x))
q(x) r(x)
Actualizacin: U = p(1).
T1= { insertar(q(1)), insertar(r(1)) }
T1 no es una solucin correcta porque el estado T1(BDD) viola la restriccin de integridad W
Un mtodo que integre la generacin de las soluciones con la restauracin de la integridad podra generar la transaccin {insertar(q(1)), insertar(r(1)), insertar(t(1))}.
Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia 37
39
Restricciones estticas: hacen referencia a un nico estado de la base de datos. Estas restricciones restringen los estados vlidos con independencia de la secuencia de los mismos. Restricciones dinmicas: hacen referencia a dos o ms estados de la base de datos. Estas restricciones restringen las secuencias de estados vlidas. Un caso particular de restricciones dinmicas son las restricciones de transicin que restringen dos estados consecutivos vlidos.
40
Mtodo de comprobacin de la integridad: es un procedimiento de decisin tal que, dado un estado D y una restriccin de integridad esttica W, decide con una respuesta binaria si/no si el estado D satisface/viola la restriccin esttica W.
41
42
44
COMP
COMPONENTE
Reglas deductivas: COMPONENTE (x, y) COMP (x,z) COMPONENTE (z, y) COMPONENTE (x, y) COMP (x, y) Transaccin: {insertar (COMP(pz8,pz1))}
p ie za 2 p z3 p z8 p z8 p z1 p z3 p z8 p z1 p z1 p z3
45
COMP
inserciones inducidas
D viola W
46
transaccin T, (D' = (DTins) \ Tdel), comprobar que D' satisface W (para toda WRI).
47
48
Si asumimos la semntica de la complecin: Tr=comp(D) = {y(p(y) y=a x(q(x) r(x))), x(q(x) x=a), x(r(x) r(x)) }. Desde el punto de vista de la consistencia D satisface: W1=q(a), W2=r(a), W3=p(a), W4=r(a). Desde el punto de vista de la demostracin D satisface: W1=q(a).
Tr es la teora de 1er orden que representa la base de datos en la semntica asumida
Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia 50
Comprobacin de la integridad:
FASE I: Fase de Generacin Paso 1: Clculo del conjuntos de literales que representan la diferencia entre los estados consecutivos D y D'. Paso 2: Paso 3: Paso 4: Identificacin de las restricciones relevantes. Instanciacin de las restricciones relevantes. Simplificacin de las instancias de las restricciones relevantes.
FASE II: Fase de Evaluacin Paso 5: Comprobacin en D' de las instancias simplificadas de las restricciones relevantes.
Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia 53
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) }
Fase de Generacin
Paso 1: Clculo del conjuntos de literales que representan la diferencia entre los estados consecutivos D y D'.
D = { D={ p(x) q(x,y) t(y), t(y) s(y), q(a,b), q(b,a), s(c) } 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) }
Fase de Generacin
Paso 2: Identificacin de restricciones relevantes
D = { D={ p(x) q(x,y) t(y), t(y) s(y), q(a,b), q(b,a), s(c) } 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
T= {ins(s(b), ins(t(y) q(y,z) t(z))}
Paso 2
W2 = x ( s(x) p(x) ) es relevante para T
56
Fase de Generacin
Paso 3: Instanciacin de las restricciones relevantes Paso 4: Simplificacin de las instancias de las restricciones relevantes
D={ p(x) q(x,y) t(y), t(y) s(y), q(a,b), q(b,a), s(c) }
Inserciones = {s(b), t(a), t(b)} Borrados = {p(a), p(b)}
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) }
Paso 3
Paso 4
57
Comprobacin de la integridad:
FASE I: Fase de Generacin
s ione uy m Paso 1: Clculo del conjuntos de literalesizac representan la diferencia que tual de ser Slo entre los estados consecutivos D y s ac la D'. n pue osas. e n lo d restriccionesurelevantes. Paso 2: Identificacinlcu las sacci ol mi ern de El c r la tran atos v ones s Paso 3: Instanciacin de las restricciones relevantes. o 1: s po de d alizaci as da P ase ci bde las actu idad. las restricciones relevantes. n Paso 4: indu Simplificacin instancias de so e e estas integr osto as d cEvaluacin ara la FASE II: Fase de lgun ntes p a Paso 5: Comprobacin en D' de las instancias simplificadas de las leva re restricciones relevantes.
Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia 58
Comprobacin de la integridad:
FASE I: Fase de Generacin Potencial
Solucin
Paso 1: Clculo del conjuntos de literales que capturen la diferencia entre los estados consecutivos D y D sin acceder a la BDE. Paso 2: Paso 3: Paso 4: Identificacin de las restricciones relevantes. Instanciacin de las restricciones relevantes. Simplificacin de las instancias de las restricciones relevantes.
FASE II: Fase de Evaluacin Paso 5: Comprobacin en D' de las instancias simplificadas de las restricciones relevantes.
Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia 59
Actualizaciones potenciales inducidas por T: Inserciones {s(b), t(y)} {t(b)} {p(x)} Borrados
Actualizaciones reales instancias inducidas por T: Inserciones = {s(b), t(a), t(b)} Borrados = {p(a), p(b)}
60
T
Inserciones = {s(b), t(y), t(b)}
W2 1= s(b) p(b) W2 = x ( s(x) p(x) ) W2 2= x s(x) p(x) W2 3= x s(x) p(x) W2 = x s(x) p(x)
Paso 3
Paso 4
61
T
Inserciones = {s(b), t(y), t(b)} Borrados = {p(x)} Si la extensin de q es grande los borrados sobre p inducidos por T pueden ser muchos.
62
63
64
T = TinsTdel
Actualizacin
|= U
T = Tins Tdel
Restauracin de la consistencia
NO
SI
65
66