Universidade Federal de Campina Grande Mestrado em Informtica

  • Slides: 30
Download presentation
Universidade Federal de Campina Grande Mestrado em Informática Indexando XML Banco de Dados e

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

Conteúdo da Apresentação ® Introdução – Necessidade de Indexação ® Indexação XML com Listas

Conteúdo da Apresentação ® Introdução – Necessidade de Indexação ® Indexação XML com Listas ® Indexação XML com Árvores ® As Pesquisas no mundo ® Conclusão 2 21: 45

Necessidade de Indexação ® SGBDs precisam buscar informações; ® XML são arquivos; ® Precisamos

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? 3 21: 45

Indexação XML usando Listas ® Indicada para casos mais simples; ® Essa solução indexa

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 21: 45

Indexação XML usando Listas <? xml version="1. 0" ? > <agenda> <contato Nome=”Ana Paula

Indexação XML usando Listas <? xml version="1. 0" ? > <agenda> <contato Nome=”Ana Paula da Silva”> <Endereço> Rua Zacarias de Azevedo, 323 Prado Visualização do nível da árvore que vamos indexar </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 5 21: 45 </Telefone> . . . <contato Nome=”Zelda Cavalcante”> <Endereço> Av. Fernandes Lima, 2522 </Endereço> <Telefone> 231 -2233 </Telefone> </contato> </agenda> . . .

Indexação XML usando Listas Contato 1 Ana Paula 6 21: 45 Contato 2 Cláudia

Indexação XML usando Listas Contato 1 Ana Paula 6 21: 45 Contato 2 Cláudia Contato 3 Débora Contato n. . . Zelda

Indexação XML usando Listas Para ordenar uma lista basta aplicarmos qualquer método da estrutura

Indexação XML usando Listas 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. 7 21: 45 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.

Indexação XML com Árvores ® Passos a serem seguidos ® Codificar a árvore em

Indexação XML com Árvores ® Passos a serem seguidos ® Codificar a árvore em uma sequênçia estruturada (Structure-Encoded Sequence) ® Codificar também a consulta 8 21: 45

Exemplo de uma árvore XML 9 21: 45

Exemplo de uma árvore XML 9 21: 45

Consultas XML 10 21: 45 Procurar todos os fabricantes que fornecem itens Procurar compras

Consultas XML 10 21: 45 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

Uma representação sequencial dos dados XML de uma árvore n 11 21: 45 n

Uma representação sequencial dos dados XML de uma árvore n 11 21: 45 n Considere de v 1 a v 8 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: PSINv 1 Mv 2 IMv 3 INv 4 Lv 5 Nv 6 BLv 7 Nv 8

Sequência Estruturada Codificada ® Uma sequência estruturada codificada é uma sequência de tuplas do

Sequência Estruturada Codificada ® Uma sequência estruturada codificada é uma sequência de tuplas do tipo (simbolo_atual, prefixo). D = (a 1, p 1), (a 2, p 2), …, (an, pn) ® Para a árvore do slide anterior temos: D = (P, ), (S, P), (I, PS), (N, PSI), (v 1, PSIN), (M, PSI), (v 2, PSIM), (I, PSI), (M, PSII), (v 3, PSIIM), (I, PS), (N, PSI), (v 4, PSIN), (L, PS), (v 5, PSL), (N, PS), (v 6, PSN), (B, P), (L, PB), (v 7, PBL), (N, PB), (v 8, PBN) ® 12 21: 45 Percorrer a árvore em pre-ordem garante uma codificação onde nós vizinhos sempre estarão próximos.

Sequência Estruturada Codificada ® Consultas (incluindo consultas ramificadas, e consultas com caracteres coringas ‘*’

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

Exemplos ®D = (P, ), (S, P), (I, PS), (N, PSI), (v 1, PSIN),

Exemplos ®D = (P, ), (S, P), (I, PS), (N, PSI), (v 1, PSIN), (M, PSI), (v 2, PSIM), (I, PSI), (M, PSII), (v 3, PSIIM), (I, PS), (N, PSI), (v 4, PSIN), (L, PS), (v 5, PSL), (N, PS), (v 6, PSN), (B, P), (L, PB), (v 7, PBL), (N, PB), (v 8, PBN) ® Q 2= /* Boston como vendedor e New York como comprador */ (P, ), (S, P), (L, PS), (v 5, PSL), (B, P), (L, PB), (v 7, PBL) ® Q 3= /* Boston como vendedor ou comprador */ (P, ), (L, *), (v 5, P*L) 14 21: 45

Problema Um nó pode ter filhos parecidos: ® /A[B/C]/B/D Faz consultas multiplas e o

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)” A B 15 21: 45 A B U C D C B D

Solução ® Uma definição formal de uma linguagem que dê suporte a consultas com

Solução ® Uma definição formal de uma linguagem que dê suporte a consultas com restrições. ® Ponto Principal: A indexação do caminho 16 21: 45

Árvore de Sufixos ® 17 21: 45 A sequência estruturada codificada é colocada em

Árvore de Sufixos ® 17 21: 45 A sequência estruturada codificada é colocada em uma árvore de sufixos.

Algoritmo de Busca Simples Query: (P, )(L, P *)(v 2, P*L) 18 21: 45

Algoritmo de Busca Simples Query: (P, )(L, P *)(v 2, P*L) 18 21: 45

Ancestor-Descendant Relationships ® D-Ancestorship: Relacionamento entre nós no documento XML de origem. (pai –

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 (intrarecord) ® 19 21: 46

RIST: Relationship Indexed Suffix Tree ® Indexamos os nós da árvore de sufixos por

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) 20 21: 46

Marcando a árvore de sufixos ® Cada 21 21: 46 nó tem uma tupla

Marcando a árvore de sufixos ® Cada 21 21: 46 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

Algoritmo RIST 22 21: 46

Algoritmo RIST 22 21: 46

Algoritmo RIST - Resumo ® Diferente do Algoritmo de busca simples, RIST pula para

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. 23 21: 46

VIST: Virtual Suffix Tree ® Motivação: ® RIST usa um esquema de marcação estática

VIST: Virtual Suffix Tree ® Motivaçã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. 24 21: 46

Sinal de probabilidade ® Probabilidade que x ocorra dado que u ocorra é denotado

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 ® n 25 21: 46 Então temos que: n p(u|x) é conhecido já que u é parente de x

Follow Set ® Dado um nó x, follow(x) está para todo nó que pode

Follow Set ® Dado um nó x, follow(x) está para todo nó que pode suceder x na sequência estruturada codificada. n n 26 21: 46 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.

Testes ® Definição ® DBLP. para os testes: Cada registro corresponde a uma publicação,

Testes ® Definição ® DBLP. para os testes: 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. 27 21: 46

Testes 28 21: 46 Tamanho do indice (em MB) Tempo de construção do indice

Testes 28 21: 46 Tamanho do indice (em MB) Tempo de construção do indice (em MB)

As pesquisas no Mundo Nas universidades do mundo: University of St. Petersburg na Russia;

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 29 21: 46

Conclusão ® SGBDs e sistemas que utilizam XML tendem a se fortalecer com as

Conclusão ® SGBDs 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; 30 21: 46