2012-06-29 25 views

Respuesta

3

Las similitudes son capturadas por el lenguaje de consulta Datalog. Here es la motivación y una mejor explicación de la conexión entre la lógica y las bases de datos. Este extracto debe abordar su pregunta:

Sin embargo, el acoplamiento Prolog y las bases de datos relacionales muestran algunas disonancias . Los hechos y las reglas en Prolog se organizan en un pedido total y la semántica de un programa Prolog depende de este orden. En el contraste , las relaciones en una base de datos se consideran conjuntos desordenados de tuplas y el resultado de una consulta es independiente de cualquier orden física . El procesamiento de los programas Prolog está orientado a tuplas, mientras que las bases de datos relacionales están orientadas a conjuntos. Prolog ofrece funciones de procedimiento como el predicado de corte para permitir que el programador controle el proceso de inferencia . El orden de evaluación de un programa Prolog es predeterminado, mientras que las expresiones en cálculo relacional son puramente declarativa y la evaluación real se deja a un procesador de consultas que puede reorganizar la consulta para fines de optimización. La optimización de consultas fue crucial para el éxito de las bases de datos relacionales. La naturaleza de procedimiento del motor Prolog deja la carga de optimización con el programador.

2

Aunque SQL y Prolog demuestran ambos conceptos lógicos de primer orden, ninguno es una implementación completa del predicate calculus.

Prolog y otros lenguajes de programación lógica dependen en gran medida de la recursión, tanto para la definición de estructuras de datos como para los predicados.

SQL per se no permite la recursión, y la introducción de procedimientos almacenados se ha realizado con limitaciones en la profundidad de anidación de tales llamadas. P.ej. SQL Server 2000 hasta 2012 permite at most 32 nested calls.

En las bases de datos relacionales, las "relaciones" se reifican como tablas (o de forma más flexible, como vistas). El aspecto más similar de Prolog es dynamic factbases, que en algunas implementaciones (SWI, Amzi) permite indexar el rendimiento, muy similar a la indexación de tablas relacionales para el rendimiento en SQL.

Aunque los RDBMS SQL están diseñados para trabajar eficientemente con grandes conjuntos de datos de los que normalmente necesita una implementación Prolog, Prolog puede al menos usarse para prototipos de la base de datos y los aspectos de proceso de un diseño de sistema.

Consulte here for a 2005 thesis que explora la extensión de bases de datos relacionales con la inferencia Prolog.

Cuestiones relacionadas