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

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

Estruturas de Dados para projeto de SGBD. Estruturas de dados analisadas Estruturas de nível Esparso Denso Combinadas Arvore B+ Tabela de hash.

Apresentações semelhantes


Apresentação em tema: "Estruturas de Dados para projeto de SGBD. Estruturas de dados analisadas Estruturas de nível Esparso Denso Combinadas Arvore B+ Tabela de hash."— Transcrição da apresentação:

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


Carregar ppt "Estruturas de Dados para projeto de SGBD. Estruturas de dados analisadas Estruturas de nível Esparso Denso Combinadas Arvore B+ Tabela de hash."

Apresentações semelhantes


Anúncios Google