Banco de Dados Dedutivos

Propaganda
Banco de Dados Dedutivos
Eduardo J Marcondes
Marcelo Brischke
Banco de Dados Dedutivos
• Área de intersecção entre banco de dados,
lógica e inteligência artificial.
• Capacidade de definir (deduzir) regras a
partir de fatos armazenados em sua base de
dados.
BD Dedutivo X BD inteligente
• Inteligentes
– Geralmente assumem que os dados requeridos
estão na memória principal.
– Os dados geralmente são extraídos por
aplicações inteligentes.
• Dedutivos
– Preparados para trabalhar com memória
secundária.
– Conhecimento é inerente aos dados.
BDs Dedutivos
•
•
•
•
•
Linguagem Declarativa;
Mecanismo de inferência;
Regras e fatos;
Prolog e Datalog;
DOOD´s (Dedutive Oriented Object Database).
Notação Prolog / Datalog
• Baseada em predicados com argumentos;
– Ex.: supervise(franklin,john)
Exemplo
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Facts
supervise(franklin,john).
supervise(franklin,ramesh).
supervise(franklin,joyce).
supervise(franklin,alicia).
franklin
supervise(jennifer,ahmad).
supervise(jennifer,franklin).
supervise(jennifer,jennifer).
john
ramesh
...
Rules
superior(X,Y):-supervise(X,Y).
superior(X,Y):-supervise(X,Y),superior(Z,Y).
subordinate(X,Y):-superior(Y,X).
Queries
superior(james,Y)?
superior(james,joyce)?
james
jennifer
joyce
alicia
ahmad
Regra
• superior(X,Y):-supervise
(X,Z),superior(Z,Y)
Notação Datalog
•
•
•
•
atomic formulas;
literais da forma p(a1,a2,a3,...,an);
Aridade;
Predicados embutidos:
– Predicados de comparação binária:
• <(less), <=(less_or_equal), >(greater), >=
(greater_or_equal) ;
– Predicados de comparação:
• =(equal), /=(not_equal).
Interpretação de Regras
• Prova - teórica;
• Modelo-teórico;
• Implementações um modelo intermediário.
Prova - teórica
1.
2.
3.
4.
5.
6.
superior(x,y):- supervise(x,y)
(regra 1)
superior(x,y):- supervise(x,z),superior(z,y) (regra 2)
supervise (Jennifer,ahmad)
(axioma fundamental)
supervise(james,jennifer)
(axioma fundamental)
superior(jennifer,ahmad)
(aplicando a regra 1 em 3)
superior(james,ahmad)
(aplicando a regra 2 em 4 e 5)
Modelo - teórico
•
•
•
•
Regras:
– Superior(x,y):-supervise(x,y)
– Superior(x,y):-supervise(x,z),superior(z,y)
Interpretação:
Fatos Conhecidos:
– Supervise(franklin,john) é verdadeiro
– Supervise(franklin,ramesh) é verdadeiro
– Supervise(franklin,joyce) é verdadeiro
– Supervise(jennifer,alicia) é verdadeiro
– Supervise(jennifer,ahmad) é verdadeiro
– Supervise(james,franklin) é verdadeiro
– Supervise(james,jennifer) é verdadeiro
– Supervise(x,y) é falso para todas as outras possíveis combinações (x,y)
Fatos Derivados:
– Superior(franklin,john) é verdadeiro
– Superior(franklin,ramesh) é verdadeiro
– Superior(franklin,joyce) é verdadeiro
– Superior(jennifer,alicia) é verdadeiro
– Superior(jennifer,ahmad) é verdadeiro
– Superior(james,franklin) é verdadeiro
– Superior(james,jennifer) é verdadeiro
– Superior(james,john) é verdadeiro
– Superior(james,ramesh) é verdadeiro
– Superior(james,joyce) é verdadeiro
– Superior(james,alicia) é verdadeiro
– Superior(james,ahmad) é verdadeiro
– Superior(x,y) é falso para todas as outras possíveis combinações (x,y)
Mecanismos de Inferência
Básicos para programas lógicos
• Button – up (forward chaining)
– O motor de inferência inicia com os fatos e
aplica as regras para gerar novos fatos.
• Top – Down (backward chaining)
– Inicia com o objetivo do predicado da query e
busca os fatos coincidentes com as variáveis no
banco de dados.
Programas Datalog e suas
avaliações
• Fato-definidos (ou relações);
• Regras-definidas (ou visões).
Segurança dos programas
• Um programa ou uma regra é seguro se gerar
um grupo finito de fatos.
• Big_salary(Y) :- Y>60000
• Big_salary(Y) :- employee(X), salary(X,Y), Y>60000
• Big_salary(Y) :- Y>60000, employee(X), salary(X,Y)
Uso das Operações Relacionais
• Baseado no modelo relacional;
• Assume que os predicados( relações de
fatos e resultados de query) especificam
grupos de tuplas;
• O poder adicional está nas queries
recursivas e visões baseadas em queries
recursivas.
Avaliação de Queries NãoRecursivas Datalog
• É realizada uma tradução da consulta Query
para uma expressão relacional.
• Algoritmo de avaliação.
Conceitos de Queries Recursivas
em Datalog
• Técnica da avaliação pura: Criando um
plano de avaliação de query para produzir a
resposta para a query.
• Técnica da regra reescrita: Otimiza o plano
para uma estratégia mais eficiente.
Conceitos de Queries Recursivas
em Datalog
• linearmente recursiva;
– Sg(X,Y) :-parent(X,XP), parent(Y,YP), sg(XP,YP)
• linearmente recursiva à direita.
• linearmente recursiva à esquerda.
– Direita: ancestor(X,Y):- parent(Z,Y), ancestor(X,Z)
– Esquerda: ancestor(X,Y):- ancestor(X,Z),parent(Z,Y)
Conceitos de Queries Recursivas
em Datalog
• Estratégia ingênua
– É um método iterativo, onde para cada iteração
todas as regras são aplicadas para todo o grupo
de tuplas, gerando assim todas as implícitas
tuplas.
• Estratégia Semi-Ingênua
– Em cada iteração ao invés de gerar todas as
possíveis tuplas, são geradas apenas as que
ainda não existem.
Estratégia Maravilhosa
• Não usa a relação inteira correspondente ao
predicado intencional mas sim um pequeno
grupo desta relação.
• Ex.:
– sg(X,Y) :- flat(X,Y).
– sg(X,Y) :- up(X,U), sg(U,V), down(V,Y).
Query: sg(jonh, Z)
Estratégia Maravilhosa
• top-down
– Não pesquisa caminhos irrelevantes.
– Difícil de implementar (looping infinito)
• bottom-up
– Pesquisa caminhos irrelevantes.
• A estratégia maravilhosa une o melhor dos
dois métodos.
Técnica Maravilhosa
• A técnica foca o objetivo inerente ao método top-down sem
os problemas de looping infinito, fácil término do teste e
avaliação eficiente do bottom-up.
Sg(X,Y) :- magic - sg(X,Y), flat(X,Y).
Sg(X,Y) :- magic- sg(X,Y), up(X,Y), sg(X,Y), down(X,Y).
Magic-sg(U) :- magic-sg(X), up(X,U).
Magic-sg(john).
Negação Estratificada
• modelo mínimo
• Ex.:
– p(a) :- not p(b)
– tem dois mínimos modelos: {p(a)} e {p(b)}
• Um programa é estratificado se não houver
recursão junto com a negação.
Negação Estratificada
r1 : ancestor(X,Y) :- parent(X,Y).
r2 : ancestor(X,Y) :- parente(X,Z), ancestor(Z,Y).
r3 : nocyc(X,Y) :- ancestor(X,Y), not (ancestor(Y,X)).
Negação Estratificada
• Negação localmente estratificada:
– Um programa P é localmente estratificado se
para um determinado banco de dados, quando
forem substituídas suas variáveis em todos os
possíveis caminhos, o resultado não contenha
recursão junto com negação.
Sistemas de Banco de Dados
Dedutivos
• Sistema LDL
• NAIL!
• Coral
O Sistema LDL
• Logic Data Language (LDL) é um projeto da
Microelectronics and Computer Technolology
Corporation (MCC)
• Objetivos:
– Desenvolver um sistema que estende o modelo
relacional mas explora algumas características do
RDBMS;
– Aumentar a funcionalidade de um DBMS para que além
de sua funcionalidade dedutiva ele suporte também
aplicações de propósito gerais.
• Tenta combinar a capacidade do Prolog com a
funcionalidade dos DBMS de uso geral.
NAIL!
• NAIL! (Not Another Implementation of Logic!) é um projeto
iniciado pela Universidade de Stanford em 1985 ;
• Objetivo inicial era o estudo de otimizações da lógica usada
em sistemas orientados a banco de dados, para suportar
otimizações de execução do Datalog sobre RDBMS;
• Em colaboração com o grupo MCC foi responsável por:
–
–
–
–
Grupos maravilhosos;
Primeiro trabalho em recursão regular;
Lida com negação e agregação em regras lógicas;
Negação bem fundamentadas e negações estratificadas modulares.
Coral
• Desenvolvido pela Universidade de Wisconsin at Madison;
• Baseado no LDL;
• Pode ser visto como uma linguagem de programação para
banco de dados que combina importantes características de
SQL e Prolog;
• Coral implementa um grande número de otimizações:
–
–
–
–
–
Templates maravilhosos para queries recursivas;
Ativações de projeções;
Ativações especiais para programas lineares;
Boa interface com C++;
Extremamente extensível.
• Uma característica interessante é o pacote de extensão,
que permite ao usuário examinar graficamente como um
fato é gerado.
Aplicações de Banco de Dados
Dedutivos Comerciais
• Alguns exemplos de domínios de aplicações comerciais /
industriais baseadas no banco de dados dedutivo LDL:
– Modelagem empresarial: sistema que modela estrutura, processos e
restrições organizacionais que gera como resultado um modelo ER.
Utilizado para o Design de novas aplicações.
– Teste de hipóteses e mineração de dados: este domínio envolve a
formulação de hipóteses traduzidas em regras LDL. Esse sistema
foi aplicado na análise de dados do genoma.
– Reuso de software: Obtém dados de códigos de módulos em C
usados em sistemas e utiliza regras que podem exportar e importar
funções para reaproveitamento de software.
Referências Bibliográficas
• ELMASR, Ramez; NAVATHE, Shamkant B.;
1996. Fundamentals of Database Systems.
3. Ed. Reading : Addison Wesley.
• MELO, Rubens Nascimento; 1988. Bancos
de Dados não convencionais: a tecnologia
de BD e suas novas áreas de aplicação.
Campinas - SP : UNICAMP, IMEC.
FIM!
Download