Banco de dados dedutivo - Deductive database

Um banco de dados dedutivo é um sistema de banco de dados que pode fazer deduções (ou seja, concluir fatos adicionais) com base em regras e fatos armazenados no banco de dados (dedutivo). Datalog é a linguagem normalmente usada para especificar fatos, regras e consultas em bancos de dados dedutivos. Os bancos de dados dedutivos surgiram do desejo de combinar programação lógica com bancos de dados relacionais para construir sistemas que suportem um formalismo poderoso e ainda sejam rápidos e capazes de lidar com conjuntos de dados muito grandes. Bancos de dados dedutivos são mais expressivos do que bancos de dados relacionais, mas menos expressivosdo que sistemas de programação lógica. Nos últimos anos, bancos de dados dedutivos como Datalog encontraram novos aplicativos em integração de dados , extração de informações , rede, análise de programas , segurança e computação em nuvem.

Os bancos de dados dedutivos reutilizam muitos conceitos da programação lógica; regras e fatos especificados na linguagem dedutiva de banco de dados Datalog são muito semelhantes aos do Prolog . No entanto, diferenças importantes entre bancos de dados dedutivos e programação lógica:

  • Sensibilidade da ordem e proceduralidade: No Prolog, a execução do programa depende da ordem das regras no programa e da ordem das partes das regras; essas propriedades são usadas por programadores para construir programas eficientes. Em linguagens de banco de dados (como SQL ou Datalog), entretanto, a execução do programa é independente da ordem das regras e fatos.
  • Predicados especiais: No Prolog, os programadores podem influenciar diretamente a avaliação processual do programa com predicados especiais, como o corte , isso não tem correspondência em bancos de dados dedutivos.
  • Símbolos de função: as linguagens de programação lógica permitem que os símbolos de função criem símbolos complexos. Isso não é permitido em bancos de dados dedutivos.
  • Processamento orientado para tupla : os bancos de dados dedutivos usam processamento orientado a conjuntos, enquanto as linguagens de programação lógica se concentram em uma tupla por vez.

Referências

Leitura adicional

  • Autor: Herve Gallaire, Jack Minker , Jean-Marie Nicolas: Lógica e Bancos de Dados: Uma Abordagem Dedutiva . Editor: ACM. doi: 10.1145 / 356924.356929
  • Autor: Stefano Ceri , Georg Gottlob , Letizia Tanca: Logic Programming and Databases . Editora: Springer-Verlag. ISBN  978-0-387-51728-5
  • Autor: Ramez Elmasri e Shamkant Navathe: Fundamentals of Database Systems (3ª edição). Editora: Addison-Wesley Longman. ISBN  0-201-54263-3