Um banco de dados dedutivo é capaz de definir regras (dedutivas) que permitem derivar dados a partir das relações básicas, podendo deduzir ou inferir informação adicional à partir de fatos que estão armazenados.

Existem um grande numero de pesquisas com relação ao banco de dados dedutivo, mas não são muito utilizados no desenvolvimento de aplicações do mundo real, infelizmente podemos dizer que é uma tecnologia mais teórica do que pratica.

O que é um banco de dados dedutivo?

É um sistema de banco de dados que inclui capacidades para definir regras que possam deduzir ou inferir informações adicionais a partir de fatos que estão armazenados no banco de dados.

Conceitos

  • Linguagem declarativa: define os objetivos do programa
  • Máquina de Inferência: deduz novos fatos a partir de interpretações das regras no banco de dados

O banco de dados dedutivo pode ser dividido em duas partes:

  • Banco de Dados Extensional (BDE): formado pelo conjunto de fatos básicos, contidos nas relações base, que forma explicitamente inseridos.
  • Banco de Dados Intensional (BDI): formado pelas informações contidas nas relações derivadas, deduzidas pela aplicação das regras dedutivas sobre o BDE.

Especificações

Fatos

São especificados de forma similar às relações, exceto pelos atributos que não precisam ser especificados

Regras

São similares às visões das relações. Elas especificam relações virtuais que não são atualmente armazenadas mas podem ser formadas por fatos aplicando mecanismos de inferência baseados nas especificações das regras.

Interpretação de regras

Define uma interpretação exata que pode não coincidir com a interpretação teórica.

É um procedimento computacional que fornece uma interpretação computacional do significado das regras.

Prova teórica

  • Considera os fatos e as regras como verdade ou axiomas
  • Regras são chamados de axiomas dedutíveis, logo podem ser usados para deduzir novos fatos.

Modelo teórico

Dado um domínio finito de valores constantes, são definidos predicados para toda combinação de valores de argumentos. Assim, determina-se quando um predicado é verdadeiro ou falso.

Interpretação

Especificar as combinações de argumentos para tornar o predicado verdadeiro e determinar todas as outras combinações para tornar o predicado falso.

Uma interpretação é chamada de modelo para um conjunto de regras se estas regras são sempre verdade, isto é mesmo que os valores dos predicados destas regras sejam alterados, as regras continuam sendo verdade.

Especificar as combinações de argumentos para tornar o predicado verdadeiro e determinar todas as outras combinações para tornar o predicado falso.

Modelo

Uma interpretação é chamada de modelo para um conjunto de regras se estas regras são sempre verdade, isto é mesmo que os valores dos predicados destas regras sejam alterados, as regras continuam sendo verdade.

Modelo Minimo

Quando um modelo para um conjunto regras permanece verdade ou falso mesmo que haja mudança em alguns fatos destas regras.

Interpretação computacional: define um mecanismo de inferência que é usado pelo sistema e banco de dados para deduzir fatos a partir das regras.

Mecanismos de inferência

Botton-Up

Máquina de inferência inicia com os fatos e aplica as regras para gerar novos fatos.

Top-Down

Máquina de inferência inicia com o objetivo da consulta e tenta achar combinações de variáveis de fatos válidos no banco de dados.

Exemplos

Fatos

  • João é filho de André
  • Marcos é irmão de André

Regras

  • João não tem irmãos
  • João não tem primos

Dedução

  • Marcos é tio solteiro de André

Principais problemas

Linguagem de consulta utilizada é baseada no Datalog (evolução do Prolog), criada especificamente para uso com bancos de dados. A forma com que os atributos de uma relação são referenciados - pela sua posição e não pelo seu nome - é uma característica incômoda. Este tipo de implementação não permite que se mantenha a base de dados já instalada, tendo que convertê-la para o SGBD sobre o qual o mesmo foi criado.

Com isso finalizo este artigo e até o próximo.

Confira alguns cursos de Banco de Dados da DevMedia

Curso SQL Server

Curso de MySQL completo