Indice estruturado por Hash

Slides:



Advertisements
Apresentações semelhantes
IFTO ESTRUTURA DE DADOS AULA 05 Prof. Manoel Campos da Silva Filho
Advertisements

AULA 8 Profa. Sandra de Amo GBC053 – BCC
Palestras, oficinas e outras atividades
Material pedagógico Multiplicar x 5 Clica!
Vamos contar D U De 10 até 69 Professor Vaz Nunes 1999 (Ovar-Portugal). Nenhuns direitos reservados, excepto para fins comerciais. Por favor, não coloque.
14/10/09 Uma animação possui: Início; Passo; Fim; 1.
Interação entre objetos
Copyright (c) 2003 by Valery Sklyarov and Iouliia Skliarova: DETUA, IEETA, Aveiro University, Portugal.
RESUMO DA AULA 5 Profa. Sandra de Amo GBC053 – BCC
Cálculos de Custos I/O-Arquivos Hash Introdução aos Métodos de Acesso
Indices estruturados por B-TREE
Organização de Arquivos Cálculo de Custos de I/O Arquivos Hashed AULA 7 – Parte I Profa. Sandra de Amo GBC053 – BCC
Algoritmos de Junção – BNL e IndexNL AULA 16 Profa. Sandra de Amo GBC053 – BCC
Organização de Arquivos Introdução
Algoritmos para Operação de Junção
Estimativas de Custos: Arquivos Heap, Ordenados e Hashed Indices e Métodos de Acesso AULA 13 Profa. Sandra de Amo Programa de Pós-graduação em Ciência.
Organização de Arquivos Tipos de Indices Cálculo de Custos de I/O
Algoritmos para Seleção e Projeção
Gerenciamento de Arquivos, Páginas e Registros
Introdução aos Métodos de Acesso AULA 7 – Parte II Profa. Sandra de Amo GBC053 – BCC
B-tree Gerenciamento de Duplicatas Bulk Loading AULA 12 Profa. Sandra de Amo GBC053 – BCC
Método de Acesso Dinâmico - B-Tree AULA 14 Profa. Sandra de Amo Programa de Pós-Graduação em CC - UFU Sistemas de Banco de Dados
Algoritmos para Operação de Junção AULA 17 Profa. Sandra de Amo Programa de Pós-Graduação em CC - UFU Sistemas de Banco de Dados
Arquitetura de Sistemas Operacionais Francis Berenger Machado
Revisão Prova 2 Métodos de Acesso: BTree e Hash AULA 20 Profa. Sandra de Amo GBC053 – BCC
Hashing Extensível o espaço de endereços disponíveis não é fixo
1 Complexidade de Algoritmos Complexidade de pior caso Complexidade de melhor caso de uso bem menos freqüente em algumas situações específicas Complexidade.
Arquivos Seqüenciais Inhaúma Neves Ferraz
EXPRESSÕES ARITMÉTICAS
EXPRESSÕES ARITMÉTICAS
Arquivos Extensíveis.
Indexação e Hashing Muitas consultas referenciam apenas uma pequena porção dos registros em uma tabela. Portanto necessitamos ser capaz de localizar estes.
Capítulo 6 Sistemas de Arquivos 6.1 Arquivos 6.2 Diretórios
Estudo de Caso 1: UNIX e LINUX
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Sistemas de Informações Geográficas
Aula 4 Nomes, Vinculações, Tipos e Escopos
Aula 6 Subprogramas Universidade do Vale do Rio dos Sinos
Listas Encadeadas.
Classes e objetos P. O. O. Prof. Grace.
Provas de Concursos Anteriores
Renda até 2 SM.
Módulo Financeiro Centro de Custo.
MECÂNICA - ESTÁTICA Cabos Cap. 7.
MECÂNICA - DINÂMICA Exercícios Cap. 13, 14 e 17. TC027 - Mecânica Geral III - Dinâmica © 2013 Curotto, C.L. - UFPR 2 Problema
Dinâmica do Movimento Plano de um Corpo Rígido: Força e Aceleração
Dinâmica do Movimento Plano de um Corpo Rígido: Força e Aceleração
Resultantes de Sistemas de Forças Cap. 4
Resultantes de Sistemas de Forças Cap. 4
MECÂNICA - ESTÁTICA Vetores Forças Cap. 2.
1 António Arnaut Duarte. 2 Sumário: primeiros passos;primeiros passos formatar fundo;formatar fundo configurar apresentação;configurar apresentação animação.
Resolução de problemas por meio de busca
INF70 – Gerenciamento de Banco de Dados 2 Índices baseados em Hash Ilmério Reis da Silva UFU/FACOM/BCC.
Estruturas de Dados com Jogos
Estruturas de Dados com Jogos
Indices: Estruturas Auxiliares para Otimizar Acesso aos Dados
Algorítmos e estrutura de dados III
Ordenação Externa de Arquivos – Um exemplo
Revisão Prova 2 Métodos de Acesso – Parte 2 AULA 21 Profa. Sandra de Amo GBC053 – BCC.
Modelagem Estatística
EXERCÍCIOS PARA GUARDA-REDES
Operações de Inserção e Remoção – BTree Resumo
Arquivos Estruturados por Hashing– Custos I/O
Introdução e Busca Cega
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Campus de Caraguatatuba Aula 8: Noções Básicas sobre Erros (2)
MATRICIAL CONSULTORIA LTDA. PREFEITURA MUNICIPAL DE GARIBALDI 23/10/ : ATENÇÃO Os locais descritos nas planilhas anexas não correspondem ao total.
Curso: Cerimonial, Protocolo e Eventos
Caminhos da Cana Relatório e show de imagens Marcos Fava Neves Prof. FEA/USP Ribeirão Preto Purdue University (2013)
AULA 21 Profa. Sandra de Amo BCC - UFU
Transcrição da apresentação:

Indice estruturado por Hash Métodos de Acesso Indice estruturado por Hash

Plano Geral Vantagens e Limitações Hash Estático Hash Extensível Hash Linear Comparação entre Hash Extensível e Linear

Vantagens e Limitações Hash : excelente para seleção por igualdade na chave . Não suporta seleção range (>, < ) B-Trees suportam seleção range e são quase tão boas quanto Hash para igualdade. Muitos SGBDs só implementam índices estruturados por B-Trees Técnica de indexação Hash é muito útil na implementação do operador Junção, que inclu diversas seleções por igualdade Diferença de custo entre B-Tree e Hash é significativa neste caso.

Hash Estático … … … h(chave) mod N chave h = função hash h(chave) mod N … 1 2 chave h h = função hash … N-1 Páginas Primárias dos Buckets Páginas de Overflow Entradas do tipo <chave, * >

Busca … … … h(14) mod 6 = 2 h(x) = x < 14, * > N = 6 1 …. 2 14 h h(14) mod 6 = 2 … 1 …. <14,* > 2 14 h 3 4 … 5

Inserção … … Inserindo < 7, * > h(7) mod 6 = 1 Cheia h(7) mod 6 = 1 < 7, * > 1 2 7 Cheia h 3 4 … 5

Supressão … … Suprimindo < 25, * > h(25) mod 6 = 1 h(25) mod 6 = 1 < 25, * > 1 2 25 h 3 4 … 5

Função Hash Componente importante da técnica hash Deve distribuir valores das chaves de maneira uniforme nos buckets. Número de buckets = N = parâmetro h(x) = a*x + b , a, b : parâmetros de ajuste

Custos Páginas primárias podem ser armazenadas em páginas de disco sucessivas. Caso não haja overflow Busca requer 1 I/O Inserção e Supressão requerem 2 I/O Custo pode ser alto se existem muitas páginas de overflow. Estratégia : criar inicialmente os buckets deixando 20% de área livre em cada um.

Desvantagens do Hash Estático Número de buckets é fixo Se arquivo encolhe muito, o espaço é desperdiçado, já que os buckets são fixos. Crescimento do arquivo produz longas cadeias de páginas de overflow, prejudicando performance da busca.

Alternativas Alternativa 1 : Alternativa 2 : Hash dinâmicos Periodicamente, modificar a função hash e reestruturar todo o arquivo de modo a evitar páginas de overflow. « Rehash » toma muito tempo Indice não pode ser utilizado durante o processo de « rehash ». Alternativa 2 : Hash dinâmicos Extensível Linear

Hash Extensível Solução 1 : quando algum bucket ficar cheio Dobrar o número de buckets Distribuir as entradas nos novos buckets Defeito : o arquivo todo deve ser lido e reorganizado e o dobro de páginas devem ser escritas. Espaço em alguns buckets é alocado bem antes de sua utilização efetiva. Solução 2 : utilizar um diretório de ponteiros para os buckets. Dobrar o número de entradas no diretório Separar somente os buckets que ficaram cheios.

Notação Para procurar, inserir ou suprimir entrada k* Aplicar h(k) h(k) identifica um bucket Duas chaves k1 e k2 podem ter h(k1) = h(k2)

Exemplo Profundidade Local Profundidade Global Diretório dos 2 4* 12* 32* 16* Bucket A 2 2 00 1* 5* 21* Bucket B 01 2 10* Bucket C 10 2 15* 7* 19* Bucket D 11 Diretório dos Ponteiros Páginas do Indice

Exemplo – inserção Diretório 2 Inserindo 13* 4* 12* 32* 16* 2 2 00 1* 5* 21* 13* 01 2 10* 10 2 15* 7* 19* 11 Diretório Páginas do Indice

Exemplo – inserção Diretório 2 2 Inserindo 20* 4* 12* 32* 32* 16* 16* 00 1* 5* 21* 13* 01 2 10* 10 2 15* 7* 19* 11 2 4* 12* 20* Diretório

Exemplo – inserção Diretório Local Inserindo 20* Global 3 32* 16* Bucket A1 3 2 000 2 00 001 1* 5* 21* 13* Bucket C 010 01 011 2 10* Bucket C 100 10 101 2 110 15* 7* 19* Bucket D 11 111 3 4* 12* 20* Diretório Bucket A2

Análise Se o diretório couber na memória Seleção com igualdade : 1 I/0 Se o diretório tiver que ser armazenado em disco Seleção com igualdade : 2 I/0

Hash Linear Assim como o Hash Extensível, o Hash Linear é ideal para inserções e supressões; Vantagem sobre extensível Lida muito bem com colisões Oferece muita flexibilidade Cadeias de overflow podem tornar o hash linear inferior em performance ao hash extensivel

Parâmetros e Contadores Nivel = indica a rodada atual Inicializado com 0 Next = bucket que deve ser dividido, se necessário Nm = número de buckets na rodada m N0 = N Nm = N*2m Somente o bucket com número Next é dividido. Usa-se páginas de overflow para os outros buckets, se ficarem cheios. Após divisão, Next é incrementado.

Esquema Geral : rodada k Bucket b Bucket Next a ser dividido m = número de buckets da rodada k Buckets existentes no inicio da rodada k Bucket b + m Imagens dos buckets divididos

Inserção de 43* h0(43) = 3 (11) h1 h0 Nivel = 0 , N = 4 = 22 Next = 0 000 00 32* 44* 36* Next = 1 001 01 9* 25* 5* 010 10 14* 18* 10* 30* 011 11 31* 35* 7* 11* 43* 00 44* 36* Esta informação não é armazenada ! Páginas Primárias

Busca de 18* h0(18) = 2 (10) h1 h0 Nivel = 0 , N = 4 = 22 000 00 32* Next = 1 2 > Next 001 01 9* 25* 5* Bucket 2 não foi dividido ainda 010 10 14* 18* 10* 30* 011 11 31* 35* 7* 11* 43* 100 00 44* 36*

Busca de 32* e 44* h0(32) = 00 h0(44) = 00 h1(32) = 000 h1(44) = 100 Nivel = 0 , N = 4 = 22 h0(32) = 00 000 00 32* h0(44) = 00 Next = 1 0 < Next 001 01 9* 25* 5* Bucket 0 já foi dividido ainda 010 10 14* 18* 10* 30* 011 11 31* 35* 7* 11* 43* h1(32) = 000 100 00 44* 36* h1(44) = 100 Bucket 0 + 4

Inserção de 37* h0(37) = 01 000 00 32* Next = 1 001 01 9* 25* 5* 37* 010 10 14* 18* 10* 30* 011 11 31* 35* 7* 11* 43* 100 00 44* 36*

Inserção de 29* h0(29) = 01 000 00 32* Next =1 9* 25* 5* 37* 001 01 14* 18* 10* 30* 010 10 31* 35* 7* 11* 43* 011 11 100 00 44* 36* 5* 37* 29* 101 01

Incremento de Nível Next =0 Nivel = 1 000 00 32* h0(50) = 10 001 01 9* 25* h1(50) = 010 50* 66* 18* 10* 34* 010 10 Next =3 011 43* 31* 35* 7* 11* 43* 11 11* 100 00 44* 36* 5* 37* 29* 101 01 14* 30* 22* 110 10 111 11 31* 7*