Bases de Datos Deductivas

Anuncio
BASES DE DATOS DEDUCTIVAS
Introducción:
El interés de los Sistemas de Gestión de Bases de Datos Deductivas tiende a incrementarse conforme se
amplía su campo de aplicación (Gestión, Sistemas Expertos). Los estudios relativos a tales sistemas han
comenzado a realizarse hace algunos años, inspirándose inicialmente en las técnicas desarrolladas en
Inteligencia Artificial en el marco de los sistemas Pregunta − Respuesta, adaptándolas a las limitaciones
específicas de las Bases de Datos.
Un SGBD deductivo es un Sistema que permite derivar nuevas informaciones a partir de las introducidas
explícitamente en la Base por el usuario. Este maneja la perspectiva según la teoría de las demostraciones de
una base de datos, y en particular es capaz de deducir hechos a partir de la base de datos extensional, es decir,
las relaciones base, aplicando a esos hechos axiomas deductivos o reglas de inferencias especificados. Esta
función deductiva se realiza mediante la adecuada explotación de ciertos conocimientos generales relativos a
las informaciones de la Base.
Definición:
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 Deductivas. Puesto que parte de los fundamentos teóricos de algunos sistemas de ésta especie es la
lógica matemática, a menudo se les denomina Bases de Datos Lógicas. 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.
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 especificar los detalles de cómo lograrlo. Una máquina de inferencia (o mecanismo de deducción)
dentro del sistema puede deducir hechos nuevos a partir de la base de datos interpretando dichas reglas. El
modelo empleado en las Bases de Datos Deductivas está íntimamente relacionado con el modelo de datos
relacional, y sobre todo con el formalismo del cálculo relacional. También esta relacionado con el campo de la
programación lógica y el lenguaje Prolog. Los trabajos sobre Bases de Datos Deductivas basados en lógica
han utilizado Prolog como punto de partida. Con un subconjunto de Prolog llamado Datalog se definen reglas
declarativamente junto con un conjunto de relaciones existentes que se tratan como literales en el lenguaje.
Aunque la estructura gramatical se parece a la de Prolog, su semántica operativa (esto es, la forma como debe
ejecutarse un programa en Datalog) queda abierta.
Una Base de Datos Deductiva utiliza dos tipos de especificaciones: hechos y reglas. Los hechos 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.
Las reglas se parecen un poco a las vistas relacionales. Especifican relaciones virtuales que no están
1
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.
Características:
Una Base de Datos Deductiva debe contar al menos con las siguientes características:
• 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.
• Soportar objetos y conjuntos complejos.
• Contar con métodos de optimización que garanticen la traducción de especificaciones dentro de
planes eficientes de acceso.
• Como característica fundamental de una Base de Datos Deductiva es la posibilidad de inferir
información a partir de los datos almacenados, es imperativo modelar la base de datos como un
conjunto de fórmulas lógicas, las cuales permiten inferir otras fórmulas nuevas.
Reglas de Deducción:
Las relaciones de una Base de Datos Relacional se define por intención y por 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.
Por ejemplo: se considera una Base de Datos en la que se detallan los lazos de parentesco entre individuos,
interesándose particularmente por las relaciones PADRE y ABUELO. Entre las leyes generales que
conciernen a estas dos relaciones, se considera la ley 1 que expresa Todo padre de un padre es un abuelo, y se
supone que, en un momento dado, el estado de la Base es tal que las informaciones elementales relativas a las
relaciones PADRE y ABUELO son las siguientes:
PADRE P H ABUELO A N
Juan Pablo Roberto Pedro
Pablo Jaime
Si la ley 1 se considera como una regla de coherencia, este estado de la Base debe considerarse no válido, ya
que la vulnera. En efecto, la extensión de ABUELO no contiene la tupla (Juan, Jaime), siendo así que Juan es
el padre de Pablo y Pablo es el padre de Jaime. En este caso se ha hecho (implícitamente) la hipótesis de que
la tupla que satisface (en un momento dado) la relación ABUELO son exactamente las que aparecen en su
extensión. Si se prescinde de este supuesto se puede, por el contrario, suponer que las tuplas que satisfacen la
relación ABUELO no son sólo las que aparecen de modo explícito en su extensión, sino también las que
2
pueden deducirse, mediante la ley 1, de las informaciones relativas a PADRE; usando así 1 como regla de
deducción.
Problemas asociados a las reglas de deducción:
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
Utilización de las reglas de deducción:
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 implí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.
Interpretación de reglas:
Existen dos alternativas principales para interpretar el significado teórico de las reglas: por la teoría de
demostración y por la teoría de modelos. En los sistemas prácticos, es mecanismo de inferencia que tiene el
sistema, define la interpretación exacta, que pudiera no coincidir con ninguna de las dos interpretaciones
teóricas. El mecanismo de inferencia es un procedimiento computacional y por tanto provee una
interpretación computacional del significado de las reglas.
Una interpretación es la llamada interpretación de reglas por la teoría de demostraciones. En ella se
considerarán los hechos y las reglas como enunciados verdades o axiomas. Los axiomas base no contienen
variables. Los hechos son axiomas base que se dan por ciertos. Las reglas se llaman axiomas deductivos, ya
que pueden servir para deducir hechos nuevos. Con los axiomas deductivos se pueden construir
demostraciones que deriven hechos nuevos a partir de los ya existentes. Los axiomas deductivos, junto con las
restricciones de integridad constituyen lo que en ocasiones se denomina base de datos intencional, y la base
de datos extensional junto con la intencional constituyen lo que suele llamarse Base de Datos Deductivas;
aunque en realidad, quien se encarga de las deducciones es el DBMS, no la base de datos. La interpretación
por la teoría de demostraciones ofrece un enfoque por procedimientos o computacional para calcular una
respuesta a la consulta Datalog. Al proceso de demostrar si un determinado hecho (teorema) se cumple se le
conoce también como demostración de teoremas.
El segundo tipo de demostración se llama interpretación por la teoría de modelos. Aquí, dado un dominio
finito o infinito de valores constantes, se le asigna a un predicado todas las combinaciones posibles de valores
como argumentos. Después se debe determinar si el predicado es verdadero o falso. En general, basta con
especificar las combinaciones de argumentos que hacen que el predicado sea verdadero, y decir que todas las
demás combinaciones hacen que sean falso. Si esto se hace con todos los predicados, se habla de una
interpretación del conjunto de predicados.
A una interpretación se le llama modelo para un conjunto específico de reglas si esas reglas siempre se
cumplen en esa interpretación; es decir, para cualesquiera valores que se asignen a las variables de las reglas,
la cabeza de reglas es verdadera cuando sustituimos los valores de verdad asignados a los predicados en el
3
cuerpo de las reglas según esa interpretación. De este modo, siempre que se aplica una sustitución (enlace) a
las variables de las reglas, si todos los predicados del cuerpo de un arreglo son verdaderos en esa
interpretación, el predicado de la cabeza de la regla también debe ser verdadero. Cabe señalar que una regla se
viola si un determinado enlace de constantes en a las variables hace verdaderos todos los predicados del
cuerpo de la regla, pero hace que el predicado de la cabeza de la regla sea falso.
Seguridad de los programas en Datalog en las BDD:
Se dice que un programa o una regla es seguro se genera un conjunto finito de hechos. El problema teórico de
determinar si un conjunto de reglas es o no seguro es indecidible. Sin embargo, es posible determinar la
seguridad de formas restringidas de reglas. Se obtendrán reglas inseguras, que puedan general un número
infinito de hecho, cuando una de las variables de la regla pueda abarcar un dominio infinito de valores y esa
variable no esté limitada a abarcar una relación finita.
Para definir reglas seguras de manera más formal, se utiliza el concepto de variable limitada. Una variable X
es limitada en una regla si: a) aparece en un predicado normal (no integrado) en el cuerpo de la regla; b)
aparece en un predicado de la forma X = c o c = X o (c1<= X y X <= c2) en el cuerpo de la regla, donde c, c1
y c2 son valores constantes; o c) aparece en predicado de la forma X = Y o Y = X en el cuerpo de la regla,
donde Y es una variable limitada. Se dice que una regla es segura si todas sus variables son limitadas.
Sistema LDL:
El proyecto Logic Data Languaje (Lenguaje Lógico de Dato: LDL) de Microelectronics and Computer
Corporation (MCC) se inició en 1984 con dos objetivos primarios:
• Crear un sistema que extendiera el modelo relacional y a la vez aprovechara algunas de las
características positivas de un SGBDR (Sistema de Gestión de Base de Datos Relacionales).
• Mejorar la funcionalidad de un SGBD de modo que operara como un SGBD deductivo y además
permitiera la creación de aplicaciones de propósito general.
Ahora el sistema resultante es un SGBD deductivo que se encuentra en el mercado.
Aplicaciones de LDL :
El sistema LDL se ha utilizado en los siguientes dominios de aplicación:
• Modelado de empresas: este dominio implica modelar la estructura, los procesos y las restricciones
dentro de una empresa. Los datos relacionados con ella pueden resultar en modelo ER extendido que
contiene cientos de entidades y vínculos y miles de atributos. Es posible desarrollar varias
aplicaciones útiles para los diseñadores de nuevas aplicaciones (así como para los gerentes) a partir de
esta metabase de datos, que contiene información tipo diccionario a cerca de toda la empresa.
• Prueba de hipótesis o dragado de datos: este dominio implica formular una hipótesis, traducirla a un
conjunto de reglas LDL y una consulta, y luego ejecutar la consulta contra los datos para probar la
hipótesis. El proceso se repite reformulando las reglas y la consulta. Esto se ha aplicado al análisis de
datos de genoma en el campo de la microbiología. El dragado de datos consiste en identificar las
secuencias de DNA a partir de autorradiografías digitalizadas de bajo nivel obtenidas de experimentos
con bacterias E. coli.
• Reutilización de software: el grueso del software para una aplicación se desarrolla en código estándar
por procedimientos, y una pequeña fracción se basa en reglas y se codifica en LDL. Las reglas dan
origen a una base de conocimientos que contienen los siguientes elementos:
♦ Una definición de cada módulo C empleado en el programa.
4
♦ Un conjunto de reglas que define las formas en que los módulos pueden exportar / importar
funciones, restricciones, etc.
La base de conocimientos puede servir para tomar decisiones referentes a la reutilización de subconjuntos del
software. Los módulos pueden recombinarse para satisfacer tarea específicas, en tanto se satisfagan las reglas
pertinentes. Se está experimentando con esto en el software bancario.
Hardware:
Físicamente, las bases de datos deductivas casi siempre se almacenan en medios de acceso directo, por lo
regular discos magnéticos de cabeza móvil, aunque en algunos sistemas pudieran utilizarse otros medios
(tambores, discos ópticos) en vez de discos o además de discos. Los tiempos de acceso a disco son mucho más
largos que los de acceso a la memoria principal: 400 milisegundos o más para un disco flexible, y 30
milisegundos o menos para un disco "rápido" grande. El acceso a la memoria principal será con toda
probabilidad cuatro o cinco órdenes de magnitud más rápido que el acceso a disco en un sistema dado. Por lo
tanto, un objetivo prioritario de desempeño en sistemas de Bases de Datos Deductivas es reducir al mínimo el
número de accesos a disco (E/S a disco). Cualquier organización de los datos en el disco se denomina
estructura de almacenamiento, la cual debe ser elegido el proceso de diseño, a esto se le conoce como diseño
físico de Bases de Datos Deductivas.
Algunas de las estructuras de almacenamiento utilizadas con mayor frecuencia en los sistemas actuales son la
indexación, hash, cadenas de apuntadores y técnicas de compresión.
Se han hecho varias sugerencias alternativas para crear hardware especial enfocado a las funciones de gestión
de datos. Estas alternativas cuyo nombre genérico es máquinas (o computadores) de Bases de Datos, incluyen
procesadores dorsales, dispositivos inteligentes, sistemas multiprocesadores, sistema de memoria asociativa y
procesadores de propósito general.
Arquitectura de una SABD Deductivo:
A continuación se muestra la arquitectura de una SABD Deductivo con su dos componentes fundamentales:
un módulo deductivo y un SABD relacional.
Reglas generales hechos elementales
(datos implícitos) (datos explícitos)
SABD Deductivo
Conclusión:
Se ha presentado una introducción a una rama relativamente nueva de la gestión de Bases de Datos: los
Sistemas de Bases de Datos Deductivas. Este campo acusa la influencia de los lenguajes de programación de
lógica, sobre todo de Prolog. Un subconjunto de Prolog, llamado Datalog que contiene cláusulas de Horn
libres de funciones, es el que se usa primordialmente como fundamento de los trabajos con Bases de Datos
Deductivas en la actualidad.
Una cláusula de Horn es una fórmula en la lógica de primer orden que se , que por las propiedades de las
conectivas lógicas, es equivalente a la siguiente fórmula:
B1 " ... " Bn ! A
5
la cual será denotada de la siguiente forma:
A ! B1 " ... " Bn
Y se llama también cláusula de bases de datos.
El área de las Bases de Datos Deductivas todavía está en una etapa experimental. Su adopción por parte de la
industria impulsará su desarrollo.
Bibliografía
• González Alvarado, Carlos. Sistema de Bases de Datos. Editorial Tecnológica de Costa Rica, Primera
Edición, 1996.
• Elmasri, Ramez. Sistemas de Bases de Datos. Editorial Addison −Wesley Iberoamericana S−A.
Segunda Edición, 1997.
• www.google.com
• www.rincondelvago.com
Módulo Deductivo
SABD Relacional
6
Descargar