Sunteți pe pagina 1din 29

BASES DE DATOS

DEDUCTIVAS

Autor: Mikel Alonso Hornes


Bases De Datos Deductivas

INDICE
1.¿Que es una base de datos deductiva?

2.Lenguajes declarativos

3.Prolog/Datalog

4.Algunas BDD en el mundo real

5.Conclusiones
Bases De Datos Deductivas

1.¿Que es una base de datos deductiva?

Una base de datos deductiva es un sistema que incluye


mecanismos para definir reglas (deductivas) que pueden
inferir o deducir información adicional de los hecho
almacenados en la base de datos.

Las reglas se especifican en un lenguaje declarativo; y


estas son analizadas por un motor de inferencia (el
mecanismo que realiza la deducción).
Bases De Datos Deductivas

Estas reglas deductivas se deben inferir acordes a las


características de los datos que integran la propia base de
datos.

Las BDD consisten en aplicar la programación lógica a las


bases de datos.

Las BDD están estrechamente relacionadas con el modelo


de datos relacional y en particular buscan cubrir algunos
defectos que plantea el algebra relacional:
-como la ausencia de la recursion.
-como el desconocimiento de inconsistencia de datos.
Bases De Datos Deductivas

2.Lenguajes declarativos

Es un lenguaje basado en la especificación de reglas o


premisas, con las que se pretende buscar representaciones
del conocimiento humano.

A raíz de estas reglas y una serie de hechos (iniciales o


adquiridos a lo largo del tiempo) Una máquina de inferencia
(o mecanismo de deducción) deduce nuevos hechos.

O sea la función de una Maquina De Inferencia es


encontrar soluciones a partir de la interpretación de una
serie de reglas (determinadas por un lenguaje declarativo
)y un conjunto de hechos.
Bases De Datos Deductivas

llegados a este punto podemos decir que:

A) las bases de datos deductivas usan:


 Un lenguaje declarativo para especificar reglas.
 Un motor de inferencia que puede deducir hechos nuevos a
partir de la base de datos.

B) Utilizan dos tipos de especificaciones:


 Hechos
 Reglas. Especifican relaciones virtuales que no están
almacenadas.
Bases De Datos Deductivas

Para compender las diferentes componentes que integran la


BDD usaremos como ejemplo uno de los lenguajes
declarativos mas usados PROLOG.

Las Bases de Datos Deductivas basados en lógica han


utilizado PROLOG como punto de partida

para especificar las reglas y hechos usamos las cláusulas de


que ofrece PROLOG; y el interprete de PROLOG hace de
maquina de inferencia.
Bases De Datos Deductivas

3.Prolog/Datalog

PROLOG, proveniente del francés Programation et Logique,


es un lenguaje de declarativo bastante popular en el medio
de investigación en Inteligencia artificial.

Se trata de un lenguaje ideado a principios de los años 70


en la universidad de Aix-Marseille por los profesores Alain
Colmerauer y Phillipe Roussel.

En principio se ideo como un lenguaje interpretado, aunque


con el trascurso de los años se desarrollaron compiladores.
Bases De Datos Deductivas

Hechos: Son un conjunto de premisas que intentan inferir


una cierta información de una representación del mundo
real.

ej: Juan, Jorge y Manolo son fumadores.


los loros son mas habladores que las palomas.

Desde un punto de vista de PROLOG, para representar


hechos tenemos primero que definir los atributos.
Estos pueden ser variables o constantes.

De tal manera que representaríamos:


Bases De Datos Deductivas

Relaciones unarias:
Juan y Jorge fuman => fumadores (Juan, Jorge)

Las relaciones binarias o predicados relacionan unos


elementos con otros:
pablo es padre de Juan=> padre (Pablo, Juan)

Gracias a estas estructuras de predicados tendríamos


elementos relacionados.

Con la especificación de atributos y predicados tendremos


Un árbol relacional entre elementos donde podremos ver
relaciones directas pero también indirectas.
Bases De Datos Deductivas

Relaciones y predicados: Ejemplo


a1 a2 a3 a4

b1 b2 b3 b4

c1 c2 c3 c4 c5

d1 d2 d3 d4

Relaciones unarias:
fumador = {b3, b4, d2}; enfermo = {b3, b4, c3, c4, c5, d2, d3, d4};
barbudo = {a3, b3, b4, c1, c2, c4, d1, d2}
Relación binaria:

padre_de = {(a1,b1), (a1,b2), (a2,b1), (a2,b2), (a3,b3), (a3,b4), (a4,b3), (a4,b4), b1,c1),
(b1,c2), (b2,c3), (b3,c3), (b4,c4), (b4,c5), (c1,d1), (c2,d1),(c2,d2), (c4,d2), (c4,d3), (c5,d4)}
Bases De Datos Deductivas

Reglas: Las reglas consiste en el conjunto de restricciones o


cualidades que exigimos a nuestra representación. Stas
reglas se representan mediante composiciones logicas.

ej: X esta enfermo implica ser fumador .


X esta enfermo implica que X es padre de Y e Y esta
enfermo

En PROLOG la simbolizacion logica se representa tal que:

a,b => a and b


not(a) => not a
a;b => a or b
a:-b => a->b
Bases De Datos Deductivas

Ademas PROLOG incorpora terminos para realizar


comparaciones:

= , < , > , <= , >= , /= , == , /==

Predicados aritméticos:

+ , - , * , / , rem , X is <Exp. Aritm>

Ademas tambien puede trabajar con otras tipos de datos


como:

string , listas , terminos complejos


Bases De Datos Deductivas

De tal manera que las consultas antes realizadas quedarian


de la forma:

enfermo(X):- fumador(X).
enfermo(X):- padre_de(X,Y), enfermo(Y).

cura(medicamento, enfermedad) :-
síntomas(sintoma, enfermedad),
alivia(medicamento, sintoma).
Bases De Datos Deductivas

reglas recursivas: Una de las capacidades que tiene este


lenguaje frente al relacional normal es la recursion.

Esta se expresa en la definición de las reglas.

Una regla seria recursiva si se llama a si misma.

ej:
ascendente(X,Y) :- progenitor(X,Y).
ascendente(X,Y) :- progenitor(X,Z), ascendente(Z,Y).
Bases De Datos Deductivas

Ahora que tenemos los hecho iniciales y


las reglas (según la definición de estas)
podremos tener unos hechos derivados:

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 1 a 3)
6 superior(jaime,ahmed):-
supervisar(jaime,jazmín),superior(jazmín,ahmed).
(aplicar 2 a 4 y 5)
Bases De Datos Deductivas

Maquina de inferencia: Dentro de las maquinas de


inferencia podemos distinguir dos mecanismos de
inferencia:

• Encadenamiento hacia atrás (backward chaining). Inicia


con la conclusión que se desea demostrar y procura
establecer la certeza de los hechos que conducen a ella.

• Encadenamiento hacia delante (forward chaining).


Realiza comparaciones entre las reglas y los hechos
disponibles de manera que se establezcan nuevos
hechos hasta llegar al objetivo deseado.
Bases De Datos Deductivas

Hacia adelante
Hacia adelante Hacia atras
Bases De Datos Deductivas

Ej: encadenamiento hacia atras

1) rapta(X, Y) :- rufián(X), desea(X, Y).


2) desea(X,Y) :- noble(X), princesa(Y), guapa(Y).
3) desea (X,Y) :- plebeyo(X), princesa(Y).

4) rufián(bertoldo).
5) rufián(bartolo).
6) noble(romeo).
7) noble(bertoldo)
8) plebeyo(bartolo).
9) princesa(gertrudis).
10) princesa(julieta).
11) guapa(julieta).
Bases De Datos Deductivas

Consulta: ?-rapta(bartolo,Y)
Bases De Datos Deductivas

Ej: encadenamiento hacia delante

1) rapta(X, Y) :- rufián(X), desea(X, Y).


2) desea(X,Y) :- noble(X), princesa(Y), guapa(Y).
3) desea(X,Y) :- plebeyo(X), princesa(Y).
4)adinerado(X):-noble(X).
5)adinerado(X):-rufian(X),plebeyo(X).

6) rufián(bertoldo).
7) rufián(bartolo).
8) noble(romeo).
9) noble(bertoldo)
10) plebeyo(bartolo).
11) princesa(gertrudis).
12) princesa(julieta).
13) guapa(julieta).
Bases De Datos Deductivas

Lo primero que haría es buscar las posibles soluciones que


podrían dar; una vez las tiene solo tendría que coger las
apropiadas cuando le efectuamos una consulta.

1)adinerado(romeo)
2)adinerado(bertoldo)
3)adinerado(bartolo)

Probar: ?- adinerado(X),noble(X).

En este caso las tres posibles soluciones seria apropiadas


Bases De Datos Deductivas

Por ultimo cabe destacar que tendremos que tener cuidado


con la recursion ( ver las relaciones entre los elementos) ya
que podríamos meternos en procesos que nunca terminan.

PROLOG usa encadenamiento hacia atrás en su maquina de


inferencia
Bases De Datos Deductivas

Consultas: por ultimo vamos a ver como se realizan las


consultas y los problemas que podriamos tener al hacerlas.
Las consultas se simbolizan con un signo ? Al final y nos las
podemos encontrar de dos tipos:

1- consultamos un predicado donde ponemos todos los


datos son constantes ,con lo que el sistema nos
devolverá una respuesta booleana

Superior(jaime,pedro)? ;
resp=>true o false.
Bases De Datos Deductivas

2. Consultamos un predicado donde alguna a todas las


datos del predicado son variables, en las que la repuesta
será una lista de los hechos que lo cumplirían.

Superior(jaime,Y)? ;
resp=> Superior(jaime,pedro);
resp=> Superior(jaime,antonio);
resp=> Superior(jaime,maria);

Un punto importante de las


Bases De Datos Deductivas

4.Algunas BDD en el mundo real

Hoy en día nos podemos encontrar con diferentes proyectos


de BDD, entre las que se pueden incluir:

El proyecto Aditi [Rama93] :comenzó en 1988 en la


universidad de Melbourne y ha dado como resultado una
segunda versión (Aditi 2) que se inició en 1994 y la versión
alfa está disponible desde abril de 2001.
Incorpora:

acceso concurrente
gestión de transacciones
paralelismo a varios niveles
resolución de predicados descendente.
Bases De Datos Deductivas

El proyecto VALIDITY [FGLV95] [LMV95], que se inició en


Bull Corporation de la mano de Jean-Marie Nicolas y
Laurent Vieille para desarrollar un sistema de bases de
datos deductivas que integrase características de
orientación a objetos

El proyecto Logic Data Languaje (Lenguaje Lógico de dato:


LDL) de Microelectronics and Computer Corporation (MCC)
se inicio en 1984

Otras referencias que nos podemos encontrar son Coral y


XSB
Bases De Datos Deductivas

5.Conclusiones
1. las bases de datos deductivas son bases de datos a las
que aplicamos la programación lógica.(aunque esta en
una etapa experimental).

2. se crearon para intentar suplir las deficiencias de el


algrebra relacional.

3. al utilizar la logica podemos otorgar a los datos una


propiedades que nos permiten (al poder inferirse
informacion) realizar consultas mas precisas y realizar
labores de mantenimiento en bases de datos muy
grandes.
Bases De Datos Deductivas

4. al estar basado en el modelo relacional podemos


transformar cualquier base de datos a una BDD

S-ar putea să vă placă și