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

Post on 17-Apr-2015

108 views 2 download

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

Cálculos de Custos I/O-Arquivos Hash

Introdução aos Métodos de Acesso

RESUMO AULA 7Profa. Sandra de Amo

GBC053 – BCC2012-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

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

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

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.

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

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

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

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.

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

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

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

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*

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 !!

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

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