AULA 5 PGC Sistemas de Banco de Dados Profa. Sandra de Amo

Slides:



Advertisements
Apresentações semelhantes
Árvores CC/EC/Mestrado Teoria dos Grafos ‏ 1.
Advertisements

Lógica de Predicados e Representação de Conhecimento
Capítulo 8 A linguagem da Lógica de Predicados
Capítulo 9 A semântica da Lógica de Predicados
Álgebra Relacional Marcelo Mendes Manaus
Percursos em um grafo 2010/1 Teoria dos Grafos (INF 5037/INF2781)
Linguagens relacionais
Tópicos de Lógica Proposicional
Lógica de Predicados Sintaxe. O que não é possível expressar em Lógica Prop. Todo tricolor é um campeão. Roberto é tricolor. Logo Roberto é um campeão.
Introdução à Programação Lógica
Modelos de Preferências em Inteligência Artificial CP-Nets
Equivalência de Autômatos
SQL 3 Recursão em SQL AULA 7 PGC Sistemas de Banco de Dados
Otimização de Consultas em SQL Parte I - Planos de Execução e Equivalências de Expressões da Álgebra Relacional AULA 19 Profa. Sandra de Amo Programa.
Cálculo Relacional Datalog não-recursivo
Gerenciamento de Banco de Dados
SQL Exercícios de Revisão
Modelos de Preferências AULA 15 DATA MINING Sandra de Amo.
Lema do Bombeamento – Gramáticas Livres do Contexto
Algoritmos para Seleção com Condições Gerais AULA 17 Profa. Sandra de Amo GBC053 – BCC
Teorema da Recursão Teoria da Computação
Pós-graduação em Ciência da Computação – UFU
Exercicio – Revisão Método da Resolução e Ponto Fixo
Problemas NP-completos
Exercícios para entregar
Algebra relacional nomeada e não-nomeada
Datalog Recursivo AULA 6 PGC Sistemas de Banco de Dados
Otimização de Consultas em SQL Planos de Execução e Equivalências de Expressões da Álgebra Relacional AULA 24 Profa. Sandra de Amo GBC053 – BCC
INE Fundamentos de Matemática Discreta para a Computação
Teoria dos Grafos – Aula 3 Árvores
Linguagens Livres de Contexto
autômatos finitos com transições e
Números Complexos 1 Prof. Marlon.
DEDUÇÃO NO CÁLCULO PROPOSICIONAL
Linguagem de 1ª ordem da teoria de conjuntos
A Lógica das Sentenças Abertas Profa. Ana Florencia Aula 9
Colégio da Imaculada Curso Técnico em Informática Álgebra Relacional
Algoritmos em Grafos Conceitos principais Prof. André Renato
Grafos Árvores Geradoras.
Teoria dos Grafos Definições e Terminologia
Informática Teórica Engenharia da Computação
Otimização de Consultas em SQL Planos Alternativos AULA 24 Profa. Sandra de Amo GBC053 – BCC
Operações com grafos União Exemplo
DISTRIBUIÇÕES AMOSTRAIS
AULA 26 Profa. Sandra de Amo GBC053 – BCC
Introdução a Lógica Prof. Luiz Carlos Gabi.
Linguagens lógicas 2013 – Luiz Mauricio Nascimento Silva
Otimização de Consultas em SQL Planos de Execução
Capítulo 11 Programação Lógica
Cálculo relacional Lílian Simão Oliveira.
SEMÂNTICA.
Lógica de Predicados Tableaux semânticos.
Lógica de Predicados Sintaxe.
André Luiz da Costa Carvalho
UNIVERSIDADE SEVERINO SOMBRA
Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo
Disciplina Análise de Algoritmos Bacharelado em CC
Cálculo Relacional.
Banco de Dados Dedutivos
Como analisar um algoritmo
A Classe NP Teoria da Computação Profa. Sandra de Amo.
Problemas NP-completos e Programação Dinâmica
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.
Números Primos – algoritmos e aplicações
Operações Aritméticas AULA 3 Análise de Algoritmos Pós-graduação em Ciência da Computação – UFU Profa. Sandra de Amo.
Metodologia da Pesquisa em Ensino de Ciências I
TEORIA DOS NÚMEROS Aula 2 – Princípio da Indução Finita
Algoritmos para Seleção AULA 23 Profa. Sandra de Amo GBC053 – BCC.
Colégio da Imaculada Colégio da Imaculada Curso Técnico em Informática
Prof. Mário Alves Aula de Revisão da AV1 FUNDAMENTOS DE ANÁLISE I.
Transcrição da apresentação:

Equivalência : Algebra Relacional Cálculo Relacional Datalog não-recursivo AULA 5 PGC 107 - Sistemas de Banco de Dados Profa. Sandra de Amo Pós-graduação em Ciência da Computação – UFU 2012-2

Equivalência de Linguagens de Consultas Algebra Relacional Cálculo Relacional Seguro Datalog Não-recursivo Ok !

Datalog não-recursivo  Algebra Relacional

Datalog não recursivo  Algebra Relacional Para toda consulta Datalog (não-recursivo) q existe uma consulta da Algebra Relacional equivalente. Assim, toda consulta Datalog não-recursiva pode ser calculada através dos operadores da Algebra relacional.

Datalog não recursivo  Algebra Relacional Vamos definir uma expressão E(X1,...,Xn) correspondente a cada regra p(x1,....,xn) : - p1(A11,...,A1k1), p2(A21,...,A2k2),...

Datalog não recursivo  Algebra Relacional Consideremos o corpo da regra p1(A11,...,A1k1), p2(A21,...,A2k2),... Sejam x1, ...., xn todas as variáveis aparecendo no corpo da regra (Passo 1) p1(A11,...,A1k1)  Ei(Y11,...,Y1k1) Q = ΠX σF Ei Ex : q(x,y):- p1(x,y,a), p2(x,z), w=z, x < y variáveis do corpo = {x,y,z,w} Q1(X,Y) = ΠXY σW=a E1(X,Y,W) Q2(X,Z) = E2(X,Z)

Datalog não recursivo  Algebra Relacional (Passo 2) Para cada variável x não aparecendo em predicados ext. ou int. do corpo da regra, constrói-se uma expressão D x aparece em x=a ou a=x constrói D(X) = {a} x aparece em x = z e z aparece em um predicado pi D(X) = ρ(Z X) ΠZ Ei onde Z é o atributo correspondente a z em pi Exemplo q(x,y):- p1(x,y,a), p2(x,z), w=z, x < y D(W) = ρ(Z W) ΠZ E2(X,Z)

Datalog não recursivo  Algebra Relacional (Passo 3) Q = junção dos Q1,...,Qn com os D Exemplo: q(x,y):- p1(x,y,a), p2(x,z), w=z, x < y Q(X,Y) = ΠXY σT=a E1(X,Y,T) E2(X,Z) D(W) = ρ(ZW) (ΠZ E2(X,Z))

Datalog não recursivo  Algebra Relacional (Passo 4) Expressão final correspondente à regra E = σF Q F corresponde às condições X op Y aparecendo no corpo da regra X, Y são variáveis aparecendo na cabeça da regra Exemplo q(x,y):- p1(x,y,a), p2(x,z), w=z, x < y E(X,Y) = σX<Y Q(X,Y) onde Q(X,Y) = ΠXY σW=a E1(X,Y,W) E2(X,Z) D(Z) = ΠZ E2(X,Z)

Exemplo p(x,y,z) :- q(x,a), r(x,y), z = y, x > y. Q1(X) = ΠX σW=a Q(X,W) Q2(X,Y) = R(X,Y) D(Z) = ρ(Y Z) (ΠYR(X,Y)) E(X,Y,Z) = σ X > Y (Q1(X) R(X,Y) D(Z))

Exercicio p(x,y) :- q(a,x), r(x,z,w), s(y,z), w = x, x > y Construir a expressão E(X,Y) correspondente à regra

Datalog não recursivo  Algebra Relacional Retificando as regras para um mesmo predicado p, de modo que as cabeças das regras sejam iguais p(a,x,y) :- r(x,y) p(x,y,x) :- r(y,x) p(u,v,w):- r(x,y), u = a, v=x, w=y p(u,v,w):- r(y,x), u = x, v=y, w =x p(u,v,w):- r(v,w), u = a p(u,v,w):- r(v,u), w =u

Datalog não recursivo  Algebra Relacional Como obter a expressão da A. R. correspondente a uma consulta Datalog não –recursiva Retifica-se as regras do programa Constrói-se o grafo de dependência Ordena-se os predicados p1,...,pn de tal modo que se existe aresta de pi para pj, então i < j Tal ordem é possível uma vez que não existem ciclos no grafo.

Datalog não recursivo  Algebra Relacional Exemplo: p(x,y) :- q(x,y), r(x,y) q(x,y) :- t(x,z) r(x,y) :- t(x,z), z < x Ordem dos predicados t, r, q, p r p q t

Datalog não-recursivo  Algebra Relacional Seguindo-se a ordem dos predicados: Para cada predicado constrói-se expressão da A.R correspondente onde só aparecem relações do banco de dados (extensionais) Para predicados intensionais definidos por várias regras, considera-se a união das expressões fornecidas por cada regra, projetadas sobre as variáveis aparecendo no predicado.

Exemplo p(a,y):- r(x,y) p(x,y):- s(x,z), r(z,y) (1) R(Z,Y) {a}(X) q(x,x):- p(x,b) q(x,y):- p(x,z), s(z,y) Regras retificadas (1) p(x,y) :- r(z,y), x=a (2) p(x,y):- s(x,z), r(z,y) (3) q(x,y):- p(x,b), x=y (4) q(x,y):- p(x,z), s(z,y) Ordem : s, r, p, q s e r são predicados extensionais do banco de dados q corresponde à resposta (1) R(Z,Y) {a}(X) (2) S(X,Z) R(Z,Y) Expressão para o predicado p P(X,Y) = ΠXY (R(Z,Y) {a}(X) ) U ΠXY (S(Z,Y) R(Z,Y)) Exercicio: Calcular expressão Q(X.Y) correspondente ao predicado resposta Q

Cálculo Seguro  Datalog não-recursivo

Primeira idéia (errada) da prova: Vamos mostrar que se F é fórmula segura então existe uma consulta Datalog (P,pF) equivalente a F. Prova: por indução no número k de operadores lógicos de F Base da indução: k=0 Neste caso, como F é segura, F deve ser uma fórmula atômica R(x1,...,xn) Logo: P tem somente uma regra pF(x1,...,xn) :- R(x1,...,xn) Hipótese de indução: suponhamos que o resultado é verdadeiro para toda fórmula segura com k operadores. Seja F uma fórmula segura com k+1 operadores Problema: Não podemos afirmar que as subfórmulas de F são seguras e aplicar a hipótese de indução !! Exemplo: x = y ˄ r(x,y) é segura mas x = y não é !

Lembrando: árvore de fórmula segura Conectivos lógicos distintos de ˄ e ¬ Conectivo ˄* R1 ¬R2(x)

Exercício Considere a seguinte definição (por indução) de um conjunto F de fórmulas. O objetivo é mostrar que o conjunto F é exatamente igual ao conjunto de fórmulas seguras, isto é, toda fórmula de F é segura e vice-versa, toda fórmula segura está em F. Fórmulas básicas de F : ˄* (G1,...,Gk | H1,...,Hm), onde Gi são atômicas positivas do tipo R(x1,...,xn), ou x = a, ou a = x, x = y, onde y é limitada e Hi são atômicas negativas do tipo R(x1,...,xn) Se G(x,x1,...,xn) está em F então x G(x,x1,...,xn) está em F Se G1(x1,...,xn) e G2(x1,...,xn) estão em F então F(x1,...,xn) = G1(x1,...,xn) ˅ G2(x1,...,xn) também está em F Se G1,...,Gk, H1,...,Hm estão em F então ˄* (G1,...,Gk,A1,...,An | H1,...,Hm) também está em F - onde Ai são fórmulas aritméticas do tipo x = a, a = x, x = y (x ou y limitadas)

Prova (desta vez correta !) se F é fórmula segura então existe uma consulta Datalog (P,pF) equivalente a F. Prova: por indução no número k de operadores lógicos de F (˄* é considerado ao invés do ˄ e a negação não é considerada já que só pode aparecer dentro de um ˄*) Base da indução: F = ˄* (G1,...,Gk|H1,...,Hm), onde os Gi e os Hi são atômicas pF :- G1, ..., Gk, ¬H1, …, ¬Hm Hipótese de indução: Suponha que o resultado é válido para qualquer fórmula segura com k operadores lógicos (˄* considerado ao invés de ˄). Seja F uma fórmula com k+1 operadores lógicos.

Prova (continuação) F = x G(x,x1,...,xn) pF(x1,...,xn) :- pG(x,x1,...,xn) + regras que definem o pG F = G1(x1,...,xn) ˅ G2(x1,...,xn) pF(x1,...,xn) :- pG1(x1,...,xn) pF(x1,...,xn) :- pG2(x1,...,xn) + regras para o pG1 e o pG2

Prova (continuação) F = ˄* (G1,...,Gk,A1,...An| H1,...,Hm) pF :- pG1,...,pGk, A1, ... , An, ¬pH1, …, ¬pHm + regras que definem pG1, … + regras que definem pGk, … + regras que definem pH1, … + regras que definem pHm

Exemplo Considere a fórmula segura : F(x,y) = R(x,y) ˅ z w (Q(z,x) ˄ ¬ R(x,y) ˄ P(y,z) ˄ z = w) = R(x,y) ˅ z w (˄* (Q(z,x), P(y,z), z=w| R(x,y)) Consulta Datalog correspondente : (P,q) onde P é o seguinte programa ˅ ˄* R(x,y) Q(z,x) P(y,z) z=w q(x,y) :- R(x,y) q(x,y) :- q1(x,y,z,w) q1(x,y,z,w):- Q(z,x), P(y,z), z=w, ¬ R(x,y) Veja que este programa NÃO É RECURSIVO

Poder de Expressão de SQL (anterior a 1999) As 3 linguagens de consulta Algebra Relacional Cálculo Relacional “seguro” Datalog não recursivo são equivalentes, têm o mesmo poder de expressão SQL (versão anterior a 1999): basicamente Datalog não-recursivo