A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Hashing Extensível o espaço de endereços disponíveis não é fixo

Apresentações semelhantes


Apresentação em tema: "Hashing Extensível o espaço de endereços disponíveis não é fixo"— Transcrição da apresentação:

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

13

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


Carregar ppt "Hashing Extensível o espaço de endereços disponíveis não é fixo"

Apresentações semelhantes


Anúncios Google