30
Indexando XML Banco de Dados e Internet - 2004 Professor: Cláudio Baptista Mestrando: Rômulo Nunes Universidade Federal de Campina Grande Mestrado em Informática

Indexando XML Banco de Dados e Internet - 2004 Professor: Cláudio Baptista Mestrando: Rômulo Nunes Universidade Federal de Campina Grande Mestrado em Informática

Embed Size (px)

Citation preview

Page 1: Indexando XML Banco de Dados e Internet - 2004 Professor: Cláudio Baptista Mestrando: Rômulo Nunes Universidade Federal de Campina Grande Mestrado em Informática

Indexando XML

Banco de Dados e Internet - 2004

Professor: Cláudio Baptista

Mestrando: Rômulo Nunes

Universidade Federal de Campina Grande

Mestrado em Informática

Page 2: Indexando XML Banco de Dados e Internet - 2004 Professor: Cláudio Baptista Mestrando: Rômulo Nunes Universidade Federal de Campina Grande Mestrado em Informática

Conteúdo da Apresentação

Introdução – Necessidade de Indexação Indexação XML com Listas Indexação XML com ÁrvoresAs Pesquisas no mundoConclusão

213:05

Page 3: Indexando XML Banco de Dados e Internet - 2004 Professor: Cláudio Baptista Mestrando: Rômulo Nunes Universidade Federal de Campina Grande Mestrado em Informática

Necessidade de Indexação

SGBDs precisam buscar informações;XML são arquivos;Precisamos de um acesso rápido e

eficiente às informações;Quais as soluções existentes para esse

acesso eficiente e rápido?

313:05

Page 4: Indexando XML Banco de Dados e Internet - 2004 Professor: Cláudio Baptista Mestrando: Rômulo Nunes Universidade Federal de Campina Grande Mestrado em Informática

Indexação XML usando Listas

Indicada para casos mais simples;Essa solução indexa apenas um nível

na árvore do documento;Tem um custo inicial com a ordenação

prévia da lista;É eficiente e mais barata dependendo

do contexto do sistema.4

13:05

Page 5: Indexando XML Banco de Dados e Internet - 2004 Professor: Cláudio Baptista Mestrando: Rômulo Nunes Universidade Federal de Campina Grande Mestrado em Informática

Indexação XML usando Listas<?xml version="1.0" ?>

<agenda>

<contato Nome=”Ana Paula da Silva”>

<Endereço>

Rua Zacarias de Azevedo, 323 Prado

</Endereço><Telefone>

323-3310

</Telefone>

<Telefone>

9991-3817

</Telefone>

</contato>

...

<contato Nome=”Zelda Cavalcante”>

<Endereço>

Av. Monte Castelo,2522

</Endereço>

<Telefone>

231-2233

</Telefone>

</contato>

</agenda>

 

... <contato Nome=”Zelda Cavalcante”>

<Endereço>Av. Fernandes Lima,2522

</Endereço><Telefone>

231-2233</Telefone>

</contato>

...

Visualização do nível da árvore que vamos indexar

513:05

Page 6: Indexando XML Banco de Dados e Internet - 2004 Professor: Cláudio Baptista Mestrando: Rômulo Nunes Universidade Federal de Campina Grande Mestrado em Informática

Indexação XML usando Listas

 

Contato 1 Contato 2 Contato 3...

Contato n

Ana Paula Cláudia Débora Zelda

613:05

Page 7: Indexando XML Banco de Dados e Internet - 2004 Professor: Cláudio Baptista Mestrando: Rômulo Nunes Universidade Federal de Campina Grande Mestrado em Informática

Indexação XML usando Listas

 

713:05

Para ordenar uma lista basta aplicarmos qualquer método da estrutura de dados.

O Método de Hoare, também conhecido como Quick Sort é um dos mais rápidos.

Depois de Ordenado é fácil aplicar, por exemplo, o método de busca binário para encontrar um determinado elemento da lista.

Problemas: Gasto com o tempo para organizar; Só atende a estrutura XML para um nível; Não se pode aplicar esse método para buscas complexas.

Page 8: Indexando XML Banco de Dados e Internet - 2004 Professor: Cláudio Baptista Mestrando: Rômulo Nunes Universidade Federal de Campina Grande Mestrado em Informática

Indexação XML com Árvores

Passos a serem seguidosCodificar a árvore em uma sequênçia

estruturada (Structure-Encoded Sequence)

Codificar também a consulta

813:05

Page 9: Indexando XML Banco de Dados e Internet - 2004 Professor: Cláudio Baptista Mestrando: Rômulo Nunes Universidade Federal de Campina Grande Mestrado em Informática

Exemplo de uma árvore XML

913:05

Page 10: Indexando XML Banco de Dados e Internet - 2004 Professor: Cláudio Baptista Mestrando: Rômulo Nunes Universidade Federal de Campina Grande Mestrado em Informática

Consultas XML

Procurar todos os fabricantes que fornecem

itens

Procurar compras com

Vendedor Boston e

comprador NY

Procurar compras com Boston como comprador ou

vendedor

Procurar compras que

contêm produtos intel

1013:05

Page 11: Indexando XML Banco de Dados e Internet - 2004 Professor: Cláudio Baptista Mestrando: Rômulo Nunes Universidade Federal de Campina Grande Mestrado em Informática

Uma representação sequencial dos dados XML de uma árvore

Considere de v1 a v8 o conjunto de variáveis que representam respectivamente cada valor folha da árvore percorrida em pre-ordem.

Percorrendo a árvore em pre-ordem temos a representação: PSINv1Mv2IMv3INv4Lv5Nv6BLv7Nv8

1113:05

Page 12: Indexando XML Banco de Dados e Internet - 2004 Professor: Cláudio Baptista Mestrando: Rômulo Nunes Universidade Federal de Campina Grande Mestrado em Informática

Sequência Estruturada Codificada

Uma sequência estruturada codificada é uma sequência de tuplas do tipo (simbolo_atual, prefixo).

D = (a1,p1), (a2,p2), …, (an,pn)

Para a árvore do slide anterior temos:

D = (P,),(S,P),(I,PS),(N,PSI),(v1,PSIN),(M,PSI),(v2,PSIM),(I,PSI),(M,PSII),(v3,PSIIM),(I,PS),(N,PSI),(v4,PSIN),(L,PS),(v5,PSL),(N,PS),(v6,PSN),(B,P),(L,PB),(v7,PBL),(N,PB),(v8,PBN)

Percorrer a árvore em pre-ordem garante uma codificação onde nós vizinhos sempre estarão próximos.

1213:05

Page 13: Indexando XML Banco de Dados e Internet - 2004 Professor: Cláudio Baptista Mestrando: Rômulo Nunes Universidade Federal de Campina Grande Mestrado em Informática

Consultas (incluindo consultas ramificadas, e consultas com caracteres coringas ‘*’ ou ‘//’) podem ser convertidos para uma sequência estruturada codificada.

Sequência Estruturada Codificada

Page 14: Indexando XML Banco de Dados e Internet - 2004 Professor: Cláudio Baptista Mestrando: Rômulo Nunes Universidade Federal de Campina Grande Mestrado em Informática

Exemplos

D = (P,),(S,P),(I,PS),(N,PSI),(v1,PSIN),(M,PSI),(v2,PSIM),(I,PSI),(M,PSII),(v3,PSIIM),(I,PS),(N,PSI),(v4,PSIN),(L,PS),(v5,PSL),(N,PS),(v6,PSN),(B,P),(L,PB),(v7,PBL),(N,PB),(v8,PBN)

Q2= /* Boston como vendedor e New York como comprador */ (P,),(S,P),(L,PS),(v5,PSL),(B,P),(L,PB),(v7,PBL)

Q3= /* Boston como vendedor ou comprador */

(P,),(L,*),(v5,P*L)

D = (P,),(S,P),(I,PS),(N,PSI),(v1,PSIN),(M,PSI),(v2,PSIM),(I,PSI),(M,PSII),(v3,PSIIM),(I,PS),(N,PSI),(v4,PSIN),(L,PS),(v5,PSL),(N,PS),(v6,PSN),(B,P),(L,PB),(v7,PBL),(N,PB),(v8,PBN)

1413:05

Page 15: Indexando XML Banco de Dados e Internet - 2004 Professor: Cláudio Baptista Mestrando: Rômulo Nunes Universidade Federal de Campina Grande Mestrado em Informática

Problema

Um nó pode ter filhos parecidos: /A[B/C]/B/D

Faz consultas multiplas e o resultado é a o conjunto união.

“(A,),(B,A),(C,AB),(B,A),(D,AB)”

1513:05

D

A

B

C

B

A

B

C D

A

BU

Page 16: Indexando XML Banco de Dados e Internet - 2004 Professor: Cláudio Baptista Mestrando: Rômulo Nunes Universidade Federal de Campina Grande Mestrado em Informática

Solução

Uma definição formal de uma linguagem que dê suporte a consultas com restrições.

Ponto Principal: A indexação do caminho

1613:05

Page 17: Indexando XML Banco de Dados e Internet - 2004 Professor: Cláudio Baptista Mestrando: Rômulo Nunes Universidade Federal de Campina Grande Mestrado em Informática

Árvore de Sufixos A sequência estruturada

codificada é colocada em uma árvore de sufixos.

1713:05

Page 18: Indexando XML Banco de Dados e Internet - 2004 Professor: Cláudio Baptista Mestrando: Rômulo Nunes Universidade Federal de Campina Grande Mestrado em Informática

Algoritmo de Busca Simples

Query:(P, )(L,P *)(v2,P*L)

1813:05

Page 19: Indexando XML Banco de Dados e Internet - 2004 Professor: Cláudio Baptista Mestrando: Rômulo Nunes Universidade Federal de Campina Grande Mestrado em Informática

Ancestor-Descendant Relationships

D-Ancestorship: Relacionamento entre nós no documento XML de origem. (pai – filho) Essencial pra uma Consulta modelada

S-Ancestorship: Relacionamento para os nós no sufixo da árvore (filho – pai e sobrinho – tios) Existe entre qualquer dois nós num mesmo documento. Essencial para evitar operações de união (intra-record)

1913:05

Page 20: Indexando XML Banco de Dados e Internet - 2004 Professor: Cláudio Baptista Mestrando: Rômulo Nunes Universidade Federal de Campina Grande Mestrado em Informática

RIST: Relationship Indexed Suffix Tree

Indexamos os nós da árvore de sufixos por tuplas (Symbol, Prefix) (Indexação por D-Ancestorship)

Agora vamos marcar cada nó da árvore de sufixos com (n ,size), onde n é a número em pre-ordem do nó e size é o numero de nós abaixo dele. (Indexação por S-Ancestorship)

2013:05

Page 21: Indexando XML Banco de Dados e Internet - 2004 Professor: Cláudio Baptista Mestrando: Rômulo Nunes Universidade Federal de Campina Grande Mestrado em Informática

Marcando a árvore de sufixos

Cada nó tem uma tupla (Symbol, Prefix)

Cada nó é marcado com (nx,sizex)um nó x é descendente de um nó y se nx está no intervalo [ny, ny+ sizey)

Criar uma árvore trie para os indices criados 21

13:05

Page 22: Indexando XML Banco de Dados e Internet - 2004 Professor: Cláudio Baptista Mestrando: Rômulo Nunes Universidade Federal de Campina Grande Mestrado em Informática

Algoritmo RIST

2213:05

Page 23: Indexando XML Banco de Dados e Internet - 2004 Professor: Cláudio Baptista Mestrando: Rômulo Nunes Universidade Federal de Campina Grande Mestrado em Informática

Algoritmo RIST - Resumo Diferente do Algoritmo de busca simples,

RIST pula para o nó que representa o próximo simbolo ao invés de uma busca inteira na sub-árvore.

A estrutura indexada e também o algoritmo de busca, são baseados em arvores trie.

Uma árvore de sufixos é construida para fazer apresentar as marcas dos nós. Mas ela não é usada no algoritmo de busca.

2313:05

Page 24: Indexando XML Banco de Dados e Internet - 2004 Professor: Cláudio Baptista Mestrando: Rômulo Nunes Universidade Federal de Campina Grande Mestrado em Informática

VIST: Virtual Suffix TreeMotivação:

RIST usa um esquema de marcação estática (preordem, tamanho ), que evita o adicionamento de novos nós dinamicamente.

A árvore de sufixos é uma estrutura que precisa está completamente carregada em memória, o que torna RIST não suportado pelos SGBDs.

2413:05

Page 25: Indexando XML Banco de Dados e Internet - 2004 Professor: Cláudio Baptista Mestrando: Rômulo Nunes Universidade Federal de Campina Grande Mestrado em Informática

Sinal de probabilidade

Probabilidade que x ocorra dado que u ocorra é denotado como p(u|x)

Se x é parente de u, é fácil dizer quem é p(u|x)

Por exemplo, p(Name|Buyer)=1 p(Subitem|Item)=.1

Então temos que: p(u|x) é conhecido já que u é parente

de x 2513:05

Page 26: Indexando XML Banco de Dados e Internet - 2004 Professor: Cláudio Baptista Mestrando: Rômulo Nunes Universidade Federal de Campina Grande Mestrado em Informática

Follow Set Dado um nó x, follow(x) está

para todo nó que pode suceder x na sequência estruturada codificada.

follow(x) = u, v, w, y, z, Se y é qualquer elemento de follow(x),

então p(y|x) = p(y|d), onde d é parente de y.

2613:05

Page 27: Indexando XML Banco de Dados e Internet - 2004 Professor: Cláudio Baptista Mestrando: Rômulo Nunes Universidade Federal de Campina Grande Mestrado em Informática

TestesDefinição para os testes:

DBLP. Cada registro corresponde a uma publicação, e o tamanho médio de sequencias estruturadas codificadas é 31.

Xmark. Um único registro com uma grande estrutura. Sub estruturas complexas e cheias de nós.

2713:05

Page 28: Indexando XML Banco de Dados e Internet - 2004 Professor: Cláudio Baptista Mestrando: Rômulo Nunes Universidade Federal de Campina Grande Mestrado em Informática

Testes

0102030405060708090

100

DBLP VIST

DBLP RIST

XMARKVIST

XMARKRIST

DocId B+Tree Ancestor B+Trees Suffix Tree

Tamanho do indice (em MB)

Tempo de construção do indice (em MB)

2813:05

Page 29: Indexando XML Banco de Dados e Internet - 2004 Professor: Cláudio Baptista Mestrando: Rômulo Nunes Universidade Federal de Campina Grande Mestrado em Informática

As pesquisas no Mundo

Nas universidades do mundo:University of St. Petersburg na Russia;University of Singapore, University Stanford

Nas universidades do Brasil: Pesquisas de indexação XML para fins específicos (bibliotecas digitais, sistemas de busca, ...)

E os grandes desenvolvedores dos SGDBs? A IBM é quem mais se destaca com suas pesquisas. O VISIT é um exemplo

2913:05

Page 30: Indexando XML Banco de Dados e Internet - 2004 Professor: Cláudio Baptista Mestrando: Rômulo Nunes Universidade Federal de Campina Grande Mestrado em Informática

ConclusãoSGBDs e sistemas que utilizam XML

tendem a se fortalecer com as técnicas avancadas de busca;

Muitas pesquisas na área estão se consolidando em uma forma única e ideal de busca;

3013:05