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