35
Acesso Sequencial Indexado vo: Considerar de forma unificada as seguintes vis estruturas de acesso a arquivos: o indexada: o arquivo é visto como um conjunto de ros indexados por chaves. o sequencial: o arquivo pode ser acessado sequencia o registros ordenados por chaves.

Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo

Embed Size (px)

Citation preview

Page 1: Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo

Acesso Sequencial Indexado

Objetivo: Considerar de forma unificada as seguintes visõessobre estruturas de acesso a arquivos:

• Visão indexada: o arquivo é visto como um conjunto de registros indexados por chaves.

• Visão sequencial: o arquivo pode ser acessado sequencialmente,gerando registros ordenados por chaves.

Page 2: Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo

Operações cosequenciais + operações indexadas

ler um arquivo “inteiro” (menos seek) para, por exemplo, ordená-lo

ler cada chave para acessar os registros

Exemplo:

Acesso Sequencial Indexado

Page 3: Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo

Conjuntos de sequência de registros

Objetivo: manter dinamicamente um conjunto de registros ordenados por chaves no disco

Problema: ordenação do arquivo em disco é “cara”!

Solução:

• organizar os registros em blocos operações locais

• um bloco se torna a menor unidade endereçável nas operações

de leitura e escrita no disco (é carregado todo na RAM).

Page 4: Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo

Exemplo:

Chaves = nomes4 nomes/bloco (fator de bloco)

Chaves:AdamsBairdBixbyBooneBynumCarsonColeDavisDenverEllis

Page 5: Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo

Adams Baird Bixby Boonebloco 1

Bynum Carson Cole Davisbloco 2

Denver Ellisbloco 3

Introduzir Carter :

Cole Davis

Adams Baird Bixby Boonebloco 1

Bynum Carson Carterbloco 2

Denver Ellisbloco 3

bloco 4

bloco 1

bloco 2

bloco 3

bloco 2 subdivisão (split)de bloco

Page 6: Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo

Eliminar Davis :

Cole

Adams Baird Bixby Boonebloco 1

Bynum Carson Carterbloco 2

Denver Ellisbloco 3

bloco 4

bloco 1

bloco 2

bloco 3

bloco 2

underflow

Page 7: Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo

Eliminar Davis :

Cole Denver

Adams Baird Bixby Boonebloco 1

Bynum Carson Carterbloco 2

Ellis

bloco 3

bloco 4

bloco 1

bloco 2

bloco 3

bloco 2

disponível

concatenação

Conclusão: o arquivo inteiro pode ser mantido ordenado apenaspela ordenação de suas partes (blocos).

Page 8: Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo

Problemas:

• A ordenação do arquivo pode exigir mais espaço em disco por conta de fragmentações internas. Neste caso, pode-se adotar estratégias que privilegiem a redistribuição de chaves.

• A ordem física dos registros só é garantida ao longo deum bloco e não entre-blocos.

Qual deve ser o tamanho de um bloco?

-Deve representar um compromisso entre tempo de acesso, memória RAM (buffer) disponível e as operações a serem executadas.

• O tamanho do bloco deve permitir o armazenamento de vários destes na memória.• O tempo de leitura e escrita de um bloco não deve ser muito longo (para não perder o que se ganhou economizando-se em seeks).

Page 9: Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo

Sequência de registros e indexação

Objetivo: definir um método eficiente que possibilite o acesso aum bloco contendo uma chave (ou registro) procurada.

Ideia: construir um índice de chaves (a partir do último registro decada bloco, por exemplo), apontando para cada um destes blocos.

Adams-Berne Bolen-Cage Camp-Dutton Embry-Evans Faber-Folk Folks-Gaddis

Sequência de blocos:

1 2 3 4 5 6

Page 10: Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo

Adams-Berne Bolen-Cage Camp-Dutton Embry-Evans Faber-Folk Folks-Gaddis

1 2 3 4 5 6

Chave Número do BlocoBerne 1Cage 2Dutton 3Evans 4Folk 5Gaddis 6

Índices da sequência de blocos

Page 11: Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo

Chaves delimitadoras

• Os índices servem apenas de guia na busca do bloco que contém a chave aser acessada delimitadores

• Menor delimitador possível (não-único) economia de espaço (neste caso, teremos uma árvore B+ de prefixo simples)

Adams-Berne Bolen-Cage Camp-Dutton Embry-Evans Faber-Folk Folks-Gaddis

1 2 3 4 5 6

BO CAM E F FOLKS

Delimitadores de blocos

Page 12: Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo

Arquivo sequencial indexado e árvore B+ de prefixo simples

E

BO CAM F FOLKS

Adams-Berne Bolen-Cage Camp-Dutton Embry-Evans Faber-Folk Folks-Gaddis

1 2 3 4 5 6

conjunto deíndices

Page 13: Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo

• A partir dos índices na árvore B, podemos acessar um bloco da seguinteforma:

1. Se chave procurada < delimitador, então vá para a esquerda na árvore

2. se chave >= delimitador, então vá para a direita na árvore

Lembrando: Árvore B+ de prefixo simples os delimitadores são os menores possíveis na árvore B

A busca

Page 14: Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo

Operações sobre árvores B+

• Supressão de registros sem originar concatenação e redistribuição alteraçõesapenas nos blocos de registros; o conjunto de índices não é alterado

E

BO CAM F FOLKS

Adams-Berne Bolen-Cage Camp-Dutton Embry-Evans Faber-Folk Folks-Gaddis1 2 3 4 5 6

conjunto deíndices

• Inserção sem subdivisão idem

Page 15: Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo

6

Apagar Embry e Folks

E

BO CAM F FOLKS

Adams-Berne Bolen-Cage Camp-Dutton Embry-Evans Faber-Folk Folks-Gaddis1 2 3 4 5

E

BO CAM F FOLKS

Adams-Berne Bolen-Cage Camp-Dutton Ervin-Evans Faber-Folk Frost-Gaddis1 2 3 4 5 6

Page 16: Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo

• Inserção causando subdivisão mudanças no número de blocos de registros

alteração no conjunto de índices através das regras aplicadas às árvores B.

• Supressão com redistribuição e/ou concatenação idem

Page 17: Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo

E

BO CAM F FOLKS

Adams-Berne Bolen-Cage Camp-Dutton Ervin-Evans Faber-Folk Frost-Gaddis

1 2 3 4 5 6

Inserir Ayers

Ayers (causa subdivisão do bloco 1 com criação do bloco 7)

CAMAY F FOLKS

Adams-Avery Bolen-Cage Camp-Dutton Ervin-Evans Faber-Folk Frost-Gaddis

1 2 3 4 5 6

BO E

Ayers-Berne

7

Page 18: Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo

• Supressão com underflow concatenação dos blocos de registros

CAMAY F FOLKS

Adams-Avery Bolen-Cage Camp-Dutton Ervin-Evans Faber-Folk Frost-Gaddis

1 2 3 4 5 6

BO E

Ayers-Berne

7

remoções no bloco 2 causam underflow e subsequenteconcatenação com o bloco 3, o qual pode ser colocado numaavail list

Page 19: Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo

CAMAY F FOLKS

Adams-Avery Bolen-Cage Camp-Dutton Ervin-Evans Faber-Folk Frost-Gaddis

1 2 3 4 5 6

BO E

Ayers-Berne

7

concatenação

AY F FOLKS

Adams-Avery Ervin-Evans Faber-Folk Frost-Gaddis

1 4 5 6

BO

E

Ayers-Berne

7

Bolen-Dutton

2

Page 20: Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo

Assim:

• Se blocos de registros são subdivididos um novo delimitador é necessáriono conjunto de índices

• Se blocos são concatenados um separador deve ser removido do conjuntode índices

• Se registros são redistribuídos entre blocos da sequência de registros o delimitador no conjunto de índices deve ser atualizado

Page 21: Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo

Blocos de Conjunto de Índices (delimitadores)

• Os índices podem ser armazenados em blocos, tal como os registros (de mesmo tamanho dos blocos dos registros)

• Os delimitadores podem ser de tamanho variável grande número dedelimitadores em um bloco de índice árvore menos profunda. Umabusca binária pode ser feita sobre estes delimitadores armazenados emRAM

Page 22: Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo

AsBsBroCChCraDeleEdlErrFaFle

00 02 04 07 08 10 13 17 20 23 25

delimitadores concatenados

NRR dos delimitadores

AsBsBroCChCraDeleEdlErrFaFle 00 02 04 07 08 10 13 17 20 23 25 B00 B01 B02 B03 B04 B05 B06 B07 B08 B09 B10 B1111 28

Número de delimitadores

Tamanho total dos delimitadores

delimitadores NRR dos delimitadores Número relativo dos blocos

Exemplo de estrutura de um bloco de índice

Page 23: Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo

AsBsBroCChCraDeleEdlErrFaFle 00 02 04 07 08 10 13 17 20 23 25 B00 B01 B02 B03 B04 B05 B06 B07 B08 B09 B10 B1111 28

Número de delimitadores

Tamanho total dos delimitadores

delimitadores NRR dos delimitadores Número relativo dos blocos

B00 As B01 Bs B02 Bro B03 C B04 Ch B05 Cra B06 Dele B07 Edi B08 Err B09 Fa B10 Fle B11

0 1 2 3 4 5 6 7 8 9 10

ordem dos delimitadores

Nível conceitual:

Page 24: Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo

Criação sequencial da árvore B+

Problema: A criação aleatória da árvore ( com registros introduzidos não-ordenadamente à medida que chegam) envolve operações

de subdivisão e redistribuição que são “caras”.

Ideia: Ordenar o conjunto dos registros que comporão a árvore, armazenando-os sucessivamente nos blocos os registros são armazenados na ordem correta. Para cada bloco é definido oseu delimitador que, em seguida, é armazenado no bloco de índices (contido namemória até que o bloco esteja cheio)

Page 25: Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo

ALWASPBET 00 03 06

Access-Also Always-Ask Aspect-Best Better-Cast

Exemplo:

Page 26: Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo

Catch-CheckNovo bloco

ALWASPBET 00 03 06

Access-Also Always-Ask Aspect-Best Better-Cast

-1 -1 -1

00 -1 -1CAT

Catch-Check

bloco semdelimitadores!

Page 27: Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo

ALWASPBET 00 03 06

Access-Also Always-Ask Aspect-Best Better-Cast

00 -1 -1CAT

Catch-Check

Class-CopyNovo bloco

CL 00 -1 -1

Class-copy

Page 28: Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo

ALWASPBET 00 03 06

Access-Also Always-Ask Aspect-Best Better-Cast

00 -1 -1CAT

Catch-Check

CL 00 02 -1

Class-copy

Cost-DamageNovo bloco

Cost-Damage

COS

Page 29: Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo

DEALWASPBET 00 03 06

Access-Also Always-Ask Aspect-Best Better-Cast

00 -1 -1CAT

Catch-Check

CL 00 02 05

Class-copy Cost-Damage

Delete-DiseNovo bloco

COS

Delete-Dise

Page 30: Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo

DEALWASPBET 00 03 06

Access-Also Always-Ask Aspect-Best Better-Cast

00 03 -1CAT

Catch-Check

CL 00 02 05

Class-copy Cost-Damage

COS

Delete-Dise

Drum-EditorNovo bloco

Drum-Editor

DR

-1 -1 -1

Page 31: Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo

Effort-Crow

DEALWASPBET 00 03 06

Access-Also Always-Ask Aspect-Best Better-Cast

00 03 -1CAT

Catch-Check

CL 00 02 05

Class-copy Cost-Damage

COS

Delete-Dise

Effort-CrowNovo bloco

Drum-Editor

DR

00 -1 -1EF

Page 32: Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo

Effort-Crow

DEALWASPBET 00 03 06

Access-Also Always-Ask Aspect-Best Better-Cast

00 03 -1CAT

Catch-Check

CL 00 02 05

Class-copy Cost-Damage

COS

Delete-Dise

Drum-Editor

DR

00 02 -1EFH

Head-IdealNovo bloco

Head-Ideal

Page 33: Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo

Effort-Crow

DEALWASPBET 00 03 06

Access-Also Always-Ask Aspect-Best Better-Cast

00 03 -1CAT

Catch-Check

CL 00 02 05

Class-copy Cost-Damage

COS

Delete-Dise

Drum-Editor

DR

00 02 03EFHIG

Ignore-ItemNovo bloco

Head-Ideal Ignore-Item

Page 34: Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo

ALWAYSASPECTBETTER 00 06 12

Access-Also Always-Ask Aspect-Best Better-Cast

Separadores Completos

Page 35: Acesso Sequencial Indexado Objetivo: Considerar de forma unificada as seguintes visões sobre estruturas de acesso a arquivos: Visão indexada: o arquivo

Referência:

- Michael J. Folk e Bill Zoellick. File Structures, Second Edition, Addison-Wesley, 1992.