• Nenhum resultado encontrado

ALP2 Aula7 Tipos IndexadoSequencial

N/A
N/A
Protected

Academic year: 2021

Share "ALP2 Aula7 Tipos IndexadoSequencial"

Copied!
27
0
0

Texto

(1)

Professor:

Luiz A. P. Neves

Algoritmos e Lógica de

Programação II

(2)

Roteiro

Arquivo Seqüencial Indexado

 Conceito Arquivo Seqüencial Indexado

 Constituição Arquivo Seqüencial Indexado

 Índices

 Área de Extensão

 Operações de Acesso, Inclusão, Alteração e Exclusão

(3)
(4)

Arquivo Seqüencial Indexado

 Quando em um arquivo seqüencial o volume de acessos aleatórios torna-se muito grande, há a necessidade de

utilização de uma estrutura de acesso associada ao arquivo.

Um arquivo seqüencial acrescido de um índice (estrutura de acesso) constitui um arquivo seqüencial indexado.

(5)

Arquivo Seqüencial Indexado

 Um índice é formado por uma coleção de pares, cada um deles associando um valor de chave de acesso a um

endereço de arquivo.

Detalhe Importante:

 Um arquivo seqüencial indexado, além do arquivo seqüencial e do índice, possui áreas de extensão (overflow) para inserção de registros

(6)

Índices

Tem por finalidade permitir a rápida determinação do

endereço de um registro do arquivo, dado um

argumento de pesquisa.

Cada entrada do índice (Chave do Registro, Endereço

do Registro), ocupa um espaço bem menor do que o

registro de dados correspondente.

Isto torna a área ocupada pelo índice menor que a

(7)

Índices - Vantagens

 Com isto, a pesquisa sobre um índice pode ser feita com maior rapidez do que se fosse executada diretamente sobre o arquivo de dados correspondente.

 Este fato justifica a utilização de índices.

 Para tornar mais eficiente o processo de pesquisa, um índice pode ser estruturado em vários níveis.

(8)

Índices em vários níveis

 A figura a seguir (próximo slide) mostra um arquivo seqüencial indexado no

qual o índice é estruturado em dois níveis

 O índice é associado a chave de acesso NÚMERO

 Cada entrada deste índice identifica um bloco de registros

(9)
(10)

Índices

 O índice associado à chave de ordenação é denominado Índice Primário

 Os demais são Índices Secundários

 Em ambos os casos, as entradas do índice são

ordenadas pelo valor da chave de acesso, com finalidade de permitir eficiência no processo de pesquisa.

O fato de que os registros se apresentam fisicamente ordenados pelo valor da chave de acesso é aproveitado na organização de índices primários, para obtenção de flexibilidade nas operações de inserção de registros e economia de espaço no armazenamento de índices.

(11)

Índices

 O procedimento usual para aproveitamento desta característica é a utilização de uma entrada no índice para cada bloco de registros, ao invés de uma para cada registro individual

Sendo N o número de registros e m o número de blocos, o índice possuirá no seu último nível m entradas, ao invés de N

 Na figura apresentada os dados são divididos em nove blocos de três registros cada um

 No segundo nível há uma entrada do índice para cada bloco

(12)

Índices

• Com esta organização, a localização de

um registro passa a ser feita em duas

etapas:

(a)É consultado o índice e determinado o bloco

em que deve estar o registro

(b)O bloco selecionado é pesquisado, sendo

localizado o registro desejado.

• Muitas vezes é usual a implementação de

índices sob a forma de Árvores-B

(13)

Área de Extensão

Também chamada área de overflow

Destina-se a conter os registros inseridos,

em u arquivo seqüencial indexado, após a

criação do arquivo

Constitui-se em uma extensão da área

principal de dados

Nos arquivos seqüenciais a maioria dos

registros muda de endereço, o que no caso

dos seqüenciais indexados, implicaria em

(14)

Área de Extensão

• Duas são as alternativas principais para implementação de áreas de extensão:

(a) Destinar em cada registro da área principal um campo de elo para conter o endereço da lista encadeada de seus

antecessores (ou sucessores), alocados na área de extensão (b) Utilizar um campo de elo em cada bloco de registros, destinado

a conter o endereço da lista de extensões do bloco, sendo mantida a seqüencialidade física dos registros dentro de cada bloco da área principal e, sendo que todos os registros de

extensão de um bloco possuem ordem maior do que todos os da área principal do mesmo bloco.

(15)
(16)

Área de Extensão

 A segunda alternativa implica na mudança de endereços de registros dentro de um bloco

 Podem ser utilizadas mais de uma área de extensão para cada arquivo

 Sendo uma para cada bloco ou grupo de blocos adjacentes

 E, uma (ou mais) usada sempre que ocorre uma

inserção em um bloco cuja área de extensão já está completamente ocupada

(17)
(18)

Operações – Seqüencial

Indexado

Acesso a um registro

 Acesso seqüencial pode ser feito diretamente na área de

dados sem o uso do índice

 Cuidado com as áreas de extensão

 Acesso aleatório é feito com o uso dos índices

 O argumento de pesquisa define o caminhamento sobre o

índice, que conduz ao endereço do registro desejado

 O endereço pode ser o próprio endereço do registro ou do

(19)

Operações – Seqüencial

Indexado

Inserção de um registro

 Executa-se uma busca no arquivo, por meio do índice, para determinar o local onde vai ser inserido o novo registro

 Após determinar a posição, o registro é inserido na lista de extensão do seu sucessor na área principal (Elo por Endereço)

 Na organização de Elo por Bloco o registro é inserido no bloco selecionado

(20)
(21)

Operações – Seqüencial

Indexado

Exclusão de um registro

 É implementada pela colocação de uma marca “Excluído”

em um campo adicional do registro que indica o seu estado

 O campo de estado deve ser consultado nas demais operações, sendo desconsiderados os marcados como excluídos

(22)

Operações – Seqüencial

Indexado

Alteração de um registro

É feita uma pesquisa no arquivo, por meio do índice,

para a localização do registro a ser alterado

Se a alteração não envolve a chave de ordenação e

não aumenta o comprimento do registro, este é lido,

seus campos alterados e, novamente gravado na

mesma posição

Caso contrário, a alteração é implementada pela

exclusão do registro, após ser lido e, posterior

reinserção do registro atualizado

(23)

Operações – Seqüencial

Indexado

Leitura exaustiva dos registros

Acesso seqüencial pode ser feito diretamente na

área de dados sem o uso do índice

Devem ser incluídos os registros da área de

extensão

(24)

Conclusões

 Conforme vão sofrendo atualizações os arquivos

seqüenciais indexados o desempenho das operações sobre eles efetuadas vão sendo degradadas.

 O arquivo pode ser periodicamente reorganizado.

 Consiste em uma leitura exaustiva e transferência dos registros para uma nova área (colocados na área

principal) e deixadas livres as área de extensão

 Após a reorganização um novo índice deve ser gerado, pois os registros mudam de endereço.

 Os registros marcados como excluídos são fisicamente removidos.

(25)

 Arquivos Seqüenciais passíveis de serem acessados através de tabelas de

índices.

 Exemplo mais típico: ISAM (IBM).  Indexed Sequential Access Method

 Mais utilizado método de gerência de arquivos durante muito tempo.

 Suportado por linguagens de programação MUITO velhas como COBOL ou

PL/1.

 Existia como Pacote de Software disponível inicialmente só para mainframes

(Ex.: IBM 4341 e linha 370).

 Mais tarde passou a existir também para PCs no DOS.

Resumindo

(26)

Arquivos Indexados Seqüenciais: Características

Arquivo ordenado por chave primária

Tabela de índices também ordenada por chave primária é usada para acessar áreas

do arquivo.

Originalmente essa tabela ficava no começo do próprio arquivo. Pode ser implementada como um arquivo separado.

Tabela de índices pode ter vários níveis (índice hierárquico).

Inserções são realizadas na área de overflow ou área de espaço livre. Também

indexada na tabela.

Deleções somente são marcadas.

Atualização periódica através de cópia do arquivo.

(27)

Contatos

Prof. Dr Luiz Antônio

Pereira Neves

neves@ufpr.br

Referências

Documentos relacionados

Trabalho 04 Páginas 73-86 http://periodicos.cesg.edu.br/index.php/educacaoecultura periodicoscesg@gmail.com educativo de alunos que apresentam dificuldades de comunicação

(2019) Pretendemos continuar a estudar esses dados com a coordenação de área de matemática da Secretaria Municipal de Educação e, estender a pesquisa aos estudantes do Ensino Médio

No código abaixo, foi atribuída a string “power” à variável do tipo string my_probe, que será usada como sonda para busca na string atribuída à variável my_string.. O

O presente trabalho foi realizado em duas regiões da bacia do Rio Cubango, Cusseque e Caiúndo, no âmbito do projeto TFO (The Future Okavango 2010-2015, TFO 2010) e

libras ou pedagogia com especialização e proficiência em libras 40h 3 Imediato 0821FLET03 FLET Curso de Letras - Língua e Literatura Portuguesa. Estudos literários

Em 2015 e 2014, a Companhia não registrou investimentos mantidos até o vencimento ou ativos financeiros disponíveis para a venda. O valor justo dos recebíveis não difere dos

dois gestores, pelo fato deles serem os mais indicados para avaliarem administrativamente a articulação entre o ensino médio e a educação profissional, bem como a estruturação

Zn–Cu alloys in the same experimental set-up used in the present study, it has been shown that an equation relating the cellular spacing to the cooling rate, derived for