Equival - PowerPoint PPT Presentation

1 / 25
About This Presentation
Title:

Equival

Description:

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 ... – PowerPoint PPT presentation

Number of Views:49
Avg rating:3.0/5.0
Slides: 26
Provided by: Sandra233
Category:
Tags: calculo | equival

less

Transcript and Presenter's Notes

Title: Equival


1
Equivalência Algebra RelacionalCálculo
RelacionalDatalog 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

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

Ok !
3
Datalog não-recursivo ? Algebra Relacional
4
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.

5
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),...

6
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 sF Ei
  • Ex q(x,y)- p1(x,y,a), p2(x,z), wz, x lt y
  • variáveis do corpo x,y,z,w
  • Q1(X,Y) ?XY sWa E1(X,Y,W)
  • Q2(X,Z) E2(X,Z)

7
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 xa ou ax 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), wz,
    x lt y
  • D(W) ?(Z ?W) ?Z E2(X,Z)

8
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), wz, x lt y
  • Q(X,Y) ?XY sTa E1(X,Y,T) E2(X,Z)

  • D(W) ?(Z?W) (?Z E2(X,Z))

9
Datalog não recursivo ? Algebra Relacional
  • (Passo 4)
  • Expressão final correspondente à regra E
    sF 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), wz, x
    lt y
  • E(X,Y) sXltY Q(X,Y)
    onde
  • Q(X,Y) ?XY sWa E1(X,Y,W) E2(X,Z)
    D(Z) ?Z E2(X,Z)

10
Exemplo
  • p(x,y,z) - q(x,a), r(x,y), z y, x gt y.
  • Q1(X) ?X sWa Q(X,W)
  • Q2(X,Y) R(X,Y)
  • D(Z) ?(Y? Z) (?YR(X,Y))
  • E(X,Y,Z) s X gt Y (Q1(X) R(X,Y) D(Z))

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

12
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, vx, wy
  • p(u,v,w)- r(y,x), u x, vy, w x
  • p(u,v,w)- r(v,w), u a
  • p(u,v,w)- r(v,u), w u

13
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 lt j
  • Tal ordem é possível uma vez que não existem
    ciclos no grafo.

14
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 lt x

Ordem dos predicados t, r, q, p
r
p
q

t
15
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.

16
Exemplo
  • p(a,y)- r(x,y)
  • p(x,y)- s(x,z), r(z,y)
  • q(x,x)- p(x,b)
  • q(x,y)- p(x,z), s(z,y)
  • Regras retificadas
  • (1) p(x,y) - r(z,y), xa
  • (2) p(x,y)- s(x,z), r(z,y)
  • (3) q(x,y)- p(x,b), xy
  • (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
17
Cálculo Seguro ? Datalog não-recursivo
18
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 k0
  • 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 k1
    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 é !

19
Lembrando árvore de fórmula segura
20
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)

21
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,...,GkH1,...,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 k1 operadores lógicos.

22
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

23
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

24
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), zw
    R(x,y))

Consulta Datalog correspondente (P,q) onde P é
o seguinte programa
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), zw, R(x,y)
Veja que este programa NÃO É RECURSIVO
25
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
  • Algebra Relacional
  • Datalog não-recursivo
Write a Comment
User Comments (0)
About PowerShow.com