1 / 30

Indexando XML

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 Indexação XML com Árvores

zandra
Download Presentation

Indexando XML

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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:51

  3. 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:51

  4. 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:51

  5. Indexação XML usando Listas Visualização do nível da árvore que vamos indexar <?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> ... 5 21:51

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

  7. 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. 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. 7 21:51

  8. 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:51

  9. Exemplo de uma árvore XML 9 21:51

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

  11. 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 11 21:51

  12. 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. 12 21:51

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

  14. 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) 14 21:51

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

  16. 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:51

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

  18. Algoritmo de Busca Simples   Query: (P,)(L,P *)(v2,P*L)   18  21:51

  19. 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) 19 21:51

  20. 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:51

  21. 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 nxestá no intervalo [ny,ny+sizey) • Criar uma árvore trie para os indices criados 21 21:51

  22. Algoritmo RIST 22 21:51

  23. 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:51

  24. 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:51

  25. 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 25 21:51

  26. 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. 26 21:51

  27. Testes • Definiçã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. 27 21:51

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

  29. 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:51

  30. 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:51

More Related