Beruflich Dokumente
Kultur Dokumente
DEDUCTIVAS
ÍNDICE
5. NOTACIÓN PROLOG/DATALOG
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.
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.
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.
not(P1) OR not(P2) OR ... OR not (Pn) P1 AND P2 AND ... AND Pn => P1, P2, .... Pn
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)?
Ejemplo (II)
jaime
federico jazmín
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.
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
Ejemplo de programa en
DATALOG
{
/* Declaración de los predicados extensionales */
EMPLEADO(NombreServicio: String, NombreEmpleado: String);
SERVICIO(NombreServicio: String, NombreJefe: String);
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.
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).
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.
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).
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)?
Procesamiento de consultas
recursivas (I)
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
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.
14