slide1 n.
Skip this Video
Loading SlideShow in 5 Seconds..
Hashing Extensível PowerPoint Presentation
Download Presentation
Hashing Extensível

Loading in 2 Seconds...

  share
play fullscreen
1 / 20
Download Presentation

Hashing Extensível - PowerPoint PPT Presentation

shay-farmer
71 Views
Download Presentation

Hashing Extensível

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Hashing Extensível • o espaço de endereços disponíveis não é fixo • utilizado em hashing de arquivos dinâmicos (mudam de tamanho) ideia: combinar técnicas de hashing + árvore de busca de base (trie)

  2. Exemplo 1: Trie: (able, abrahms, adams, anderson, andrews, baird) l able r b abrahms d adams a anderson e n d b r andrews baird 26 letras do alfabeto, a-z  máximo fator de subdivisão de um nó = 26 (base 26)

  3. Exemplo: base 10 Trie: (1136, 1153, 1629, 3182, 7263, 7268, 7521) 3 1136 1 5 1153 1629 6 1 3 3182 7263 3 7 6 2 8 7268 5 5 7521

  4. Hashing e tries • Trabalha-se com árvores de base 2 • As chaves nas folhas constituem buckets contendo chaves A 0 Parte do Bucket endereço 01  A 10  B 11  C B 1 0 1 C

  5. Problema: Como representar uma trie de modo a se obter uma busca com complexidade constante O(1) ? Ideia : Considerar um vetor de endereços hashing, com cada elemento apontando para um bucket, e obtido a partir da definição de uma árvore binária completa dos respectivos endereços.

  6. A 0 B 1 0 1 C árvore binária completa 0 A 0 1 B 1 0 1 C

  7. 0 A 0 1 B 1 0 1 C vetor de endereços apontador extra para eventual overflow de A 00 A 01 B 10 11 C 2 níveis na árvore binária  vetor de tamanho 4

  8. apontador extra para eventual overflow de A 00 A 01 B 10 11 C A 00 overflow de A D 01 B 10 11 C

  9. Exemplo: 0 A 00 0 A 1 01 B 1 0 B 10 11 C C 1 Overflow do bucket B subdividir o ramo da árvore conduzindo ao bucket B; criar a árvore binária completa; definir o vetor de endereços

  10. Subdivisão do ramo da árvore A 0 0 B 1 0 D 1 1 C

  11. Criação da árvore binária completa 0 0 1 A 0 0 1 1 0 1 B 0 D 1 0 1 C 1 3 níveis na árvore binária  vetor de tamanho 8

  12. Definição do vetor de endereços 000 001 A 010 011 B 100 101 D 110 C 111

  13. Busca por Casamento Parcial • evita definição de listas invertidas na consulta de registros por • chaves secundárias • baseia-se no conceito de códigos de assinaturas

  14. Exemplo de registro Aluno: RA Nome Cidade CR Renda Familiar (RF) 17 21 1 16 22 26 27 32 bits s1 s2 s3 s4 assinaturas disjuntas (diferentes funções de hashing) • Os bits de cada campo dos registros terão valor 1 de acordo com as respectivas • funções de hashing

  15. Exemplos de assinaturas: (para bits de 1 a 16) (para bits de 17 a 21)

  16. (para bits de 22 a 26) (para bits de 27 a 32)

  17. A busca Exemplo de consulta: RF = 3000,00 AND CR = 8 AND Cidade = Campinas Assinatura da consulta: 17 21 1 16 22 25 26 27 29 32 1 1 1 s1 s2 s3 s4 Extrair todos os registros cuja assinatura contém 1 na posição indicada pela assinatura de consulta; verificar os falsos positivos devido a oclusões da função de hashing  Extrair registros que respondem positivamente à pergunta:

  18. Árvores de Assinaturas • Combina as assinaturas de registros numa estrutura multínivel de • árvores, através de um OR de diferentes subconjuntos destas assinaturas • Otimiza o processo de busca secundária por assinaturas de registros

  19. . . assinatura da consulta: 0 0 0 1 0 01 . OR OR 0 0 0 1 0 01 0 0 0 1 0 01 0 0 0 1 0 01 sub-árvore a ser verificada na consulta . . . assinaturas nível 1 (adicionadas aos registros originais) assinaturas nível 3 assinaturas nível 2