Comparación Con Un Lenguaje Imperativo
Enviado por ivanmr23 • 27 de Agosto de 2013 • 207 Palabras (1 Páginas) • 261 Visitas
Comparación con un lenguaje imperativo:
Usando Prolog:
• Una sola regla.
• Entre 1 y 4 líneas de código.
• 5 minutos de desarrollo.
• No se necesita expertos.
Usando C++:
• 150 líneas de código
• Entre 1 hrs. A 2 hrs.
• Una hora para construir un lote de pruebas
• Programadores con experiencia.
Prolog y base d datos relacionales.
Objetivo:
• Analizar las similitudes entre las bases de datos relacionales y prolog.
• Operadores básicos del algebra relacional y su codificación en SQL.
• Implementar una regla prolog para cada operador algebraico.
Fundamentos:
Las bases de datos relacionales están sólidamente fundamentadas en:
• La teoría de conjuntos.
• La lógica de primer orden.
Algebra relacional.
Operadores unarios:
• π es el operador de proyección y se denota con la letra P del alfabeto griego.
• £ (sigma) es el operador de selección y se denota con la letra s del alfabeto griego.
Sintaxis.
πxE donde E es una expresión algebraica y x es una lista de atributos.
£ØE donde Ø es una expresión booleana y E es una expresión algebraica.
Ejemplo de proyección.
Tabla de insumos.
Nombre precio. Nombre usuarios.
arena 20
cemento 80
cal 50
hierro 120
Arena
Cemento
Cal
Hierro
Como se hace en SQL.
Select nombre
From insumo;
Con selección:
£ØE (se lee: la selección E según Ø).
Supongamos que E es una relación r; entonces este operador muestra solamente los elementos (filas) de r para las cuales la evaluación de Ø sea verdadera.
Con selección elegimos filas y con proyección elegimos columnas
£ precios < 80 insumos
En SQL:
Select* (todos los atributos)
From insumos
Where precios <80
...