Está en la página 1de 66

La Lgica en el desarrollo de las Bases de Datos

Matilde Celma Gimnez


Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

La Lgica en el desarrollo de las Bases de Datos


1. Lgica y Bases de Datos. 2. Bases de datos deductivas. 3. Actualizacin de bases de datos deductivas. 3.1 Actualizacin 3.2 Comprobacin de la integridad 3.3 Restauracin de la consistencia

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

1. Lgica y Bases de Datos

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].

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

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

2. Bases de datos deductivas.

Base de datos relacional

Base de datos relacional

Conocimiento explcito

Reglas deductivas

Reglas deductivas

Conocimiento implcito

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 implcito

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

2. Bases de datos deductivas.


Hechos = {tuplas de relaciones}
(conocimiento explcito) Hechos
Sistema de inferencia

Reglas = {reglas deductivas}


(conocimiento implcito)

Informacin derivada

Reglas

Hechos

+
Reglas

Sistema de Gestin de Bases de Datos Relacionales

+
Sistema de Inferencia

Usuario

Base de datos deductiva

Sistema de gestin de bases de datos deductivas

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

2. Bases de datos deductivas


ESQUEMA
Relaciones bsicas: Ri (Ai1: Di1, Ai2: Di2 , ..., Ain : Din )
i i

BASE DE DATOS
Ri

Relaciones bsicas: Ri (Di1 x Di2 x ... x Din )


i

Ai1

Ai2

......

Aini

(1

m) (m relaciones bsicas)

(1

m)

(m relaciones bsicas)

Relaciones derivadas: Si (Ai1: Di1 , Ai2: Di2 , ..., Ain : Din )


i i

Relaciones derivadas: Sij (x1, x2,..., xn ) Wij


i

(1

s) (s relaciones derivadas)

(1 (1

i j

s) Ki)

(s relaciones derivadas) (Ki reglas para la relacin Si)

Restricciones de Integridad Wi: Wi es una expresin lgica


(1 i k) (k restricciones de integridad)

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

2. Bases de datos deductivas


Relaciones bsicas:
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
Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia 8

2. Bases de datos deductivas BDD :


PIEZA
co p d ieza p z1 p z3 p z8 d esc tornillo tuerca arande la p o es 10 11 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

2. Bases de datos deductivas

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

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

10

2. Bases de datos deductivas

Mecanismo de vistas del modelo relacional Relacin derivada Base de datos deductiva

Definicin de informacin implcita VISTA Base de datos relacional con vistas

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

11

2. Bases de datos deductivas Limitaciones del modelo relacional (SQL92):


Definicin de vistas Limitaciones en la definicin de vistas recursivas Limitaciones en la actualizacin de las vistas Ausencia de procedimientos para la evaluacin de consultas recursivas

Actualizacin

SGBD relacionales

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

12

2. Bases de datos deductivas.


Los sistemas de gestin de bases de datos deductivas deben superar las limitaciones de los sistemas relacionales

PROBLEMAS:
Formalizacin

Actualizacin de la base de datos Construccin de SGBD deductivos

LGICA

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

13

2. Bases de datos deductivas.


Formalizacin: Si intentamos representar la informacin explcita y la informacin
implcita en un mismo lenguaje (lenguaje de 1er orden) obtenemos un programa lgico:

Base de datos deductiva

Hechos Reglas deductivas

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)

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

15

2. Bases de datos deductivas

Semntica de una BDD


Semntica de una BDD: definir el conocimiento existente en la base de datos. qu es cierto en la BDD?

:
Semntica declarativa: conocimiento en la BDD Semntica operacional: procedimiento para obtener el
conocimiento

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

16

2. Bases de datos deductivas

Semntica de una BDD


Programacin lgica: semntica operacional: SLDNF semntica declarativa: comp(D) Semntica operacional: procedimiento SLDNF SLDNF: - procedimiento de refutacin - reglas de inferencia: resolucin negacin como fallo Semntica declarativa asociada al SLDNF: complecin de D

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

17

componente (pz1,w)

De qu piezas se compone la pieza pz1?

Procedimiento SLDNF

comp (pz1,z) componente (z,w)


hecho

comp (pz1,w)
hecho

z/pz3

w/pz3

componente (pz3,w)
2 3

comp (pz3,z ) componente (z ,w)


hecho

comp (pz3,w)
hecho

w = pz3 w = pz8

z/pz8

w/pz8

componente ( pz8,w)
2 3

comp (pz8,z ) componente (z ,w)

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)

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

18

La Lgica en el desarrollo de las Bases de Datos


1. Lgica y Bases de Datos. 2. Bases de datos deductivas. 3. Actualizacin de bases de datos deductivas. 3.1 Actualizacin 3.2 Comprobacin de la integridad 3.3 Restauracin de la consistencia

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

19

3. Actualizacin de base de datos deductivas

Actualizacin sobre relacin derivada

Actualizacin(es) sobre relacin(es) bsicas(s)

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

Ejemplo: DELETE FROM PRECIOS3 WHERE codprov=pv1

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

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

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

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

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

22

SLDNF:

precios_ext (pv1, x1, x2, x3, x4)


4

prov (pv1, x1, x5) pieza (x2,x3,x6) precios (pv1,x2,x4) prov(pv1,Juan,1)


x1 / Juan T 1 pieza (x2,x3,x6) precios (pv1,x2,x4)

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

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

23

3.1 Actualizacin

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 WRI se cumple que D satisface W, y dado un requisito de actualizacin U tal que U no es cierto en D entonces encontrar una transaccin T tal que WRI, D = T(D) satisface W y U es cierto en D.

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

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

Obtener transacciones que aseguren una de estas cuatro situaciones


Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia 25

3.1 Actualizacin

Caracterizacin del problema:


1) Tiempo de generacin de la solucin. 2) Variables cuantificadas existencialmente 3) Recursividad 4) Informacin asumida 5) Tratamiento de restricciones de integridad

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

26

3.1 Actualizacin

1) Tiempo de generacin de la solucin.


Tiempo de ejecucin: el rbol de derivacin para el requisito de actualizacin se genera cuando la actualizacin es solicitada. Tiempo de definicin: el rbol de derivacin para un requisito de actualizacin se estudia cuando se define el esquema de la base de datos, lo que supone una mejora ya que determinadas tareas slo se realizan una vez. Mixto: en este caso una parte de la solucin se genera en tiempo de definicin del esquema y se completa en tiempo de ejecucin.

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

27

3.1 Actualizacin En el Ejemplo 1: un mtodo que obtuviese la solucin en tiempo de


ejecucin estudiara el rbol de derivacin de la actualizacin p(1) para encontrar una solucin. un mtodo que trabajase en tiempo de definicin del esquema estudiara el requisito genrico p(x) para obtener soluciones que luego se instanciaran en tiempo de ejecucin.

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

28

3.1 Actualizacin 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 xi+1 xm (A xi (L1 Ln))

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.

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

29

3.1 Actualizacin Ejemplo 2:


p(1)
1 resolucin

BDD: 1. p(x) q(x,y) t(x,y)


.
t(1,2)

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

3.1 Actualizacin Ejemplo 2:


p(1)
1 resolucin

BDD: 1. p(x) q(x,y) t(x,y)


.
t(1,2)

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))}

T2 = { insertar(q(1, c)), insertar(t(1, c))}

T3 = { insertar(q(1,2))}

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

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.

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

32

3.1 Actualizacin Ejemplo 3:


BDD: 1. p(x,y) q(x,y)
2. p(x,y) q(x,z) p(z,y) Actualizacin: 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))}

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia 33

3.1 Actualizacin

4) Problema de la informacin asumida.


En presencia de negacin en las reglas deductivas, es posible que algunas soluciones que podran parecer correctas no lo sean, ya que alguna informacin que se ha supuesto cierta (resp. falsa), durante la construccin de la solucin pase a ser falsa (resp. cierta) debido a las actualizaciones propuestas ms adelante.

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

34

3.1 Actualizacin Ejemplo 4:


p(1)
1 resolucin

BDD: 1. p(x) r(x,y) s(x,y) q(x,y)


2. s(1,2) q(1,2)
r(1,2)

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

r(1,y) s(1,y) q(1,y)

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)

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

35

3.1 Actualizacin

5) Tratamiento de las restricciones de integridad.


La solucin propuesta para un requisito de actualizacin puede suponer la violacin de alguna restriccin de integridad por lo que es interesante estudiar cmo integra cada mtodo, si lo hace, su estrategia con la comprobacin de las restricciones del esquema.

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

36

3.1 Actualizacin Ejemplo 5:


p(1)
1 resolucin

BDD: 1. p(x) q(x) r(x)

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

3.1 Actualizacin Estudio de un mtodo de actualizacin:


1. Semntica asumida: la semntica declarativa determina el conjunto de posibles soluciones al requisito de actualizacin y la semntica 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 mtodo. 3. Requisitos de actualizacin: forma sintctica de los requisitos de actualizacin permitidos en el mtodo. 4. Transacciones generadas: tipo de soluciones obtenidas y si slo se obtiene una o todas las soluciones posibles. 5. Descripcin del mtodo: estrategia seguida para generar las transacciones. 6. Correccin y completitud del mtodo. 7. Resumen: cmo el mtodo resuelve los problemas antes mencionados.
38

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

La Lgica en el desarrollo de las Bases de Datos


1. Lgica y Bases de Datos. 2. Bases de datos deductivas. 3. Actualizacin de bases de datos deductivas. 3.1 Actualizacin 3.2 Comprobacin de la integridad 3.3 Restauracin de la consistencia

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

39

3.2 Comprobacin de la integridad


Restriccin 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.
D0 T1 D1 Ti Di Tn Dn
Evolucin de una BD

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.

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

40

3.2 Comprobacin de la integridad


Comprobacin de la integridad: la comprobacin de la integridad en bases de datos consiste en comprobar si el par de estados (D,D') implicados en una transaccin T satisface las restricciones de transicin y si el estado final D' satisface las restricciones estticas.

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.

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

41

3.2 Comprobacin de la integridad


La forma ms sencilla de comprobar las restricciones estticas es evaluar cada una de ellas despus de la transaccin; sin embargo esta aproximacin puede ser muy costosa en bases de datos voluminosas. La comprobacin de la integridad podra simplificarse si considerramos slo los "cambios" que la transaccin ha producido en la base de datos. Todos los mtodos propuestos para simplificar la comprobacin de la integridad suponen que la base de datos era ntegra antes de la transaccin. Apoyndose en esta hiptesis, los mtodos comprueban slo instancias de las restricciones generadas a partir de las actualizaciones (inserciones y borrados) de la transaccin, evitando comprobar instancias que ya se satisfacan antes de la transaccin y que adems no se ven afectadas por sta.

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

42

3.2 Comprobacin de la integridad Comprobacin 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 T D

Si D es un estado ntegro entonces D satisface W si y slo si D satisface w t (prov (pv11,w,t) )


Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia 43

3.2 Comprobacin de la integridad Comprobacin simplificada de la integridad en bases de datos deductivas:


En bases de datos deductivas las actualizaciones generadas por una transaccin no son slo las explcitamente requeridas por sta (operaciones que la componen) sino tambin todas las actualizaciones que se pueden inducir por la presencia de reglas deductivas en la base de datos.

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

44

COMP

COMPONENTE

pieza1 pz1 pz3

pieza2 pz3 pz8

pieza1 pz1 pz3 pz1

pieza2 pz3 pz8 pz8


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 1 pz1 pz3 pz1 pz8 pz8 pz8 pz1 pz3 pz3

p ie za 2 p z3 p z8 p z8 p z1 p z3 p z8 p z1 p z1 p z3
45

COMP

pieza1 pz1 pz3 pz8

pieza2 pz3 pz8 pz1

inserciones inducidas

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

3.2 Comprobacin de la integridad


Restriccin 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 slo si D satisface


pz8) COMPONENTE (pz1,

D viola W

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

46

3.2 Comprobacin 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 WRI), una transaccin T formada por dos conjuntos de sentencias de base de datos, T=TinsTdel,
(TinsTdel = , Tdel D y TinsD = ), el estado D resultante de aplicar a D la

transaccin T, (D' = (DTins) \ Tdel), comprobar que D' satisface W (para toda WRI).

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

47

3.2 Comprobacin de la integridad

Caracterizacin del problema:


1) Concepto de satisfaccin 2) Correccin y completitud de un mtodo 2) Fases en la comprobacin simplificada de la integridad

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

48

3.2 Comprobacin de la integridad 1) Concepto de satisfaccin:


a) Punto de vista de la demostracin: D satisface W sii Tr |= W. b) Punto de vista de la consistencia: D satisface W sii Tr {W} es consistente. El concepto de violacin se define en trminos del concepto de satisfaccin: D viola W sii no (D satisface W). Diremos que un estado D es ntegro si, para toda restriccin W perteneciente a RI, D satisface W.
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 49

3.2 Comprobacin de la integridad Ejemplo 1:


D={ p(a) q(x) r(x), q(a), r(x) r(x) }.

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

3.2 Comprobacin de la integridad


Si asumimos la semntica del punto fijo iterado: MD={q(a), p(a)} Tr(MD) = {x (p(x) x=a), x (q(x) x=a), x (r(x) }. D satisface W1=q(a) y W2=p(a) en los dos conceptos de satisfaccin.

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 51

3.2 Comprobacin de la integridad 2) Correccin y completitud de un mtodo:


Sean: M un mtodo de comprobacin de la integridad. D satisfaceM (resp. violaM) W significa que el mtodo M decide que el estado D satisface (resp. viola) la restriccin W (WRI). CS el concepto de satisfaccin asumido por el mtodo M. D satisfaceCS (resp. violaCS) W significa que el estado D satisface (resp. viola) la restriccin W (WRI) en el concepto de satisfaccin CS. Un mtodo M es correcto cuando se cumple: si D satisfaceM W entonces D satisfaceCS W (correcto para satisfaccin) si D violaM W entonces D violaCS W Un mtodo M es completo cuando se cumple: si D satisfaceCS W entonces D satisfaceM W (completo para satisfaccin) si D violaCS W entonces D violaM W (completo para violacin).
52

(correcto para violacin).

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

3.2 Comprobacin de la integridad 3) Fases en la comprobacin simplificada de la integridad


Hiptesis: D es ntegro.

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

3.2 Comprobacin de la integridad 3) Fases en la comprobacin 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) } 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) )
Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia 54

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) }

T= {ins(s(b), ins(t(y) q(y,z) t(z))} Actualizaciones inducidas por T:


Inserciones = {A: ABD, comp(D) |= A y comp(D) |= A } = {s(b), t(a), t(b)} Borrados = {A: ABD, comp(D) |= A y comp(D) |= A } = {p(a), p(b)}
Se asume la semntica de la complecin y el punto de vista de la demostracin.
Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia 55

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))}

Inserciones = {s(b), t(a), t(b)} Borrados = {p(a), p(b)}

W1 = x y ( q(x,y) q(y,x) ) no es relevante para T

Paso 2
W2 = x ( s(x) p(x) ) es relevante para T

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

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) }

W2 1= s(b) p(b) W2 = x ( s(x) p(x) ) W2 2= s(a) p(a) W2 3= s(b) p(b)

W2 1= p(b) W2 2= s(a) W2 3= s(b)

Paso 3

Paso 4
57

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

3.2 Comprobacin de la integridad 3) Fases en la comprobacin simplificada de la integridad


Hiptesis: D es ntegro.

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

3.2 Comprobacin de la integridad 3) Fases en la comprobacin simplificada de la integridad


Hiptesis: D es ntegro.

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

Fase de Generacin Potencial


Paso 1: Clculo del conjuntos de literales que capturen 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)
T= {ins(s(b), ins(t(y) q(y,z) t(z))}

q(a,b), q(b,a), s(c), s(b) }

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)}

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

60

Fase de Generacin Potencial


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), 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
Inserciones = {s(b), t(y), t(b)}

q(a,b), q(b,a), s(c) } Borrados = {p(x)}

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

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

Fase de Generacin Potencial


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) } 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
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.

W3 = x ( p(x) r(x) ) no es relevante para T.

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

62

3.2 Comprobacin de la integridad Estudio de un mtodo de simplificacin:


1. Semntica asumida: referencia para interpretar el concepto de satisfaccin. 2. Concepto de satisfaccin utilizado. 3. Requisitos sintcticos: forma sintctica de las reglas y de las restricciones de integridad. 4. Correccin y completitud del mtodo. 5. Estrategia del mtodo: Fase de Generacin: potencial (sin acceso a la BDE), real (con acceso a la BDE). Intercalacin de las fases de Generacin y Evaluacin. Etapa de compilacin independiente de la transaccin.

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

63

La Lgica en el desarrollo de las Bases de Datos


1. Lgica y Bases de Datos. 2. Bases de datos deductivas. 3. Actualizacin de bases de datos deductivas. 3.1 Actualizacin 3.2 Comprobacin de la integridad 3.3 Restauracin de la consistencia

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

64

3.2 Restauracin de la consistencia


D U
Requisito de actualizacin D satisface W Tr (D)

T = TinsTdel
Actualizacin

D' = (DTins) \ Tdel) Tr (D) |= U Comprobacin RI

|= U
T = Tins Tdel
Restauracin de la consistencia

NO

SI

D = (DTins) \ Tdel) Tr (D) |= U D satisface W (W RI)

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

65

3.2 Restauracin 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 WRI), una transaccin T=TinsTdel, (TinsTdel = , Tdel D y TinsD = ), el estado D resultante de aplicar a D la transaccin T, (D' = (DTins) \ Tdel), y una restriccin WRI tal que D' viola W, encontrar una transaccin T*=T*insT*del (T*insT*del = , T*delTins = , T*insTdel = , ), tal que el estado D resultante de aplicar T* a D, D = (DT*ins) \ T*del), satisface W.

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

66