Cálculos de Custos I/O-Arquivos Hash Introdução aos Métodos de Acesso RESUMO AULA 7 Profa....

16
Cálculos de Custos I/O- Arquivos Hash Introdução aos Métodos de Acesso RESUMO AULA 7 Profa. Sandra de Amo GBC053 – BCC 2012-2

Transcript of Cálculos de Custos I/O-Arquivos Hash Introdução aos Métodos de Acesso RESUMO AULA 7 Profa....

Page 1: Cálculos de Custos I/O-Arquivos Hash Introdução aos Métodos de Acesso RESUMO AULA 7 Profa. Sandra de Amo GBC053 – BCC 2012-2.

Cálculos de Custos I/O-Arquivos Hash

Introdução aos Métodos de Acesso

RESUMO AULA 7Profa. Sandra de Amo

GBC053 – BCC2012-2

Page 2: Cálculos de Custos I/O-Arquivos Hash Introdução aos Métodos de Acesso RESUMO AULA 7 Profa. Sandra de Amo GBC053 – BCC 2012-2.

Lembrando: Páginas do arquivo de índice são agrupadas por buckets

Bucket é determinado aplicando-se uma função h ao campo de procura

Exemplo: estamos procurando todos os empregados de salário = 5000Como encontrá-los rapidamente ?

Indice organizado por hash no campo SalárioFunção hash: mod 3Onde estão os rids dos empregados com salário = 5000 ?5000 mod 3 = 2 Resposta: bucket 2

Bucket 1 Bucket 2 Bucket 3

Page 3: Cálculos de Custos I/O-Arquivos Hash Introdução aos Métodos de Acesso RESUMO AULA 7 Profa. Sandra de Amo GBC053 – BCC 2012-2.

Resumo - Hash

Scan Sel = chave

Sel = Nchave

Sel <>

Insert Delete

sel1.25B (D+RC)

H + D + RC

1.25B(D+RC)

1.25B(D+RC)

H+2D+ C Sel +

D + RC

1.25BD D 1.25BD 1.25BD 2D Sel+D

Page 4: Cálculos de Custos I/O-Arquivos Hash Introdução aos Métodos de Acesso RESUMO AULA 7 Profa. Sandra de Amo GBC053 – BCC 2012-2.

Escolha de uma Boa Organização

Scan Sel =

chave

Sel = Nchave

Sel <> Insert Delete

Heap BD 0.5BD BD BD 2D 2D+Sel

Ord BD Dlog2B Dlog2B Dlog2B + B/2(D+RC)

Dlog2B+

D

Dlog2B+

D

Hash 1.25BD D 1.25BD 1.25BD 2D Sel+D

Page 5: Cálculos de Custos I/O-Arquivos Hash Introdução aos Métodos de Acesso RESUMO AULA 7 Profa. Sandra de Amo GBC053 – BCC 2012-2.

ISAM - Motivação Quais os empregados com salário > 2000 ? Busca binária no arquivo de índice até

encontrar o primeiro salário > 2000 Escaneia o arquivo de índice a partir deste

ponto e lê os registros correspondentes. Se o arquivo de índice é muito grande : busca

binária pode ser dispendiosa.

Page 6: Cálculos de Custos I/O-Arquivos Hash Introdução aos Métodos de Acesso RESUMO AULA 7 Profa. Sandra de Amo GBC053 – BCC 2012-2.

IdéiaCriar um segundo arquivo com um registro para cada página do arquivo de indice original

<primeira chave da página, ponteiro da página>

Ordenado por chave

Page 7: Cálculos de Custos I/O-Arquivos Hash Introdução aos Métodos de Acesso RESUMO AULA 7 Profa. Sandra de Amo GBC053 – BCC 2012-2.

Como são os nós internos da estrutura ISAM ?

P0 P1 P2 Pi Pi+1 PmK1 ... ...K2 K3 Ki+1 Km

Pi = ponteiros que apontam para um núm. de página no nível imediatamente inferior

Ki = valor do atributo chave do índice. Exemplo: se o atributo chave é idade então Ki é um valor de idade.

K < Ki+1 K ≥ Ki+1

Valores K da chave nesta página são < Ki+1

Valores K da chave nesta página são ≥ Ki+1

Page 8: Cálculos de Custos I/O-Arquivos Hash Introdução aos Métodos de Acesso RESUMO AULA 7 Profa. Sandra de Amo GBC053 – BCC 2012-2.

Organização do índice em árvore

Páginasauxiliaresque permitemchegar rapidamente a uma folha

Páginas do arquivo de índice

Páginas do Arquivo de Dados

Page 9: Cálculos de Custos I/O-Arquivos Hash Introdução aos Métodos de Acesso RESUMO AULA 7 Profa. Sandra de Amo GBC053 – BCC 2012-2.

Discussão ISAM é uma estrutura estática

Na criação do arquivo Páginas primárias (folhas) são alocadas 20% de cada página é livre para posteriores inserções,

tentando “adiar” ao máximo a criação de páginas de overflow

Páginas intermediárias são criadas. Manutenção :

Páginas de overflow são alocadas à medida que as páginas primárias do índice ficam cheias em decorrência de inserções.

Page 10: Cálculos de Custos I/O-Arquivos Hash Introdução aos Métodos de Acesso RESUMO AULA 7 Profa. Sandra de Amo GBC053 – BCC 2012-2.

Esquema Geral do Método ISAM

Páginasdos arquivosde indices(a partir da 2a camada)

Páginas de overflow

Páginas primárias –as entradas do arquivo de índice da primeira camada

Page 11: Cálculos de Custos I/O-Arquivos Hash Introdução aos Métodos de Acesso RESUMO AULA 7 Profa. Sandra de Amo GBC053 – BCC 2012-2.

Busca na estrutura ISAMExemplo: Busca da chave 27Em cada nível da estrutura: P0,K1,P1,K2,...,Km,Pm m chaves e m+1 ponteiros

Se 27 < K1: transfere a busca para a página apontada por P0 Se 27 ≥ Km: transfere a busca para a página apontada por Pm Caso contrário: varre-se a página para encontrar chaves K1,

K2 tais que Ki ≤ 27 < Ki+1 Transfere a busca para a página apontada por Pi

Page 12: Cálculos de Custos I/O-Arquivos Hash Introdução aos Métodos de Acesso RESUMO AULA 7 Profa. Sandra de Amo GBC053 – BCC 2012-2.

Exemplo: Busca de um registro de dados

40

Raiz

5120

10* 15* 20* 27* 33* 37* 46*40* 51* 55* 63* 97*

3363

Busca da chave 27

Page 13: Cálculos de Custos I/O-Arquivos Hash Introdução aos Métodos de Acesso RESUMO AULA 7 Profa. Sandra de Amo GBC053 – BCC 2012-2.

Inserção de um registro

40Raiz

5120

10* 15* 20* 27* 33* 37* 46*40* 51* 55* 63* 97*

3363

Inserção de 23*, 48*, 41*, 42*

23*

Página de Overflow

48* 41*

42*

Page 14: Cálculos de Custos I/O-Arquivos Hash Introdução aos Métodos de Acesso RESUMO AULA 7 Profa. Sandra de Amo GBC053 – BCC 2012-2.

Deleção de um registro

40Raiz

5120

10* 15* 20* 27* 33* 37* 46*40* 51* 55* 63* 97*

3363

Deleção de 42*, 51*, 97*

23*

Pagina de Overflow

48* 41*

42*

Procura 51*

Nunca sãoalteradas !!

Page 15: Cálculos de Custos I/O-Arquivos Hash Introdução aos Métodos de Acesso RESUMO AULA 7 Profa. Sandra de Amo GBC053 – BCC 2012-2.

Custo para chegar em uma folha Número de I/O = número de níveis da árvore

Capacidade de cada página = F = número de ponteiros saindo de cada página

Total de páginas primárias = N Número de níveis = logF N

Logo Custo I/O para chegar em uma folha = logF N

Page 16: Cálculos de Custos I/O-Arquivos Hash Introdução aos Métodos de Acesso RESUMO AULA 7 Profa. Sandra de Amo GBC053 – BCC 2012-2.

Comparação de CustosCusto de uma busca A = a

Arquivo de 1 000 000 registros 10 registros por página de dados : total de páginas = 100 000 100 ponteiros em cada página de índice (99 entradas (chave,pt) +

ponteiro P0) Arquivo não ordenado por A

Scan = 1000 000/10 = 100000 I/0 Arquivo ordenado por A

Busca binária = log2 100000 = 17 I/0 Arquivo estruturado usando método ISAM

Arquivo de indice usa alternativa 1 (registro do indice = registro de dados)

Custo = log100 100000 = entre 2 e 3 I/0, pois 1002 < 100000 < 1003