300 likes | 398 Views
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
E N D
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 • As Pesquisas no mundo • Conclusão 2 21:51
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
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
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
Contato 1 Contato 2 Contato 3 ... Contato n Ana Paula Cláudia Débora Zelda Indexação XML usando Listas 6 21:51
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
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
Exemplo de uma árvore XML 9 21:51
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
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
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
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),(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
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
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
Árvore de Sufixos • A sequência estruturada codificada é colocada em uma árvore de sufixos. 17 21:51
Algoritmo de Busca Simples Query: (P,)(L,P *)(v2,P*L) 18 21:51
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
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
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
Algoritmo RIST 22 21:51
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
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
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
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
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
Testes 28 Tamanho do indice (em MB) Tempo de construção do indice (em MB) 21:51
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
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