You are on page 1of 14

BASES DE DATOS

DEDUCTIVAS

MODELOS AVANZADOS DE BASES DE DATOS

María Teresa García-Madrid García-Carpintero


Rafael Velasco Sánchez

Bases de Datos Deductivas 1

ÍNDICE

1.- INTRODUCCIÓN A LAS BASES DE DATOS DEDUCTIVAS

2.- CÁLCULO PROPOSICIONAL

3.- CÁLCULO DE PREDICADOS

4. FORMA CLAUSAL Y CLÁUSULAS DE HORN

5. NOTACIÓN PROLOG/DATALOG

6.- EL LENGUAJE DATALOG

7.- INTERPRETACIÓN DE REGLAS

8.- MECANISMOS BÁSICOS DE INFERENCIA PARA PROGRAMAS DE LÓGICA

8.1.- MECANISMOS DE INFERENCIA ASCENDENTE (ENCADENAMIENTO HACIA ADELANTE)

8.2.- MECANISMOS DE INFERENCIA DESCENDENTE (ENCADENAMIENTO HACIA ATRÁS)

9.- PROCESAMIENTO DE CONSULTAS RECURSIVAS

Bases de Datos Deductivas 2

1
Introducción a los Sistemas de
Bases de Datos Deductivos
• Un sistema de bases de datos que tenga la capacidad de
definir reglas con las cuales deducir o inferir información
adicional a partir de los hechos almacenados en las bases
de datos se llama Sistema de Bases de Datos Deductivo.
• Una base de datos deductiva utiliza principalmente dos
tipos de especificaciones: hechos (relaciones) y reglas
(vistas relacionales).
• En un sistema de bases de datos deductivo por lo regular se
usa un lenguaje declarativo para especificar reglas.

Bases de Datos Deductivas 3

Cálculo Proposicional
• Términos: Constantes. Da como resultado verdadero o falso. Ej. : "el
proveedor V1 proporciona la parte P1" .
• Fórmulas: Se usan para la definición de consultas en los sistemas de
bases de datos.
<fórmula>
::= <término>
|NOT <término
|<término> AND <fórmula>
|<término> OR < fórmula >
|<término> => < fórmula>
<término>
::= <fórmula atómica>
| ( <fórmula> )
Bases de Datos Deductivas 4

2
Cálculo Proposicional
• Reglas de inferencia: Son de la forma |= f => g .
• Demostraciones: Consiste en determinar si alguna
fórmula g dada (la conclusión) es consecuencia lógica de
algún conjunto dado de formulas f1, f2, ..., fn (las
premisas); en símbolos: f1, f2, ..., fn |- g1.
• Métodos:
- Adopción de una premisa.
- Encadenamiento hacia atrás.
- Reducción al absurdo
- Resolución.

Bases de Datos Deductivas 5

Cálculo de Predicados
• Permite que las fórmulas contengan variables.
Ej.: "el proveedor V1 proporciona la parte p"
• Predicados: Función con valor de verdad.
• Fórmulas bien formadas: Amplía la definición de fórmula. Contiene
cuantificadores.
<wff> ::= <término>
|NOT (<wff>)
|(<wff>) and (<wff>)
|(<wff>) or (<wff>)
|(<wff>) => (<wff>)
|EXISTS <nombre de variable> ( <wff> )
|FORALL <nombre de variable> ( <wff> )
<término> ::= [NOT] <nombre de predicado> [ ( <lista de argumentos
separados por comas> ) ]
Bases de Datos Deductivas 6

3
Forma Clausal y Cláusulas de Horn
(I)
• Una fórmula puede tener cuantificadores: el cuantificador universal
("para todo") y el cuantificador existencial ("existe”). En la forma
clausal, una fórmula se debe convertir en otra fórmula con las siguientes
características:
– Todas las variables de la fórmula están cuantificadas
universalmente.
– En forma clausal, la fórmula se compone de varias cláusulas, y cada
cláusula se compone de varias literales conectadas exclusivamente
por conectores lógicos OR.
– Las cláusulas mismas se conectan exclusivamente mediante
conectores lógicos AND, para constituir una fórmula.

Bases de Datos Deductivas 7

Forma Clausal y Cláusulas de Horn (II)


La siguiente cláusula:
not(P1 ) OR not(P2 ) OR ... OR not (Pn) OR Q1 OR Q2 OR ... OR Qm,

Se puede transformar en la siguiente pues son equivalentes:


P1 AND P2 AND ... AND Pn => Q1 OR Q2 OR ... OR Qm

Cláusulas de Horn Transformada Formato DATALOG


not(P1) OR not(P2) OR ... OR not (Pn) OR Q P1 AND P2 AND ... AND Pn => Q Q:- P1, P2, ..., Pn

not(P1) OR not(P2) OR ... OR not (Pn) P1 AND P2 AND ... AND Pn => P1, P2, .... Pn

Bases de Datos Deductivas 8

4
Ejemplo (I)
• Considerar el siguiente ejemplo:
Hechos Reglas
Supervisar(federico, josé)
superior(X,Y):- supervisar(X,Y).
Supervisar(federico,ramón)
Supervisar(federico,josefa) superior(X,Y):- supervisar(X,Z), superior(Z,Y).
Supervisar(jazmín,alicia) subordinado(X,Y):- superior(Y,X).
Supervisar(jazmín,ahmed) Consultas
Supervisar(jaime,federico)
superior(jaime,Y)?
Supervisar(jaime,jazmín)
superior(jaime,josefa)?

Bases de Datos Deductivas 9

Ejemplo (II)

Árbol de supervisión basado en los hechos:

jaime

federico jazmín

josé ramón josefa ahmed alicia

Bases de Datos Deductivas 10

5
El lenguaje DATALOG
•El lenguaje DATALOG se deriva de la lógica de primer
orden. Es a la vez un lenguaje de descripción y de
manipulación de bases de datos.
•El modelo de descripción de datos sostenido por
DATALOG es esencialmente relacional, viéndose una
relación como un predicado de la lógica.
•El lenguaje de manipulación es un lenguaje de reglas
construido a partir de las cláusulas de Horn. El nombre
Datalog significa “lógica para los datos”. Ha sido
inventado para sugerir una versión de Prolog utilizable
por los datos.

Bases de Datos Deductivas 11

Predicados extensionales e
intencionales (I)
• Las extensiones de predicados extensionales son
materializadas en la base de datos. Los predicados
extensionales corresponden a las relaciones del modelo
relacional. De forma concreta, un predicado extensional es
un predicado en el que las instancias son almacenadas en
forma de tuplas.
• Una base de datos es manipulada mediante programas
lógicos constituidos de una serie de cláusulas de Horn que
definen predicados intencionales. Un predicado intencional
es pues definido por un programa de reglas lógicas;
corresponde a una vista del modelo relacional.
Bases de Datos Deductivas 12

6
Predicados extensionales e
intencionales (II)
Cuestiones

Predicados intencionales

Reglas DATALOG

Actualizaciones
Predicados
extensionales

Bases de Datos Deductivas 13

Ejemplo de programa en
DATALOG
{
/* Declaración de los predicados extensionales */
EMPLEADO(NombreServicio: String, NombreEmpleado: String);
SERVICIO(NombreServicio: String, NombreJefe: String);

/* Definición de los predicados intencionales */


DIRIGE1(x,y) ß SERVICIO(z,x), EMPLEADO(z,y);
DIRIGE2((x,y) ß DIRIGE1(X,Z) dirige1(z,y);
}

Bases de Datos Deductivas 14

7
Interpretación de reglas
• Alternativas principales para interpretar el significado teórico de las
reglas:
– Teoría de las demostraciones:
Hechos = axiomas base
Reglas = axiomas deductivos
Con los axiomas deductivos podemos construir demostraciones
que deriven hechos nuevos a partir de los ya existentes.
– Teoría de los modelos. Dado un dominio finito o infinito de
valores constantes, asignamos a un predicado todas las
combinaciones posibles de valores como argumentos. Después
debemos determinar si el predicado es verdadero o falso.
– Mecanismo de inferencia: Es un procedimiento computacional y
por tanto provee una interpretación computacional del significado
de las reglas.

Bases de Datos Deductivas 15

Interpretación por la Teoría de


Demostraciones
• Demostrar el hecho superior(jaime, ahmed) a partir de las reglas y
hechos dados:

1. superior(X,Y) :- supervisar(X,Y). (regla 1)


2. superior(X,Y) :- supervisar(X,Z), superior(Z,Y). (regla 2)
3. supervisar(jazmín,ahmed). (axioma base, dado)
4. supervisar(jaime,jazmín). (axioma base, dado)
5. superior(jazmín,ahmed). (aplicar la regla 1 a 3)
6. superior(jaime,ahmed) :- supervisar(jaime,jazmín),
superior(jazmín,ahmed). (aplicar la regla 2 a 4 y 5)

Bases de Datos Deductivas 16

8
Interpretación por la Teoría de los
Modelos (I)
Reglas
– superior(X,Y) :- supervisar(X,Y).
– superior(X,Y) :- supervisar(X,Z), superior(Z,Y).
Interpretación
• Hechos conocidos:
– supervisar(federico,josé) es verdadero.
– supervisar(federico,ramón) es verdadero.
– supervisar(federico,josefa) es verdadero.
– supervisar(jazmín,alicia) es verdadero.
– supervisar(jazmín,ahmed) es verdadero.
– supervisar(jaime,federico) es verdadero.
– supervisar(jaime,jazmín) es verdadero.
– supervisar(X,Y) es falso para todas las demás combinaciones posibles
(X,Y).

Bases de Datos Deductivas 17

Interpretación por la Teoría de los


Modelos (II)
• Hechos derivados:
– superior(federico,josé) es verdadero.
– superior(federico,ramón) es verdadero.
– superior(federico,josefa) es verdadero.
– superior(jazmín,alicia) es verdadero.
– superior(jazmín,ahmed) es verdadero.
– superior(jaime,federico) es verdadero.
– superior(jaime,jazmín) es verdadero.
– superior(jaime,josé) es verdadero.
– superior(jaime,ramón) es verdadero.
– superior(jaime,josefa) es verdadero.
– superior(jaime, alicia) es verdadero.
– superior(jaime, ahmed) es verdadero.
– superior(X,Y) es falso para todas las demás combinaciones posibles (X,Y).

Bases de Datos Deductivas 18

9
Mecanismos Básicos de
Inferencia
• Mecanismo de inferencia ascendente. La máquina de
inferencia parte de los hechos y aplica las reglas para generar hechos
nuevos. Conviene usar una estrategia de búsqueda para generar sólo
los hechos que sean pertinentes a una consulta.

• Mecanismo de inferencia descendente. Parte del predicado


que es el objetivo de la consulta e intenta encontrar coincidencias con
las variables que conduzcan a hechos válidos de la base de datos.

Bases de Datos Deductivas 19

Evaluación ascendente (I)


• Considerar el siguiente ejemplo:
Hechos Reglas
Supervisar(federico, josé)
superior(X,Y):- supervisar(X,Y).
Supervisar(federico,ramón)
Supervisar(federico,josefa) superior(X,Y):- supervisar(X,Z),
Supervisar(jazmín,alicia) superior(Z,Y).
Supervisar(jazmín,ahmed) subordinado(X,Y):- superior(Y,X).
Supervisar(jaime,federico) Consultas
Supervisar(jaime,jazmín)
superior(jaime,Y)?

Bases de Datos Deductivas 20

10
Evaluación ascendente (II)
Reglas
–superior(X,Y) :- supervisar(X,Y).
–superior(X,Y) :- supervisar(X,Z), superior(Z,Y).

Interpretación
•Hechos conocidos:
–supervisar(federico,josé) es verdadero.
–supervisar(federico,ramón) es verdadero.
–supervisar(federico,josefa) es verdadero.
–supervisar(jazmín,alicia) es verdadero.
–supervisar(jazmín,ahmed) es verdadero.
–supervisar(jaime,federico) es verdadero.
–supervisar(jaime,jazmín) es verdadero.
–supervisar(X,Y) es falso para todas las demás combinaciones posibles (X,Y).

Bases de Datos Deductivas 21

Evaluación ascendente (III)


•Hechos derivados:
–superior(federico,josé) es verdadero.
–superior(federico,ramón) es verdadero. Regla 1
–superior(federico,josefa) es verdadero.
–superior(jazmín,alicia) es verdadero.
–superior(jazmín,ahmed) es verdadero.
–superior(jaime,federico) es verdadero.
–superior(jaime,jazmín) es verdadero.
–superior(jaime,josé) es verdadero.
–superior(jaime,ramón) es verdadero.
–superior(jaime,josefa) es verdadero. Regla 2
–superior(jaime, alicia) es verdadero.
–superior(jaime, ahmed) es verdadero.
–superior(X,Y) es falso para todas las demás combinaciones posibles (X,Y).
Bases de Datos Deductivas 22

11
Evaluación descendente de una consulta
Consulta: Superior(jaime,Z)

R1: superior(jaime,Y):-supervisar(jaime,Y)
R2: superior(jaime,Y):-supervisar(jaime,Z),superior(Z,Y)

Y=federico, jazmín
Supervisar(jaime,Z)?

Z=federico Z=jazmín

Superior(federico,Y)? Superior(jazmín,Y)?

Y=ramón, josé, josefa Y=alicia, ahmed

Bases de Datos Deductivas 23

Procesamiento de consultas
recursivas (I)

• Una de las características más notables de los sistemas de bases


de datos deductivos es su soporte para la recursión (definiciones
de reglas recursivas y por lo tanto, también de consultas
recursivas)
• Una regla es recursiva cuando el predicado de la cabeza aparece
también en el cuerpo.

Bases de Datos Deductivas 24

12
Procesamiento de consultas
recursivas (II)
Una regla recursiva cuyo predicado de cabeza aparezca
una sola vez en el cuerpo es llamada lineal
{
/* Dirige especificado por una regla lineal */
DIRIGE(x,y) ß DIRIGE1(x,y);
DIRIGE(x,y) ß DIRIGE1(x,z),DIRIGE(z,y);
}
Bases de Datos Deductivas 25

Procesamiento de consultas recursivas


(III)
En general, una relación recursiva es una relación definida en
función de ella misma. Una relación recursiva no está
forzosamente definida por una regla recursiva. En efecto, las
reglas mutuamente recursivas permiten definir una relación
recursiva.
{
R(x,y) ß B(x,y);
R(x,y) ß P(x,z), B(z,y);
P(x,y) ß R(x,z), C(z,y);
}
R

B C

P
Bases de Datos Deductivas 26

13
CONCLUSIÓN
• Los trabajos sobre la introducción en los SGBD de razonamientos generales
incluyendo no solamente los hechos, sino también las reglas deductivas
expresadas en la lógica de primer orden, comenzaron principalmente en el CERT
en Toulouse a finales de la década de los 70.
• El lenguaje DATALOG es el empleado en las bases de datos deductivas. Es una
adaptación del PROLOG.
• La aproximación DATALOG es útil para la comprensión de problemas, pero poco
práctico ya que ningún producto puede razonablemente ofrecer este lenguaje a los
usuarios. Una aproximación, que ofrecen algunos productos, consiste en acoplar
un interpretador PROLOG a un SGBD relacional.
• El problema de la optimización de las demandas en un contexto de reglas
recursivas es complejo. Las técnicas de optimización en presencia de funciones y
de objetos complejos son aún poco conocidas. Además, las técnicas de
mantenimiento de la coherencia de reglas y de datos apenas se han estudiado.

Bases de Datos Deductivas 27

14

You might also like