Banco de Dados Dedutivo Mauren Louise Sguario Coelho de Andrade Banco de Dados Dedutivo Capacidade de definir regras (dedutivas) Deriva novos dados à partir das relações básicas, podendo deduzir ou inferir informações adicional a partir de fatos que estão armazenados. O resultado é um BDD – Banco de Dados Dedutivos. Banco de Dados Dedutivo 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. Banco de Dados Dedutivo Banco de Dados Dedutivo Atualizações – Banco de Dados Extensional (BDE), formado pelo conjunto de fatos básicos, contidos nas relações base, que foram 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. Banco de Dados Dedutivo As características dos sistemas dedutivos, como a capacidade de responder a consultas recursivas, a linguagem de consulta declarativa e a dedução de novas informações, permitem que eles realizem tarefas não suportadas por bancos convencionais. Por isso, aplicações como bases de dados científicas, controle de tráfego aéreo, análise exploratória de dados são freqüentemente citadas como aplicações que encontrariam grandes vantagens se resolvidas com um BDD. Banco de Dados Dedutivo Banco de Dados Dedutivo Esclarecendo o Datalog – Linguagem baseada em lógica para uso específico em bancos de dados: o Datalog. – Não possui predicados pré-definidos, negação, disjunção e símbolos funcionais. Nele, a ordem das regras não tem importância. – Uma regra é avaliada derivando o conjunto de todas as constantes possíveis que fazem a cabeça da regra verdadeira e a interpretação do conjunto de regras fica baseada na semântica de ponto fixo. Banco de Dados Dedutivo Regras aplicadas repetidamente até um ponto fixo ser atingido, isto é, até que o estado do banco não possa ser modificado pela aplicação de uma regra. Ausência de funções, negação, disjunção, operações aritméticas e operações de comparação, simplificam as formulações teóricas e garantem que toda derivação será sempre finita. Banco de Dados Dedutivo Tapando os buracos – Criada a linguagem Dedalo (dedução, dados e lógica), utilizada pelo BDD de mesmo nome. Adicionalmente, criaram notações que permitem referenciar os atributos pelo seu nome e não por sua posição e especificar a ordem desejada das tuplas na relação derivada resultante. – A linguagem Dedalo permite o raciocínio aproximado, através de adaptações da lógica fuzzy para bancos de dados dedutivos. Banco de Dados Dedutivo Cada relação base do banco de dados deve possuir um atributo com nome padronizado cf (confidence factor), cujo valor varia de 0 a 1 e indica o fator de certeza da tupla. O Dedalo permite que se associe a cada regra um fator de certeza que determina a confiança na verdade da regra. Banco de Dados Dedutivo Atualizar de olho na segurança – As operações de atualização (inserção, exclusão e modificação) podem ser solicitadas na linguagem Dedalo utilizando um dos operadores de atualização providos por ela. Estes operadores são: ins, para inserções, del para exclusões e upd para modificações. Banco de Dados Dedutivo Regras seguras ou Permitidas. – A segurança de uma regra é garantida por uma verificação puramente sintática que decide se uma regra é tratável ou não. – A regra é dita tratável se na sua avaliação todas as variáveis estão instanciadas com constantes. – Para uma regra ser considerada segura, todas as variáveis que ocorrem no literal negativo ou na operação de comparação devem ocorrer também no literal positivo. Banco de Dados Dedutivo Gerenciando BDD com Dedalo – Ele é um conjunto de ferramentas que permitem a utilização de regras de derivação baseadas em lógica, na dedução de novas informações à partir das já existentes. As principais características do sistema Dedalo são: Banco de Dados Dedutivo Utiliza linguagem de consulta declarativa; Suporta raciocínio aproximado através de adaptações da lógica fuzzy para BDDs; Suporta relações derivadas materializadas e possui mecanismos eficientes para sua manutenção; Suporta atualizações sobre relações derivadas, buscando eliminar o não determinismo através de uma interação com o projetista da regra no momento da definição da relação derivada; Banco de Dados Dedutivo Permite a especificação de restrições de integridade, utilizando a própria linguagem do sistema, com métodos eficientes para detecção de violações; É capaz de gerar reparos para restrições de integridade violadas, o que permite corrigir uma transação sem abortá-la; Foi construído com uma arquitetura clienteservidor, onde as ferramentas Dedalo são processos clientes e o servidor é um sistema de banco de dados relacional. Banco de Dados Dedutivo A comunicação entre os dois é feita via ODBC (Open Database Connectivity), o que permite a utilização do Dedalo com qualquer gerenciador de BD relacional que possua uma interface ODBC; Por ser construído com aplicações clienteservidor Delphi ([BOR 95, BOR 95a, BOR 95b, RUB 95]), para a qual foram criados novos componentes, permite ao usuário desenvolver suas aplicações sobre BDs que utilizam o Dedalo através do próprio Delphi. Banco de Dados Dedutivo Arquitetura do sistema – Os principais BDs relacionais comerciais, como Oracle, Sybase, Watcom e Interbase, possuem interface para o ODBC. A utilização desta arquitetura pelo Dedalo, permite que ele possa ser utilizado com uma grande variedade de gerenciadores, permitindo também que bancos convencionais possam ser utilizados como bancos dedutivos.