martes, 27 de septiembre de 2011

La forma clausal y las cláusulas de Horn

Forma clausal

todas las variables de la formula estan cuantificadas universalmente, no es necesario incluir cuantificadores universales. Todos los cuantificadores se eliminan y todas las variables de la formula quedan cuantificadas implicitamente

la formula se compone de varias clausulas y cada clausula se compone de varias literales conectadas exclusivamente por conectores logicos OR. Entonces toda clausula es una disyuncion de literales

Las clausulas mismas se conectan exclusivamente mediante conectores logicos AND para construir una formula. Entonces la forma clausal de una formula es una conjuncion de clausulas

Clausula de Horn

Una cláusula de Horn es una regla de inferencia lógica con una serie de premisas (cero, una o más), y un único consecuente. Las cláusulas de Horn son las instrucciones  básicas del lenguaje de programación Prolog, de paradigma declarativo.

En lógica matemática, una cláusula de Horn es una cláusula (una disyunción de literales), con a lo sumo, uno positivo literal. Lleva ese nombre después que el lógico Alfred Horn, que fue el primero en señalar la importancia de estas cláusulas en 1951, en el artículo "On sentences which are true of direct unions of algebras".

Una cláusula de Horn con exactamente un literal positivo es una cláusula definitiva, una cláusula de Horn sin literales positivos a veces se denomina "cláusula de un objetivo",  sobre todo en la lógica de programación. Una fórmula de Horn es una forma normal conjuntiva cuyas cláusulas son todos de Horns, en otras palabras, se trata de una conjunción de  cláusulas de Horn. Un doble cláusula de Horn es una cláusula con a lo sumo, uno negativo literal. Las cláusulas de Horn vienen a desempeñar un papel fundamental en la lógica de 
programación. El siguiente es un ejemplo de una cláusula de Horn definitiva:

~ p V ~q V. . .  v ~t v u

Esta fórmula también puede ser escrita equivalentemente como una implicación:

(p^q^....^t) -> u

Relación entre el Lenguaje Lógico de Datos LDL y un Sistema de Gestión de Bases de Datos Relacional SGBDR.

LDL: proyecto Logic Data Languaje 

sus objetivos fueron crear un sistema que extendiera el modelo relacional y que a la vez aprovechara algunas características positivas de un SGBDR y Mejorar la funcionalidad de un SGBD de modo que operara como SGBD deductivo y que ademas permitiera la creacion de aplicaciones de propósito general.

Notación Prolog / Datalog

La notación Prolog/Datalog se basa en proveer predicados con nombre unicos. Un predicado tiene un significado implicito, sugerido por su nombre y un numero fijo de argumentos.  Si todos los argumentos son valores constantes el predicado dice que un determinado hecho es verdadero. Por otro lado si el predicado tiene variables como argumentos, se le considera una consulta o bien parte de una regla o restriccion.


Una regla tiene la forma: cabeza :- cuerpo y por lo regula tiene un solo predicado a la izquierda del simbolo :- y uno o mas predicado a la derecha del simbolo :-

Prolog contiene varios predicados integrados que el sistema puede interpretar. Estos suelen incluir el operador de comparacion de igual = (X,Y) que devuelve verdadero si x e y son identifocs. Otros operadores de comparacion de numeros, como < > <= y >=. Funciones aritmeticas como +,-,*,/. 

Por lo regular una consulta contiene un simbolo de predicado con algunos argumentos variable y su significado es deducir las diferentes combinaciones de constantes que cuando se enlazan a las variables pueden hacer que se cumpla el predicado.

Datalog contiene los mismo predicados  integrados que el Prolog, una literal; que es una formula atómica llamada literal positiva o una formula  precedida por not llamada literal negativa. En datalog estas formas se convierten primero a lo que se conoce como forma clausal antes de expresarse en Datalog.

Relación existente entre base de datos lógicas, base de datos expertos y base de datos de conocimientos

Base de datos logica: base de datos con capacidad de definir reglas con las cuales deducir o inferir informacion adicional a partir de los hecho almacenados en las bases de datos, también se le llamas base de datos deductiva.

Base de datos expertos: se basa en conocimientos que se extraen de expertos en la aplicacion y se refieren a un dominio de aplicacion mas que a conocimientos inherentes en los datos.

Base de datos basados en conocimientos: los datos residen en la memoria principal por lo que la gestion de almacenamiento secundario no viene al caso.

Estas bases de datos aplican tecnicas que se desarrollaron en el campo de la inteligencia artifical, como redes semanticas, los marcos y las reglas para capturar conocimientos específicos de un dominio.

Tipos de base de datos distribuidas

Por grado de homogeneidad:

si todos los servidores utilizan software identico y todos los cliente emplean software identico es SGBDD HOMOGÉNEO caso contrario HETEROGÉNEO

Por grado de autonomia local:

Si todo el acceso al sgbdd debe hacerse a travez de un cliente NO TIENE AUTONOMIA LOCAL por otro lado si se permite a las transacciones locales acceso directo a un servidor, el sistema tendrá cierto grado de autonomía local.

Por grado de integracion de los esquemas:

Si un usuario percibe un solo esquema integrado sin informacion alguna relativa a la fragmentacion replicacion o distribución se dice que el SGBDD tiene un alto grado  de transparencia de distribucion

Si el usuario puede ver toda la fragmentación, reparto y replicacion el sgbdd no tiene transparencia de distribucion ni integracion de esquemas

SGBDD Federado:

cada servidor es un SGBD centralizado independiente y autónomo que tiene sus propios usuarios locales, transacciones locales y DBA y por ende posee un alto grado de autonomia local. Cada servidor puede autorizar el acceso a porciones especificas de su base de datos definiendo un esquema de exportación, el cual especifica la parde de la base de datos a la cual puede tener acceso cierta clase de usuarios no locales

técnicas de fragmentación, replicación y reparto de datos para el diseño de base de datos distribuidas

El problema de fragmentación se refiere al particionamiento de la información para distribuir cada parte a los diferentes sitios de la red. Inmediatamente aparece la siguiente pregunta: ¿cuál es la unidad razonable de distribución?. Se puede considerar que una  relación completa es lo adecuado ya que las vistas de usuario son subconjuntos de las relaciones. Sin embargo, el uso completo de relaciones no  favorece las cuestiones de eficiencia sobre todo aquellas relacionadas con el procesamiento de consultas.
La otra posibilidad es usar fragmentos de relaciones (sub-relaciones) lo cual favorece la ejecución concurrente de varias transacciones  que accesan porciones diferentes de una relación. Sin embargo, el uso de sub-relaciones también presenta inconvenientes. Por ejemplo,  las vistas de usuario que no se pueden definir sobre un solo fragmento necesitarán un procesamiento adicional a fin de localizar  todos los fragmentos de una vista. Aunado a esto, el control semántico de datos es mucho más complejo ya que, por ejemplo,  el manejo de llaves únicas requiere considerar todos los fragmentos en los que se distribuyen todos los registros de la relación.

En resumen, el objetivo de la fragmentación es encontrar un nivel de particionamiento adecuado en el rango que va desde tuplas o atributos hasta relaciones completas.

existen 2 tipos:

Fragmentación horizontal: Un fragmento horizontal de una relacion es un  subconjunto de las tuplas de esa relación. Las tuplas que pertenecen al fragmento horizontal se especifican mediante una condicion sobre uno o más de los atributos de la relacion. Con frencuencia solo interviene un atributo.




Fragmentación vertical: Un fragmento vertical de una relacion mantiene solo ciertos atributos de la relacion.



Replicación

Resulta util para mejorar la disponibilidad de datos. Esto puede mejorar la disponibilidad notablemente
porque el sistema puede seguir operando mientras, por lo menos, uno de los sitios este activo. Tambien mejorar el rendimiento de la obtencion de datos en consultas globales porque el resultado de semejante consulta se puede obtener localmente en cualquier sitio. 

La desventaja es que puede reducir drasticamente la rapidez de operaciones de actualizacion debido a que una sola actualizacion logica debera ejecutar con todas y cada una de las copias de la base de datos a fin de mantener consistencia. 

Reparto de datos

Cada fragmento o copia se debe asignar a un sitio determinado. La eleccion de sitios y el grado de replicación depende de los objetivos de rendimiento y disponibilidad para el sistema y de los tipos y frecuencias de transacciones introducidas en cada sitio.

Relación existe entre fiabilidad y disponibilidad en una base de datos distribuida

Son dos ventajas potenciales de las bases de datos distruibuidas que se citan mas comunmente. La fiabilidad se define a grandes rasgos como la probabilidad de que un sistema este en funciones en un momento determinado, y la disponibilidad de que un sistema este disponible continuamente durante un intervalo de tiempo cuando los datos y el software del SGBD estan distribuidos en varios sitios, un sitio puede fallar mientras que los demas siguen operando.
Esto mejora la fiabilidad como la disponibilidad. Se logran mejoras adicionales si se replican con un criterio adecuado, los datos y el software en mas de un sitio.En un sistema centralizado, el fallo de un solo sitio hace que el sistema completo deje de estar disponible para todos los usuarios.