2. (1940, 1950, Inicios de 1960) Aparición de programas
generadores de reportes. Sistemas de archivos.
Lenguajes de definición de datos. Formación de
Codasyl y publicación del primer Cobol. Aparición del
primer DBMS Comercial Integrated DataStore.
4. (Mediados1970…)Surgimiento de bases de datos
relacionales. Sistemas Comerciales: Sistema
R, SQL,SQL/DS, DB2, ORACLE, IDM, RTI.
INGRES, IDM (Intelligent Database Maching).
UNIFY,INFORMIX, SUPRA.
5. Modelos Semánticos. Ciertos tipos de
inferencia, integran a los sistemas de
almacenamiento de datos. Modelos Orientados a
Objetos. Objeto y versiones de objetos, consulta
de ciertos datos. Aparecen las
Bases de datos Deductivas.
6. Un sistema de base de datos deductivas, es un sistema
de base de datos pero con la diferencia de que permite
hacer deducciones a través de inferencias. Se basa
principalmente en reglas y hechos que son almacenados
en la base de datos. También las bases de datos
deductivas son llamadas base de datos lógica, a raíz de
que se basan en lógica matemática.
7. Una base de datos deductiva es, en esencia, un programa
lógico; mapeo de relaciones base hacia hechos, y
reglas que son usadas para definir nuevas relaciones
en términos de las relaciones base y el procesamiento de
consultas.
Los sistemas Bases de Datos Deductivas intentan
modificar el hecho de que los datos requeridos residan en
la memoria principal (por lo que la gestión de
almacenamiento secundario no viene al caso)
de modo que un SGBD se amplíe para manejar datos que
residen en almacenamiento secundario.
8. En un sistema de Bases de Datos Deductivas por lo
regular se usa un lenguaje declarativo para
especificar reglas. Con lenguaje declarativo se quiere
decir un lenguaje que define lo que un programa
desea lograr, en vez de especificarlos detalles de
cómo lograrlo.
9. Se especifican de manera similar a como se especifican
las relaciones, excepto que no es necesario incluir los
nombres de los atributos.
Recordemos que una tupla en una relación describe
algún hecho del mundo real cuyo significado queda
determinado en parte por los nombres de los atributos.
En una Base de Datos Deductiva, el significado del
valor del atributo en una tupla queda determinado
exclusivamente por su posición dentro de la tupla.
10. Se parecen un poco a las vistas relacionales. Especifican
relaciones virtuales que no están almacenadas
realmente, pero que se pueden formar a partir de los
hechos aplicando mecanismos de inferencia basados en
las especificaciones de las reglas. La principal diferencia
entre las reglas y las vistas es que en las primeras puede
haber recursión y por tanto pueden producir vistas que
no es posible definir en términos de las
vistas relacionales estándar. Las BDD buscan derivar
nuevos conocimientos a partir de datos existentes
proporcionando interrelaciones del mundo real en forma
de reglas. Utilizan mecanismos internos para la
evaluación y la optimización.
11.
12. • Tener la capacidad de expresar consultas por
medio de reglas lógicas.
• Permitir consultas recursivas y algoritmos
eficientes para su evaluación.
• Contar con negaciones estratificadas.
13. • Soportar objetos y conjuntos complejos.
• Contar con métodos de optimización que
garanticen la seguridad en el acceso.
• Brinda la posibilidad de inferir información a
partir de los datos almacenados, modelando la
base de datos como un conjunto de fórmulas
lógicas, las cuales permiten deducir otras
fórmulas nuevas.
14. Las principales ventajas al utilizar una BDD son
las siguientes:
• Almacenamiento de pocos Datos.
• Permite crear consultas recursivas con los
datos que se encuentran almacenados.
• Capacidad de obtener nueva información a
través de la ya almacenada en la base de datos
mediante inferencia.
15. La explotación de las reglas de deducción en una BDD
plantea algunos problemas:
• Encontrar criterios que decidan la utilización de una ley
como regla de deducción o como regla de coherencia.
• Replantear correctamente, en un contexto deductivo, las
convenciones habituales en una base de datos
(representaciones de informaciones negativas, eficacia
de las respuestas a las interrogaciones, cierre del
dominio).
• Desarrollar procedimientos eficaces de deducción. La
posibilidad de caer en bucles infinitos es un problema
muy importante.
16. Las relaciones de una Base de Datos se define:
1. Intención.
2. Extensión.
Para una Base particular, la intención de las relaciones que la constituyen
se define por un conjunto de leyes generales, mientras que cada estado de
la Base proporciona una extensión (conjunto de tuplas) para cada una de
las relaciones. Las tuplas constituyen, de hecho, informaciones
elementales.
En un SGBD convencional, todas las leyes generales se explotan para
mantener la coherencia de las informaciones elementales; a estas leyes se
las denomina entonces restricciones de integridad. Por el contrario, en un
Sistema deductivo, algunos (o todas) de estas leyes se utilizan como reglas
de deducción para deducir nuevas informaciones elementales a partir de
las introducidas explícitamente en la Base.
17. La explotación de las reglas de deducción en un SGBD
plantea algunos problemas:
• Encontrar criterios que permitan, para una ley dada
decidir su utilización como regla de deducción o
como regla de coherencia.
• Replantear correctamente, en un contexto
deductivo, las convenciones habituales en una base de
datos (representaciones de informaciones
negativas, eficacia de las respuestas a las
interrogaciones, cierre del dominio).
• Desarrollar procedimientos eficaces de deducción.
18. La explotación de las reglas de deducción pueden
analizarse de dos formas.
• La primera, consiste en su uso en fase de
interrogación, buscando así informaciones deducibles i
mplícitas.
• Una segunda forma consiste en su uso en fase de
modificación, cuando se añaden informaciones
deducibles. Según se utilicen en el primer o el segundo
modo, las reglas se denominan de derivación o de
generación.
19. En Datalog (Database Logic) no existen
instrucciones de control. Su ejecución se basa en
dos conceptos:
1. La unificación.
2. El backtracking.
20. Datalog selecciona el primer punto de elección y sigue
ejecutando el programa hasta determinar si el objetivo es
verdadero o falso.
En caso de ser falso entra en juego el backtracking, que
consiste en deshacer todo lo ejecutado situando el
programa en el mismo estado en el que estaba justo antes
de llegar al punto de elección. Entonces se toma el
siguiente punto de elección que estaba pendiente y se
repite de nuevo el proceso. Todos los objetivos terminan
su ejecución bien en éxito ("verdadero"), bien en fracaso
("falso").
21. Existen principalmente dos tipos de inferencia
computacional basados en la interpretación de las reglas
por la teoría de la demostración:
• Mecanismo de inferencia ascendente.
También llamado encadenamiento hacia delante o
resolución 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.
22. • Mecanismo de inferencia descendente.
También llamado encadenamiento hacia atrás o resolución
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. Retrocede desde el objetivo buscado para
determinar hechos que lo satisfacen. Si no existieran los
hechos que buscamos, el sistema entonces buscará la
primera regla cuya cabeza (LHS) tenga el mismo nombre
de predicado que la consulta.
23. EJEMPLO
Come
Fruta Carne Pollo
Pollo
Manzana Pera Cerdo Res Pollo Frito
Asado
24. /* Los Hechos en la Base de Datos */
fruta(manzana).
fruta(pera).
carne(cerdo).
carne(res).
pollo(pollo_frito).
pollo(pollo_asado).
come(lydia, manzana).
come(antonio, cerdo).
come(antonio, res).
come(antonio, pollo_frito).
come(roberto, pera).
come(roberto, pollo_frito).
come(roberto, res).
25. /* Las reglas en la Base de Datos */
/* X es saludable si X es una fruta. */
saludable(X) :- fruta(X).
/* X es carnívoro si X come Algo y ese Algo es carne o pollo. */
carnivoro(X) :- come(X, Algo), carne(Algo).
carnivoro(X) :- come(X, Algo), pollo(Algo).
/* X es frutariano si X como Algo, ese Algo es una fruta y X no es carnívoro. */
fruitariano(X) :- come(X, F), fruta(X), not carnivoro(X).
26. /*Consultas de la Base de datos*/
cual = manzana;
carne(Cual).
come(antonio, Que).
come(Quien, cerdo).
saludable(manzana).
carnivoro(Quien).
fruitariana(lydia).