Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouDavid Recio Alterado mais de 10 anos atrás
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
Trie: (able, abrahms, adams, anderson, andrews, baird)
Exemplo 1: Trie: (able, abrahms, adams, anderson, andrews, baird) l able r b abrahms d a adams 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 6 1629 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 Parte do Bucket endereço A B C 1 B 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 1 B 1 C árvore binária completa A 1 1 B 1 C
7
A 1 1 B 1 C 00 A 01 10 B 11 C vetor de endereços
A 1 1 B 1 C vetor de endereços apontador extra para eventual overflow de A 00 A 01 10 B 11 C 2 níveis na árvore binária vetor de tamanho 4
8
apontador extra para eventual overflow de A
00 A 01 10 B 11 C A 00 D overflow de A 01 10 B 11 C
9
Exemplo: A 00 A 1 01 1 B 10 B 11 C 1 C 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
B 1 D 1 1 C
11
Criação da árvore binária completa
1 A 1 1 1 B D 1 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
14
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
15
RA Nome Cidade CR Renda Familiar (RF)
Exemplo de registro Aluno: RA Nome Cidade CR Renda Familiar (RF) 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
16
Exemplos de assinaturas:
(para bits de 1 a 16) (para bits de 17 a 21)
17
(para bits de 22 a 26) (para bits de 27 a 32)
18
A busca Exemplo de consulta:
RF = 3000,00 AND CR = 8 AND Cidade = Campinas Assinatura da consulta: 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:
19
Á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
20
. . . assinatura da consulta: OR OR sub-árvore a ser verificada na consulta . . . assinaturas nível 1 (adicionadas aos registros originais) assinaturas nível 2 assinaturas nível 3
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.