Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouMatheushenrique De Castro Alterado mais de 10 anos atrás
1
Estruturas de Dados para projeto de SGBD
2
Estruturas de dados analisadas Estruturas de nível Esparso Denso Combinadas Arvore B+ Tabela de hash
3
Tabelas de Hash Função de hash Array de depósitos
4
Tabelas de Hash Função de Hash Função de hash tb. chave de hash Argumento : inteiro de 0 a B -1 Onde B é o número de depósitos ( buckets) K/B Onde K é o valor da chave
5
Tabelas de Hash Array de depósitos Array indexado de 0 a B – 1 B é o número de depósitos Contém cabeçalho de B listas encadeadas ( uma para cada depósito do array )
6
Tabelas Hash Sistemas hash Vantagens Aplicação da função sempre resulta num positivo Esse número positivo pode ser como binário
7
Uma tabela de Hash h(a) = 1 h(b) = 2 h(c) = 1 h(d) = 0 01230123 d a c b SE registro tem a chave de pesquisa K ENTAO * guardar o registro vinculando-o à lista de depósitos correspondente ao depósito de h(K) K ={ a, b, c, d }
8
Tabelas Hash Armazenamento/ Mecanismo Armazenamento primário Armazenamento secundário PONTEIRO BLOCO Foco em BD : armazenamento secundário
9
Tipos de Hashing Hashing estático Número fixo de endereços Difícil expansão / redução do arquivo dinamic. Hashing Linear Sem estrutura adicional ao arquivo Hashing Extensível/ Dinâmico Usar estrutura de acesso adicional ao arquivo Similar a indexação usa valor resultante da função hash no campo de pesquisa
10
Hashing extensível Um vetor/tabela 2 d Aplicar a função hash nas chaves Obtém-se número escolher qtde de bits para diferenciar entre os índices a serem armazenados no diretório. d é a profundidade global do diretório d especifica o nº de linhas da tabela (diretório), que será 2d.
11
Hashing extensível Porém Não é preciso haver um bucket para cada uma das 2 d localizações Introduz um nível indireto (depósitos) o array de ponteiros para blocos E não para os blocos dos dados Crescem em potências de 2 Em 1 etapa de cresc,, o número de depósitos é duplicado
12
Depósitos Blocos de dados
13
Profundidade global e local Profundidade global ( d) Profundidade local ( d' ) indica quantos bits da sequência da função hash usados para determinar pertinência dos registros. Pode ser menor ou igual a d
14
Uma tabela de Hash INSERT: h(a) = 1 h(b) = 2 h(c) = 1 h(d) = 0 01230123 d a c b h(e) = 1 e
15
Inserção numa tabela hash Inserir registro com chave de pesquisa k calcula-se o h(K) Tomar os primeiros i bits dessa sequência Ir para a entrada do array de dpepósitos indexada por i mantido como parte da e.d. Seguir o ponteiro do array de depósito Obtem-se o bloco B em dois MAS...
16
Inserção numa tabela hash ( 2) Considere j como o número de bits pertinentes ao bloco B 1. SE j < i : nada a fazer nos depósitos Desmembrar B em dois; Dsitribuir registros de B nos 2 blocos usando o (j+1)-ésimo bit Inserir j+1 em cada nó de cada bloco para indicar número de bits usados na pertinência Ajustar o array de depósitos para apontar os dois blocos, de acordo com o (j+1)-ésimo MAS... se não resolver
17
Inserção numa tabela hash ( 2) Todos registros retidos em um bloco B antigo, em lugar de divididos com o bloco novo SE i = j, incrementar i em 1 unidade O comprimento do array de depósito é duplicado 2 i é agora 2 i+1 W é a sequência de i bits indexando a entrada do depósito anterior w0, w1 apontam para mesmo bloco B J permanece o mesmo Agora i > j
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.