Bases Deductivas

66
Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia La Lógica en el desarrollo de las Bases de Datos Matilde Celma Giménez

Transcript of Bases Deductivas

Page 1: Bases Deductivas

Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

La Lógica en el desarrollo de las Bases de Datos

Matilde Celma Giménez

Page 2: Bases Deductivas

2Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

La 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

Page 3: Bases Deductivas

3Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

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

Page 4: Bases Deductivas

4Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

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

Page 5: Bases Deductivas

5Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

Base de datos deductiva

+

Base de datos relacional Conocimiento explícito

Reglasdeductivas

Conocimiento implícito

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

2. Bases de datos deductivas.

Reglas deductivas

Base de datos relacional

Page 6: Bases Deductivas

6Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

Hechos

Reglas

Información derivada

Sistema de Gestiónde Bases de DatosRelacionales

Sistema de Inferencia

Hechos = {tuplas de relaciones}(conocimiento explícito)

Reglas = {reglas deductivas}(conocimiento implícito)

Sistema de gestión de bases de

datos deductivas

Usuario+

Sistema de inferencia

Base de datos deductiva

+Reglas

Hechos

2. Bases de datos deductivas.

Page 7: Bases Deductivas

7Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

2. Bases de datos deductivas

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 básicas:

Ri (Di1 x Di2

x ... x Dini )

(1 i m) (m relaciones básicas)

BASE DE DATOS

Relaciones derivadas:

Sij (x1, x2,..., xni

) Wij

(1 i s) (s relaciones derivadas)

(1 j Ki) (Ki reglas para la relación Si)

ESQUEMA

Ai1 Ai2 ...... Aini

Ri

Page 8: Bases Deductivas

8Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

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} PROVCAj = {codpieza} PIEZA

COMP (pieza1: D1, pieza2: D1)CP = {pieza1, pieza2}CAj = {pieza1} PIEZACAj = {pieza2} PIEZA

Esquema

Relaciones derivadas:PRECIOS3 (codprov: D4, codpieza: D1, precio: D7)CP = {codprov, codpieza}CAj = {codprov} PROVCAj = {codpieza} PIEZA

PRECIOS_EXT (codprov: D4, nombre: D5, codpieza: D1, desc: D2, precio: D7)

CP = {codprov, codpieza}CAj = {codprov} PROVCAj = {codpieza} PIEZA

COMPONENTE (pieza1: D1, pieza2: D1)CP = {pieza1, pieza2}CAj = {pieza1} PIEZACAj = {pieza2} PIEZA

Restricciones de integridad:x y ( COMPONENTE (x,y) COMPONENTE (y,x) )

2. Bases de datos deductivas

Page 9: Bases Deductivas

9Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

codpieza desc peso

pz1 tornillo 10

pz3 tuerca 11

pz8 arandela 8

PIEZAcodprov nombre zona

pv1 Juan..... 1

pv5 Carlos .... 3

pv3 Luis ...... 3

PROV

codprov codpieza precio

pv1 pz3 10

pv1 pz8 20

pv3 pz8 30

pv5 pz1 50

PRECIOSpieza1 pieza2

pz1 pz3

pz3 pz8

COMP

Reglas deductivas:

1 precios3 (x, y,z)zprecios (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) )

BDD:

2. Bases de datos deductivas

Page 10: Bases Deductivas

10Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

PROV PIEZA PRECIOS COMP

PRECIOS3 COMPONENTE

BA

SE

DE

DA

TO

S

El usuario desea manipular (consultar y actualizar) las relaciones de la BD independientemente de que sean relaciones básicas o derivadas.

2. Bases de datos deductivas

PRECIOS_EXT

Page 11: Bases Deductivas

11Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

Mecanismo de vistas del modelo relacional

Definición de información implícita

Relación derivada VISTA

2. Bases de datos deductivas

Base de datos deductiva Base de datos relacional con vistas

Page 12: Bases Deductivas

12Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

Definición de vistasLimitaciones en la definición de vistas recursivas

Actualización Limitaciones en la actualización de las vistas

2. Bases de datos deductivas

SGBD relacionales Ausencia de procedimientos para la evaluación de consultas recursivas

Limitaciones del modelo relacional (SQL92):

Page 13: Bases Deductivas

13Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

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

2. Bases de datos deductivas.

LÓGICA

Page 14: Bases Deductivas

14Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

pieza (pz1, tornillo, 10)...

prov (pv1, Juan, 1)...

comp (pz1, pz3)...

precios3 (x, y, z)wprov (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)zw (prov (x, n, z) pieza (y, d, w) precios (x, y, p) )Re

gla

s d

edu

ctiv

as

He

cho

s

Bas

e de

dat

os d

educ

tiva

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:

2. Bases de datos deductivas.

Page 15: Bases Deductivas

15Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

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)

{ AL1 L2 ... Ln : A es un átomo y Li es un literal} (reglas)

2. Bases de datos deductivas

Page 16: Bases Deductivas

16Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

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

Semántica de una BDD

2. Bases de datos deductivas

Page 17: Bases Deductivas

17Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

Programación lógica: semántica operacional: SLDNFsemá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

Semántica de una BDD

2. Bases de datos deductivas

Page 18: Bases Deductivas

18Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

componente (pz1,w)

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

componente (pz3,w)

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

componente ( pz8,w)

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

comp (pz3,w)

comp (pz1,w)

2

hecho z/pz3

2 3

hechoz’/pz8

2 3

hecho w/pz3

hecho w/pz8

3

w = pz3w = pz8

¿ D

e qu

é pi

ezas

se

com

pone

la p

ieza

pz1

?

2 componente (x, y)comp (x, z) componente (z, y)3 componente (x, y)comp (x, y)

Procedimiento SLDNF

comp(D) |= componente (pz1, pz3)

comp(D) |= componente (pz1, pz8)

Page 19: Bases Deductivas

19Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

La 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

Page 20: Bases Deductivas

20Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

Actualización sobrerelación derivada

Actualización(es) sobrerelación(es) básicas(s)

“Dada una base de datos D (D=BDI BDE) y un requisitode 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 codprov=pv1

3. Actualización de base de datos deductivas

Page 21: Bases Deductivas

21Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

codpieza desc peso

pz1 tornillo 10

pz3 tuerca 11

pz8 arandela 8

codprov nombre zona

pv1 Juan..... 1

pv5 Carlos .... 3

pv3 Luis ...... 3

codprov nombre codpieza desc precio

pv1 Juan... pz3 tuerca 10

pv1 Juan... pz8 arandela 20

pv3 Luis... pz8 arandela 30

pv5 Carlos...

pz1 tornillo 50

codprov codpieza precio

pv1 pz3 10

pv1 pz8 20

pv3 pz8 30

pv5 pz1 50

PIEZA

PRECIOS_EXTPRECIOS

PROVT1={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))}

Page 22: Bases Deductivas

22Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

Métodos para la actualizaciónde bases de datos deductivas

Utilización de los procedimientos de evaluaciónde consultas para determinar los posibles caminos

de derivación del conocimiento que se desea a actualizar

3. Actualización de bases de datos deductivas

Page 23: Bases Deductivas

23Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

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

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

pieza (x2,x3,x6) precios (pv1,x2,x4)

precios (pv1,pz3,x4) precios (pv1,pz8,x4)

prov(pv1,Juan,1)

pieza(pz3,tuerca,11)

x2 / pz8, x3 / arandela

precios(pv1,pz3.10)

x4/ 10 x4/ 20

4

T1

T2T2

T3T3

SLDNF:

pieza(pz8,arandela,8)

x2 / pz3, x3 / tuerca

x1 / Juan

precios(pv1,pz8,20)

Page 24: Bases Deductivas

24Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

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 actualización U tal que U no es cierto en D entonces encontrar una transacción T tal que WRI, D’ = T(D) satisface W y U es cierto en D’.

3.1 Actualización

Page 25: Bases Deductivas

25Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

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)

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

Ejemplo 1

Actualización: U = p(1)

Obtener transacciones que aseguren una de estas cuatro situaciones

3.1 Actualización

Page 26: Bases Deductivas

26Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

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

Caracterización del problema:

3.1 Actualización

Page 27: Bases Deductivas

27Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

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.

3.1 Actualización

Page 28: Bases Deductivas

28Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

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.

3.1 Actualización

Page 29: Bases Deductivas

29Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

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 aparición del problema llamado falta de valores durante la generación de las transacciones que resuelven un requisito de actualización.

3.1 Actualización

Page 30: Bases Deductivas

30Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

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.

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

….

t(1,2)

Actualización: U = p(1).

Ejemplo 2:

p(1)

q(1,y) t(1,y)

1 resolución

y (q(1,y) t(1,y))

{y/--}

3.1 Actualización

Page 31: Bases Deductivas

31Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

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

….

t(1,2)

Actualización: U = p(1).

Ejemplo 2:

p(1)

q(1,y) t(1,y)

1 resolución

y (q(1,y) t(1,y))

T1 = { insertar(q(1,nulo)), insertar(t(1,nulo))}

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

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

{y/ nulo} {y/ c} {y/ 2}

3.1 Actualización

Page 32: Bases Deductivas

32Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

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.

3.1 Actualización

Page 33: Bases Deductivas

33Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

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

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

2. p(x,y) q(x,z) p(z,y)

Actualización: U = p(1,1).

Ejemplo 3:

3.1 Actualización

Page 34: Bases Deductivas

34Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

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.

3.1 Actualización

Page 35: Bases Deductivas

35Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

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:

Actualización: U = p(1).

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

p(1)

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

1 resolución

{y/2}

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

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

r(1,2) BDE

s(1,2) fallo finito

q(1,2) BDE

q(1,2)

q(1,2) resolución

s(1,2)

2 resolución

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.

q(1,2)

s(1,2)

2 resolución

3.1 Actualización

Page 36: Bases Deductivas

36Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

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.

3.1 Actualización

Page 37: Bases Deductivas

37Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

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

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

W = x (r(x) t(x))

Actualización: U = p(1).

p(1)

1 resolución

T1= { insertar(q(1)), insertar(r(1)) }

q(x) r(x)

T1 no es una solución correcta porque el estado T1(BDD) viola la restricción de integridad W

Ejemplo 5:

3.1 Actualización

Page 38: Bases Deductivas

38Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

Estudio de un método de actualización:

1. Semántica 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.

3.1 Actualización

Page 39: Bases Deductivas

39Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

La 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

Page 40: Bases Deductivas

40Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

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.

3.2 Comprobación de la integridad

D0 T1 D1 Ti DiEvolución de una BDTn 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.

Page 41: Bases Deductivas

41Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

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.

3.2 Comprobación de la integridad

Page 42: Bases Deductivas

42Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

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.

3.2 Comprobación de la integridad

Page 43: Bases Deductivas

43Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

Comprobación simplificada de la integridad en bases de datos relacionales:

PRECIOS (codprov: D4, codpieza: D1, precio: D7)CP = {codprov, codpieza}CAj = {codprov} PROVCAj = {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 íntegroentoncesD’ satisface W si y sólo si D’ satisface w t (prov (pv11,w,t) )

3.2 Comprobación de la integridad

Page 44: Bases Deductivas

44Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

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.

Comprobación simplificada de la integridad en bases de datos deductivas:

3.2 Comprobación de la integridad

Page 45: Bases Deductivas

45Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

pieza1 pieza2

pz1 pz3

pz3 pz8

pieza1 pieza2

pz1 pz3

pz3 pz8

pz1 pz8

COMP COMPONENTE

COMPONENTE (x, y)COMP (x,z) COMPONENTE (z, y)COMPONENTE (x, y)COMP (x, y)

Reglas deductivas:

Transacción: {insertar (COMP(pz8,pz1))}

pieza1 pieza2

pz1 pz3

pz3 pz8

pz8 pz1

pieza1 pieza2

pz1 pz3

pz3 pz8

pz1 pz8

pz8 pz1

pz8 pz3

pz8 pz8

pz1 pz1

pz3 pz1

pz3 pz3

COMP

COMPONENTE

D

D’

inserciones inducidas

Page 46: Bases Deductivas

46Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

W: x y ( COMPONENTE (x,y) COMPONENTE (y,x) )

Restricción de integridad:

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

3.2 Comprobación de la integridad

Page 47: Bases Deductivas

47Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

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 transacción T

formada por dos conjuntos de sentencias de base de datos, T=T insTdel,

(TinsTdel = , Tdel D y TinsD = ), el estado D’ resultante de aplicar a D la

transacción T, (D' = (DTins) \ Tdel), comprobar que D' satisface W (para

toda WRI).

3.2 Comprobación de la integridad

Page 48: Bases Deductivas

48Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

1) Concepto de satisfacción

2) Corrección y completitud de un método

2) Fases en la comprobación simplificada de la integridad

3.2 Comprobación de la integridad

Caracterización del problema:

Page 49: Bases Deductivas

49Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

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

3.2 Comprobación de la integridad

Page 50: Bases Deductivas

50Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

Ejemplo 1:D = { p(a) q(x) ¬r(x),

q(a),

r(x) r(x) }.

Si asumimos la semántica de la compleción:

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 demostración D satisface: W1=q(a).

Tr es la teoría de 1er orden que representa la base de datos en la semántica asumida

3.2 Comprobación de la integridad

Page 51: Bases Deductivas

51Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

Si asumimos la semántica 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 satisfacción.

Tr es la teoría de 1er orden que representa la base de datos en la semántica asumida

3.2 Comprobación de la integridad

Page 52: Bases Deductivas

52Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

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

3.2 Comprobación de la integridad

Page 53: Bases Deductivas

53Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

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.

3.2 Comprobación de la integridad

Page 54: Bases Deductivas

54Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

3) Fases en la comprobación simplificada de la integridad

Ejemplo 2:

3.2 Comprobación de la integridad

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

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

W1 = x y ( q(x,y) q(y,x) )

W2 = x ( s(x) p(x) )

Page 55: Bases Deductivas

55Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

Paso 1: Cálculo del conjuntos de literales que “representan” la diferencia entre los estados consecutivos D y D'.

Fase de Generación

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

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

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

T

Se asume la semántica de la compleción y el punto de vista de la demostración.

Page 56: Bases Deductivas

56Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

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

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

Borrados = {p(a), p(b)}

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

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

Paso 2: Identificación de restricciones relevantes

Fase de Generación

Paso 2

Page 57: Bases Deductivas

57Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

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

W2 = x ( s(x) p(x) )

W2 1= s(b) p(b)

W2 2= s(a) p(a)

W2 3= s(b) p(b)

Paso 3: Instanciación de las restricciones relevantes

Fase de Generación

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

Borrados = {p(a), p(b)}

W2 1= p(b)

W2 2= s(a)

W2 3= s(b)

Paso 4: Simplificación de las instancias de las restricciones relevantes

Paso 3 Paso 4

Page 58: Bases Deductivas

58Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

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.

3.2 Comprobación de la integridad

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.

Page 59: Bases Deductivas

59Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

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.

3.2 Comprobación de la integridad

Solución

Page 60: Bases Deductivas

60Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

Paso 1: Cálculo del conjuntos de literales que “capturen” la diferencia entre los estados consecutivos D y D'.

Fase de Generación Potencial

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

Actualizaciones potenciales inducidas por T:

Inserciones Borrados

{s(b), t(y)}

{t(b)} {p(x)}

T

T= {ins(s(b),

ins(t(y) q(y,z) t(z))}

Actualizaciones reales inducidas por T:

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

Borrados = {p(a), p(b)}

instancias

Page 61: Bases Deductivas

61Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

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

W2 = x ( s(x) p(x) )

W2 1= s(b) p(b)

W2 2= x s(x) p(x)

W2 3= x s(x) p(x)

Paso 3: Instanciación de las restricciones relevantes

Fase de Generación Potencial

Inserciones = {s(b), t(y), t(b)}

Borrados = {p(x)}

Paso 4: Simplificación de las instancias de las restricciones relevantes

Paso 3 Paso 4

W2 = x s(x) p(x)

Page 62: Bases Deductivas

62Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

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

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

Paso 3: Instanciación de las restricciones relevantes

Fase de Generación Potencial

Inserciones = {s(b), t(y), t(b)}

Borrados = {p(x)}

Paso 4: Simplificación de las instancias de las restricciones relevantes

Si la extensión de q es grande los borrados sobre p inducidos por T pueden ser muchos.

Page 63: Bases Deductivas

63Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

Estudio de un método de simplificación:

1. Semántica asumida: referencia para interpretar el concepto de satisfacción.

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

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

3.2 Comprobación de la integridad

Page 64: Bases Deductivas

64Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

La 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

Page 65: Bases Deductivas

65Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

3.2 Restauración de la consistencia

D

U

Requisito de actualización

D satisface W

Tr (D) |= U

T = TinsTdel

D’

D' = (DTins) \ Tdel)

Tr (D’) |= U

Comprobación RI

D’

Actualización

Restauración de la

consistencia

T’ = T’ins T’del

D’’

D‘’ = (D’T’ins) \ T’del)

Tr (D’’) |= U

D’’ satisface W (W RI)

NO SI

Page 66: Bases Deductivas

66Departamento de Sistemas Informáticos y Computación / Universidad Politécnica de Valencia

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

transacción T=TinsTdel, (TinsTdel = , Tdel D y TinsD = ), el estado D’

resultante de aplicar a D la transacción T, (D' = (DTins) \ Tdel), y una

restricción WRI tal que D' viola W, encontrar una transacción

T*=T*insT*del (T*insT*del = , T*delTins = , T*insTdel = , ), tal que el

estado D’’ resultante de aplicar T* a D’, D‘’ = (D’T*ins) \ T*del),

satisface W.

3.2 Restauración de la consistencia