Você está na 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

2. Bases de datos deductivas.

Base de datos
relacional

Base de datos
relacional

Conocimiento explcito

Reglas
deductivas

Conocimiento implcito

+
Reglas
deductivas

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}

Hechos

(conocimiento explcito)
Sistema
de inferencia

Informacin
derivada

Reglas = {reglas deductivas}


(conocimiento implcito)

Reglas

Sistema de Gestin
de Bases de Datos
Relacionales

Hechos

Reglas

Usuario

Sistema de Inferencia

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

BASE DE DATOS
Ri

Relaciones bsicas:

Relaciones bsicas:

Ri (Ai1: Di1, Ai2: Di2 , ..., Aini: Dini)

Ri (Di1 x Di2 x ... x Din )

(1 i m) (m relaciones bsicas)

(1 i m)

Relaciones derivadas:
Si (Ai1: Di1 , Ai2: Di2 , ..., Aini: Dini)

Ai1

Ai2

......

(m relaciones bsicas)

Relaciones derivadas:

(1 i s) (s relaciones derivadas)

Sij (x1, x2,..., xn ) Wij

Restricciones de Integridad

(1 i s)

(s relaciones derivadas)

(1 j Ki)

(Ki reglas para la relacin Si)

Wi: Wi es una expresin lgica

Aini

(1 i k) (k restricciones de integridad)

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

2. Bases de datos deductivas


Relaciones bsicas:

Relaciones derivadas:

PIEZA (codpieza: D1, desc: D2, peso: D3)


CP = {codpieza}

PRECIOS3 (codprov: D4, codpieza: D1, precio: D7)


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

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

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

2. Bases de datos deductivas

BDD
:

PIEZA

PROV

codpieza

desc

peso

codprov

nombre

zona

pz1

tornillo

10

pv1

Juan.....

pz3

tuerca

11

pv5

Carlos ....

pz8

arandela

pv3

Luis ......

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:
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

2. Bases de datos deductivas

PRECIOS3

PRECIOS

PRECIOS_EXT

COMP

COMPONENTE

BASE DE DATOS

PIEZA

PROV

El usuario desea manipular (consultar y


actualizar) las relaciones de la BD
independientemente de que sean
relaciones bsicas o derivadas.

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

10

2. Bases de datos deductivas

Mecanismo de vistas
del modelo relacional

Definicin de informacin
implcita

Relacin derivada

VISTA

Base de datos deductiva

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

Actualizacin

Limitaciones en la
actualizacin de las vistas

SGBD relacionales

Ausencia de procedimientos
para la evaluacin de consultas
recursivas

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

LGICA

Construccin de SGBD deductivos

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

Hechos
Reglas deductivas

Base de datos deductiva

implcita en un mismo lenguaje (lenguaje de 1er orden) obtenemos


un programa lgico:
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)zw (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)

{ AL1 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

De qu piezas se compone la pieza pz1?

componente (pz1,w)
2

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


hecho

Procedimiento
SLDNF

comp (pz1,w)

z/pz3

hecho

w/pz3

componente (pz3,w)
3

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


hecho

z/pz8

comp (pz3,w)
hecho

w = pz3
w = pz8

w/pz8

componente ( pz8,w)
2

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

comp (pz8,w)

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

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


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

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

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

desc

peso

pz1

tornillo

10

pz3

tuerca

11

pz8

arandela

PRECIOS_EXT
PRECIOS

codprov nombre codpieza

codprov codpieza precio

desc

precio

pv1

Juan...

pz3

tuerca

10

pv1

Juan...

pz8

arandela

20

pv1

pz3

10

pv1

pz8

20

pv3

Luis...

pz8

arandela

30

pv3

pz8

30

pv5

pz1

tornillo

50

pv5

pz1

50

Carlos..
.

PROV
codprov

nombre

zona

pv1

Juan.....

pv5

Carlos ....

pv3

Luis ......

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

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

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

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)

T1

x1 / Juan

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

pieza(pz3,tuerca,11)
x2 / pz3, x3 / tuerca

T2

precios (pv1,pz3,x4)
precios(pv1,pz3.10)
T3

x4/ 10

pieza(pz8,arandela,8)
T2

x2 / pz8, x3 / arandela

precios (pv1,pz8,x4)
precios(pv1,pz8,20)
T3

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

Ejemplo 1

1. p(x) q(x) t(x)


2. p(x) w(x) v(x)
3. t(x) s(x) r(x)

Actualizacin: U = p(1)

p(1)
w(1) v(1)

q(1) t(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

q(1) s(1) r(1)


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
BDD: 1. p(x) q(x,y) t(x,y)

Ejemplo 2:

p(1)
1

t(1,2)

resolucin

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

Actualizacin: U = p(1).
y (q(1,y) t(1,y))
{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
BDD: 1. p(x) q(x,y) t(x,y)

Ejemplo 2:

.
t(1,2)

p(1)
1

Actualizacin: U = p(1).

resolucin

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

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

{y/ nulo}

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

{y/ c}

{y/ 2}

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
BDD: 1. p(x) r(x,y) s(x,y) q(x,y)

Ejemplo 4:

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

p(1)
1

Actualizacin: U = p(1).

resolucin

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

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


{y/2}

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


r(1,2) BDE
s(1,2) fallo finito

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

q(1,2) BDE

s(1,2)

s(1,2)

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.

resolucin

q(1,2)
q(1,2)

resolucin

q(1,2)

resolucin

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:

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

p(1)
1

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

resolucin

Actualizacin: U = p(1).

q(x) r(x)

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.

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

38

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

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

pieza2

pieza1

pieza2

pz1

pz3

pz1

pz3

pz3

pz8

pz3

pz8

pz1

pz8

Reglas deductivas:

COMPONENTE

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


COMPONENTE (x, y)COMP (x, y)
Transaccin: {insertar (COMP(pz8,pz1))}

COMP

pieza1

pieza2

pz1

pz3

pz3

pz8

pz8

pz1

inserciones
inducidas

pieza1

pieza2

pz1

pz3

pz3

pz8

pz1

pz8

pz8

pz1

pz8

pz3

pz8

pz8

pz1

pz1

pz3

pz1

pz3

pz3

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

45

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 COMPONENTE (pz1, pz8)

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

D viola W

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

(correcto para violacin).

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

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

52

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:

Identificacin de las restricciones relevantes.

Paso 3:

Instanciacin de las restricciones relevantes.

Paso 4:

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

D = {

p(x) q(x,y) t(y),

t(y) s(y),

t(y) s(y),

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

t(y) q(y,z) t(z)


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

T= {ins(s(b), ins(t(y) q(y,z) t(z))}


W1 = "x "y ( q(x,y) q(y,x) )
W2 = "x ( s(x) p(x) )
Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

54

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

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

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

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

T= {ins(s(b),
ins(t(y) q(y,z) t(z))}

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) ) no es relevante para T

Paso 2

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

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

D = {

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)


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

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

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

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

W2 1= s(b) p(b)

W2 1= p(b)

W2 2= s(a) p(a)

W2 2= s(a)

W2 3= s(b) p(b)

W2 3= s(b)

Paso 3

Paso 4

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

57

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:

Identificacin de las restricciones relevantes.

Paso 3:

Instanciacin de las restricciones relevantes.

Paso 4:

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

58

3.2 Comprobacin de la integridad


3) Fases en la comprobacin simplificada de la integridad
Hiptesis: D es ntegro.

Comprobacin de la integridad:

Solucin

FASE I: Fase de Generacin Potencial


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:

Identificacin de las restricciones relevantes.

Paso 3:

Instanciacin de las restricciones relevantes.

Paso 4:

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)


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

T= {ins(s(b),
ins(t(y) q(y,z) t(z))}

Actualizaciones potenciales inducidas por T:


Inserciones

Borrados

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

{s(b), t(y)}

{t(b)}

Actualizaciones reales
instancias inducidas por T:

{p(x)}

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

D = {

t(y) s(y),

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


Borrados = {p(x)}

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

W2 1= s(b) p(b)
W2 = "x ( s(x) p(x) )

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

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

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

Paso 3

Paso 4

Departamento de Sistemas Informticos y Computacin / Universidad Politcnica de Valencia

61

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

D = {

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)


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

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

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
T = TinsTdel

Actualizacin
Requisito de
actualizacin

D satisface W
Tr (D)

D' = (DTins) \ Tdel)


Tr (D) |= U

|= U

Comprobacin
RI

T = Tins Tdel

D = (DTins) \ Tdel)

Restauracin
de la
consistencia

NO

SI

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

Você também pode gostar