Banco de Dados Dedutivos

Slides:



Advertisements
Apresentações semelhantes
Estruturação de Linguagens (Pascal e C++)
Advertisements

Lógica de Predicados e Representação de Conhecimento
Python: Funções Claudio Esperança.
Introdução à Linguagem Prolog
AULA 5 PGC Sistemas de Banco de Dados Profa. Sandra de Amo
Capítulo 8 A linguagem da Lógica de Predicados
Curso: Banco de Dados I Análise de Sistemas PUC Campinas
Lógica Matemática e Computacional 7 – Introdução à Programação Lógica
Banco de Dados Relacional Estendido
Tipos de dados, Variáveis, Expressões e Operadores
Cláusulas Conjuntos de cláusulas
Tópicos de Lógica Proposicional
Expressões Lógicas e Comandos de Decisão
Introdução à Programação Lógica
Banco de Dados Dedutivo
SQL 3 Recursão em SQL AULA 7 PGC Sistemas de Banco de Dados
Cálculo Relacional Datalog não-recursivo
Datalog Recursivo AULA 6 PGC Sistemas de Banco de Dados
Subconsultas ou Consultas Aninhadas
Programação em lógica e lógica
LIFE: predicados, funções e sorts built-in Jacques Robin Paulo Oliva Leonardo Lemos DI-UFPE.
Universidade Federal do Espírito Santo Programação II Professora: Norminda Luiza.
Sistema Progol TÉCNICAS E HEURÍSTICAS. Progol – Tópicos Definição do sistema; Declarações de Modo; Construção da cláusula mais específica; Algoritmo de.
Introdução ao -calculus
2. A Linguagem Prolog.
Introdução à Modelagem Conceitual 3. Prolog
Luiz A. M. Palazzo Pelotas, maio de 2010
Lógica para Computação
Programação em Lógica Augusto Marks Batista Guilherme dos Santos Fujiyoshi Marlon Bill Santos.
INF 1771 – Inteligência Artificial
Inteligência Artificial
Conceitos Básicos.
Administração de Sistemas de Informação Banco de Dados
Inteligência Artificial: A Linguagem Prolog (parte 2)
Sintaxe e Semântica do PROLOG.
Aula Prática - Prolog Sistemas Inteligentes /~if684
Prolog Programação Lógica Ícaro A. Souza.
Conceitos de Linguagem de Programação
Aula Prática - Prolog Sistemas Inteligentes /~if684
Linguagens lógicas 2013 – Luiz Mauricio Nascimento Silva
Fábio de Oliveira Borges
Cássio Cristo Dawyson Guerra Matheu Santos
Modelo de Dados Relacional
Cálculo relacional Lílian Simão Oliveira.
Modelos Matemáticos Usados como tipos em especificações baseadas em modelos Apresentados como teorias ou sistemas formais Uma teoria é definida em termos.
Lógicas e Inferência para IA
Uma Breve Introdução á programação lógica
André Luiz da Costa Carvalho
CÁLCULO RELACIONAL Lílian Simão Oliveira. Cálculo Relacional  é uma linguagem de consulta formal. Utilizando-se de uma expressão declarativa pode-se.
Iteração – Capítulo 5 Programming from Specifications Carroll Morgan Prentice-Hall, 1994 Integrantes: Alex Motta Carlos Nascimento Paulo Maia.
Banco de Dados Aplicado ao Desenvolvimento de Software
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA ENGENHARIA DE AUTOMAÇÃO INDUSTRIAL UNIDADE 4 Itens fundamentais para Desenvolvimento de algoritmos.
Aula prática 2 Operadores e Expressões Comandos de Decisão Comentários
Operadores Relacionais e Lógicos
INTRODUÇÃO À PROGRAMAÇÃO EM LÓGICA Profa. Joseluce de Farias Cunha
Introdução a Banco de Dados Aula 04
Lógica para Computação
Sistemas Microprocessados e Microcontrolados
Cálculo Relacional.
Programação Lógica com Prolog
Bases de Dados Dedutivas Bases de dados dedutivas usam a tecnologia de linguagens de programaçao lógica para aumentar as bases de dados relacionais com.
5.2.1 Capítulo 5: Outras linguagens Query-by-Example (QBE) Datalog.
Inteligência Artificial: A Linguagem Prolog (Parte 1)
Programação de Computadores - 1
Arnaldo Rocha1995 BANCO DE DADOS Modelo Relacional.
UNIP UNIVERSIDADE PAULISTA Professor: Yure de Queiroz Lima
Interpretação do Teorema de Herbrand
PROGRAMAÇÃO LÓGICA Vinicius Ponte Machado Aula 13 – Predicados de Controle UNIVERSIDADE FEDERAL DO PIAUÍ – UFPI Departamento de Informática & Estatística.
Tipos de Dados, Variáveis, Expressões Lógicas e Aritméticas
Profº Antonio Carlos Marcelino de Paula
Transcrição da apresentação:

Banco de Dados Dedutivos Rodrigo Pereira Rodrigo Athaíde Marcos Antonio

Banco de Dados Dedutivos Introdução Datalog Predicados Regras Consultas Interpretação das Regras Datalog e sua Segurança

Banco de Dados Dedutivos Um sistema de banco de dados dedutivo é um sistema de banco de dados que pode fazer deduções (ou seja, concluir fatos adicionais) baseando-se em regras e fatos armazenados no banco de dados. Um banco de dados dedutivo usa dois tipos principais de especificações: fatos e regras. Fatos descrevem o mundo real Regras são similares as visões relacionais Podem ser recursivas.

not (P1) OR not (P2) OR ... OR not (Pn) OR Q Datalog Linguagem de consulta não procedural baseada na linguagem de programação lógica Prolog. Baseada na lógica relacional. Datalog fundamenta-se em cláusulas de Horn como linguagem de consulta a bases de dados relacionais. not (P1) OR not (P2) OR ... OR not (Pn) OR Q … P1 AND P2 AND ... AND Pn => Q

Datalog Predicado p(a1, a2, ..., an) tem número de argumentos fixo. Argumentos têm interpretação posicional. Predicado é ground se todos seus argumentos forem constantes. supervisiona(X,Y) ‘X supervisiona Y’ supervisiona(franklin,john). supervisiona(franklin,ramesh). supervisiona(franklin,joyce). Tuplas da relação SUPERVISIONA(Supervisor, Subordinado) determina fatos que definem o predicado supervisiona.

Datalog Uma regra é da forma P  Q P é um predicado relacional chamado cabeça Q é uma conjunção de predicados chamada corpo -------cabeça---- ------ corpo ------- superior(X,Y) :- supervisiona(X,Y) EXPClimbers(N) :- Climbers(_,N,exp,_) (variável anônima) Uma regra especifica que, se uma atribuição em particular às variáveis no corpo tornar todos os predicados verdadeiros, também tornará a cabeça verdadeira usando a mesma atribuição de valores constantes às variáveis.

Datalog Uma regra proporciona um modo de gerar novos fatos, que são instanciações da cabeça da regra. superior(X,Y) :- supervisiona(X,Y). Superior(X,Y) :- supervisiona(X,Z), superior(Z,Y). -> regra recursiva Subordinado(X,Y) :- superior(Y,X). SUPERVISIONA (Supervisor, Subordinado) A aplicação da regra Superior(X,Y) irá gerar novos fatos incluindo os subordinados indiretos em todos os níveis. supervisiona(james,franklin). superior(franklin,john). Superior(james,john).

Predicados Intensionais X Extencionais Predicados extensionais são aqueles cujas relações estão guardadas na bd Predicados intencionais são aqueles que são calculados aplicando uma ou mais regras.

Predicados Intensionais X Extencionais Student (123,j.smith,compsci) Student(456,k.tappet,french) Offers(cookery,baking) Offers(compsci,compilers) Enroll(123,baking) Enroll(012,compilers) InterestedIn(X,S) ¬Student(X,Y,S) InterestedIn(X,S) ¬ Enroll(X,Z) AND Offers(S,Z)

Datalog Uma consulta em Datalog envolve um símbolo de predicado, com alguns argumentos variáveis, e seu significado é deduzir todas as possíveis combinações constantes que, quando carregadas nas variáveis, possam fazer o predicado verdadeiro. SUPERVISIONA(Supervisor, Subordinado) Consultas: superior(james, Y) todos os subordinados superior(james,joyce) true

Interpretação de Regras Duas formas de análise: Prova-teórica Certifica-se se certo fato se comprova Regras são axiomas dedutivos Fatos são axiomas fundamentais Modelo-teórico A partir de fatos conhecidos como verdadeiros ou falsos, gera novos fatos

Interpretação de Regras Prova-teórica 1. superior(X,Y):- supervisiona(X.Y). (regra 1) 2. superior(X,Y):- supervisiona(X.Z), superior(Z,Y). (regra 2) 3. supervisiona(jennifer,ahmad). (axioma fundamenta, dado) 4. supervisiona(james,jennifer). (axioma fundamenta, dado) 5. superior(jennifer,ahmad). (aplicar a regra 1 em 3) 6. superior(james,ahmad). (aplicar a regra 2 em 4 e 5)

Interpretação de Regras Modelo-teórico Regras superior(X.Y) : - supervisiona(X,Y). superior(X.Y) : - supervisiona(X,Z), superior(Z.Y). Fato conhecido: supervisiona(franklin,john) é verdadeiro. Fato derivado: superior(franklin,john) é verdadeiro.

Segurança Condições para regras seguras: Cada variável que aparece no cabeçalho da regra também aparece em uma literal positiva não aritmética, no corpo da regra - Cada variável aparecendo em uma literal negativa no corpo da regra também aparece em alguma literal positiva no corpo da regra

Segurança • Algumas regras inseguras: Likes(X,Y) :- Starved(X) Lazy(X) :- NOT Climbers(_,X,_,_) • Algumas regras seguras: Likes(X,Y) :- Starved(X) AND Food(Y) Lazy(X) :- Person(X) AND NOT Climbers(_,X,_,_)

Segurança Mais exemplos: As regras abaixo são seguras? NOT superior(X.Y) : - NOT supervisiona(X,Z), superior(Z.Y) supervisor(X,Z) :- empregado(X), supervisiona(X,Y)

Obrigado.