martes, 27 de septiembre de 2011

Bases de datos deductivas


Base de datos lógica, Sistema de Base de datos experto y Sistema de Base de datos de conocimientos

  • Base de datos lógica: Aquella cuyo fundamento teórico está basado en lógica matemática.
  • Sistema de Base de datos experto y Sistema de Base de datos de conocimientos: Incluyen funciones de razonamiento e inferencia y emplean técnicas de inteligencia artificial. Los datos están en la memoria principal y no necesitan almacenamiento secundario.

Notación Prolog / Datalog

Prolog se basa en proveer predicados con nombres únicos. Estos tienen un significado implícito y un determinado número de argumentos. Si los argumentos son constantes (números o letras minúsculas), el predicado indica que un hecho es verdadero. Si los atributos son variables (letras mayúsculas), es una consulta o regla/restricción.

Datalog es un lenguaje para base de datos deductivas que es sintácticamente un subconjunto de Prolog. Los programas se construyen a partir de objetos básicos llamados fórmulas atómicas.



Lenguaje Lógico de Datos 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.

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.
    • 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.


Forma clausal

La forma clausal es más sencilla que la estándar, aunque esta última es más natural. La propiedad importante de la forma clausal es que: un conjunto de wff en forma estándar es inconsistente si y sólo si el conjunto de cláusulas correspondiente es inconsistente. Cuando nos referimos al conjunto de cláusulas correspondiente nos referimos a aquellas convertidas a partir de la forma estándar. En realidad la forma clausal es un subconjunto restringido de la forma estándar pero que cuenta con algoritmos eficientes para razonar sobre ellas.

Definamos entonces que entendemos por cláusulas. Para ello primero debemos dar la definición de fórmula atómica y de literal:

  • Fórmula Atómica: siendo los ti términos y un símbolo predicativo, es una fórmula atómica
  • Literal: Sea F una fórmula atómica, entonces F y -F son literales. Es decir los literales son las formulas atómicas y su negación.

Pasaje a Forma Clausal

Toda sentencia en forma estándar puede ser convertida a forma clausal, dando por resultado un conjunto de cláusulas. La conversión preserva la consistencia lo cual es importante para luego operar sobre las cláusulas mediante resolución.

El pasaje a forma clausal se puede realizar aplicando cinco reglas:

  • Regla 1: Eliminar implicaciones: para ello se pueden utilizar las siguientes equivalencias:




Siendo A, B fórmulas. El símbolo  representa la doble implicación (si y sólo si) es decir:
(AB )^(B A).

  • Regla 2: Desplazar negaciones: utilizamos las siguientes equivalencias:


Siendo A, B fórmulas y x una variable.

  • Regla 3: Desplazar Disyunciones: para desplazar las disyunciones al interior de las sentencias de tal forma que conecten literales (átomos o átomos negados), podemos aplicar las siguientes equivalencias:

Siendo A, B, C fórmulas y x una variable que no aparece en A.

Para tener la equivalencia completa es necesario considerar la propiedad conmutativa de la disyunción:
A v B = B v A

  • Regla 4: Eliminación de cuantificadores existenciales.

Las cláusulas se consideran cuantificadas universalmente, por lo cual no es necesario tratar a los cuantificadores universales. Pero sí es necesario tratar a los cuantificadores existenciales. La eliminación de un cuantificador existencia introduce una sentencia que no es equivalente, que implica la sentencia original pero no es implicada por esta. Aunque mantiene la consistencia que es el punto que más nos interesa.

Si tenemos la sentencia A donde x1…….. xn y v son variables. Puede ser reemplazada por la sentencia B donde B es obtenida de A sustituyendo todas las apariciones de v en A por el término F(x1….xn) , siendo F una función.


  • Regla 5: Expresar las disyunciones como cláusulas (en forma norma conjuntiva). Se trata de expresar disyunciones como ser:


Para mostrar la aplicación de las reglas anteriores daremos una afirmación en lenguaje natural, luego lo escribiremos en forma estándar y la convertiremos a forma clausal.


Cláusulas de Horn

La importancia de este tipo de cláusulas residen en su eficiencia computacional para inferir sobre ellas por sobre las cláusulas comunes. La aplicación de refutación por resolución en cláusulas de Horn es un mecanismo ampliamente utilizado. El lenguaje de programación Prolog, se basa en este tipo de cláusulas y los programas implementados en él se denominan programas lógicos definidos. 

Una Cláusula de Horn es una cláusula con a lo sumo un literal positivo

Tenemos tres tipos de cláusulas de Horn:

  • Tipo I, un átomo simple (hecho)
  • Tipo II, una implicación (llamada regla) cuyo antecedente consiste de una conjunción de literales positivos y el consecuente es sólo un literal positivo: L1^L2…^Ln-1 Ln donde las L son literales positivos. Muchas veces se nota: L1,L2,…,Ln-1 Ln .
  • Tipo III. Un conjunto de literales negados, que puede notarse como una implicación sin consecuente L1, L2…Ln

La notación utilizando implicación es la preferida para escribir cláusulas de Horn y resulta equivalente a la notación utilizando la disyunción de literales. Una cláusula de Horn notada como disyunción finita de literales, siendo las L literales, se escribe así: -L1v-L2v….-Ln-1 vLn ;
lo cual pude notarse como conjunto: {-L1,-L2,…..-Ln-1, Ln} y es equivalente a: 
L1,L2,…,Ln-1 Ln (las comas son conjunciones) 

En general cualquier cláusula puede escribirse como implicación, dando lugar a lo que se conoce como forma normal conjuntiva. La equivalencia es directa, si tenemos una cláusula de la forma A1 v….vAn v-B1 v….v-Bn equivale a: B1^...^BnA1,v…v An ; que podemos notar (invirtiendo la flecha pero con el mismo significado) A1…An ← B1……Bn





Bases de datos distribuidas y arquitectura cliente servidor


Relación entre fiabilidad y disponibilidad 

  • La fiabilidad es la probabilidad de que un sistema funcione en un determinado momento.
  • La disponibilidad es la probabilidad de que un sistema esté disponible durante un determinado periodo.

En una base de datos distribuida, si un sitio falla, los demás pueden seguir funcionando. Es decir, los únicos datos a los que no se puede acceder son los del sitio caído. Pero esto se soluciona si se tiene copia de todos los datos en otros sitios.


Fragmentación de Datos

  • Fragmentación Horizontal:  Es un subconjunto de tuplas de una relación que cumplen una determinada condición, y pueden ser asignados a diversos sitios de la base de datos distribuida.
  • Fragmentación Vertical: Es el subconjunto de algunos campos de la relación. Es necesario incluir la clave primaria en todo fragmento vertical para luego poder reconstruir las distintas relaciones.
  • Fragmentación Mixta: Es una mezcla de las otras dos fragmentaciones.
  • Esquema de fragmentación: Es una definición de conjunto de fragmentos que incluye todos los atributos y tuplas de la base de datos.
  • Esquema de reparto: Es una descripción del reparto de fragmentos entre los sitios de la base de datos y especifica donde se almacena cada uno de ellos.


Replicación y Reparto de Datos

Replicación es cuando un fragmento está almacenado en más de un sitio de la base de datos.

  • Replicación completa es cuando se replica toda la base de datos, lo cual permite hacer consultas desde cualquier sitio, peor también reduce la velocidad de las operaciones.
  • Reparto no redundante es en el que no existe ninguna replicación.
  • Replicación parcial es cuando se replican algunos fragmentos de la base de datos y otros no.
  • Esquema de replicación: Describe la replicación de los fragmentos.
  • Reparto de datos: Consiste en la asignación de un sitio a cada uno de los fragmentos o copias de fragmentos.


Tipos de base de datos distribuidas

Según el grado de homogeneidad:

  • Homogénea: Todos los servidores y clientes usan software idéntico.
  • Heterogénea: Los servidores y/o clientes usan distinto software.

Según el grado de autonomía local:

  • Sin autonomía local: Todo acceso a la base de datos debe hacerse mediante un cliente. Solo hay un esquema conceptual.
  • Con autonomía local: Las transacciones locales tienen acceso directo a un servidor. En un Sistema de Multibases de datos o SGBBDD federado, cada servidor es un SGBD independiente y define un esquema de exportación, que especifica a que parte de la base de datos puede acceder un usuario no local.

Según el grado de integración de los esquemas

  • Con transparencia de distribución: El usuario percibe un esquema integrado sin información sobre la fragmentación, replicación o distribución.
  • Sin transparencia de distribución: El usuario ve la fragmentación, replicación y distribución.