Você está na página 1de 35

Arquivo Sequencial e Indexado

Disciplina de Algoritmos e Estrutura de Dados III

Prof. Marcos Antonio Schreiner

08/06/2017
Introdução
• Armazenamento de pequeno volume de dados
– Acesso a um bloco de dados.

• Armazenamento de grande volume de dados


– Acesso a vários blocos de dados.
– Problemas nos acessos aleatórios de dados do
arquivo.

– Solução: Técnicas sofisticadas de organização de


arquivo.
Introdução
• Estratégias de Organização de Arquivo:

– Arquivo Sequencial Simples;

– Arquivo Sequencial Ordenado;

– Arquivo Sequencial Indexado;

– Arquivo Indexado.
Arquivo Sequencial Simples
• Definição
– Registros são distribuídos em uma ordem, um
após o outro.
– Ordem pode ser a sequencia de geração dos
registros.

• Vantagem
– Simplicidade

• Desvantagem
– Busca de registro através de acesso sequencial.
Arquivo Sequencial Ordenado
• Definição

– Os registros estão dispostos ordenadamente,


obedecendo à sequencia determinada por uma chave .

ARQUIVO EMPREGADO
Arquivo Sequencial Ordenado
• Principais Características

– Há uma ordenação, tanto lógica quanto física.

– Os registros possuem o mesmo formato.

– A descrição do formato de registro é denominada


layout do registro e é externa aos dados que ela
descreve (tipo, tamanho, etc).
Arquivo Sequencial Ordenado
• Vantagens
– Acesso sequencial eficiente quando a chave de
acesso coincide com a chave de ordenação.

• Desvantagens
– Acesso sequencial quando a chave de acesso
não coincide com a chave de ordenação.

– Problemas nas operações de modificação no


arquivo.
– Inserir (Deslocamentos);
– Excluir (Deslocamentos);
Arquivo Sequencial Indexado

• Motivação
– Quando o volume de acessos aleatórios torna-
se muito grande em um arquivo sequencial o
sistema pode ficar lento.

• Definição
– Um arquivo sequencial indexado é um arquivo
sequencial acrescido de um índice
Arquivo Sequencial Indexado
• O arquivo contém de 3 áreas:

– Área primária (principal): Reservada para os


registros de dados ordenado pelo campo chave.

– Área de índices: Um bloco de índices, sendo que


cada índice referencia um bloco de dados.

– Área de excedentes (overflow): Reservada


para o acréscimo de novos registros que não
podem ser colocados na área principal.
Arquivo Sequencial Indexado
• Estrutura
Arquivo Sequencial Indexado
• Estrutura em vários níveis

1
2
3
4
5
6
Máximo
Máximo do
do 7
Bloco

Índice em 2 níveis
Arquivo Sequencial Indexado
Área de Extensão (Área de Overflow)
– Armazena os registros inseridos após sua criação
do arquivo.

– Constitui uma extensão da área principal de


dados do arquivo.

– Necessária porque não é viável implementar


operações de inserção com deslocamentos neste
tipo de arquivo.
Arquivo Sequencial Indexado
Área de Extensão: Elo por Registro
– Destinar em cada registro da área principal um
campo de elo.

– Ele deve conter o endereço da lista encadeada de


seus sucessores (ou antecessores) alocados na área
de extensão.

– Nas inserções, um registro é inserido na lista de


extensão de seu sucessor ou antecessor.

– Ou é inserido no final do arquivo, por sua chave ser


maior que todas as outras do arquivo.
Arquivo Sequencial Indexado
Área de Extensão: Elo por Registro
ÁREA DE DADOS NO DISCO
ÍNDICE

ÁREA DE EXTENSÃO
Arquivo Sequencial Indexado
Área de Extensão: Elo por Bloco
– Cada bloco de registros na área principal de dados
possui um campo de elo.

– Os registros da área de extensão possuem valor de


chave maior do que os que estão no bloco da área
principal.

– Um registro é inserido no bloco selecionado e o maior


do bloco vai para a área de extensão.

– A ordenação dentro do bloco é feita em memória,


portanto não acarreta grande custo adicional.
Arquivo Sequencial Indexado
Área de Extensão: Exemplo
Inserir: 130 - Marta
ÁREA DE DADOS NO DISCO

ÍNDICE
B1

B2

ÁREA DE EXTENSÃO
Arquivo Sequencial Indexado
Área de Extensão: Exemplo
Inserir: 130 - Marta
ÁREA DE DADOS NO DISCO

ÍNDICE
B1

B2

ÁREA DE EXTENSÃO
Número Nome Elo
10 175 Bill -
20 150 João 10
Arquivo Sequencial Indexado

Procedimentos: Acesso

– Acesso serial: Direto sobre a área de dados +


extensão

– Acesso aleatório: Usando o índice


– Pelo endereço do registro.

– Ou deve ser feita uma busca dentro do bloco e


incluir mais acessos à área de extensão.
Arquivo Sequencial Indexado

Inclusão
– Usa a área de extensão.


Exclusão
– Pode ser colocada um marca de excluído para não
precisar reorganizar o arquivo


Alteração
– Busca o registro no arquivo;
– Se a alteração não envolve a chave de ordenação,
o registro é gravado na mesma posição;
– Se envolver a chave de ordenação, usa-se
Exclusão+Inclusão
Arquivo Sequencial Indexado
Reorganização

– Desempenho das operações é degradado à


medida que ocorrem um grande número de
inclusões e exclusões.

– Um novo índice deve ser gerado.

– O ponto de reorganização deve ser estabelecido,


por exemplo, 75% de utilização da área de
extensão.
Arquivo Sequencial Indexado

Principais Características
– Permite acesso aleatório satisfatório;

– Permite acesso sequencial eficiente;

– Permite, com relativa facilidade, as inserções e


exclusões, através do uso de áreas de extensão.

– Tem a necessidade de reorganizar os arquivos de


Índices
Arquivo Indexado
Motivação
– No Arquivo Sequencial Indexado temos a
necessidade de ter uma área de extensão e de
reorganizar o arquivo.

– Manter o arquivo sequencial passa a ser inviável


quando na aplicação existem muitos acessos
aleatórios.

Definição
– No arquivo Indexado há uma ordenação nos
índices cujos registros estão desordenados no
arquivo.
Arquivo Indexado - Exemplo

1
2
3
4
5
Arquivo Indexado
Atualização
– Atualização do registro pelo índice.
– Se alterar o índice ordenar o arquivo de índices.

Remoção
– Basta remover a referência do seu índice (remoção
lógica).
– Exclusão efetiva na substituição por outro dado
(inclusão) ou em uma reorganização do
arquivo.

Inclusão:
– No final do arquivo ou em endereço vago
(remoção).
– Manter o arquivo de índices ordenado.
Arquivo Indexado
– Podem existir tantos índices quanto forem as
chaves de acesso aos registros.

– Pode-se utilizar Árvore B+ para o tratamento de


índices.

– Podem existir três tipos de índices:


– Exaustivos;
– Seletivos;
– Indiretos.
Arquivo Indexado
Índice Exaustivo

– Possui uma entrada para cada registro.

1
2
3
4
5
Arquivo Indexado
Índice Seletivo

– Possui entradas para um subconjunto de registros.

– O subconjunto é definido por uma condição


relativa à chave.

– Exemplo:
– Índice dos funcionários estáveis;
– Índice dos funcionários que ganham mais de
1000,00 reais.
Arquivo Indexado
Índice Indireto
– Possui entradas que apontam para outro arquivo de
índice.

1
1
2
2
3
3
4
4
5
5
6
6
7 7
8 8
9 9
Arquivo Indexado

Principais Características

– Permite acesso aleatório satisfatório;

– Acesso sequencial é prejudicado.

– Facilidade na busca, inserções e exclusões.


Arquivo Direto
Motivação
– Acesso aos registros sem percorrer uma estrutura
auxiliar de índices.

– Que função podemos utilizar?


Arquivo Direto
Motivação
– Acesso aos registros sem percorrer uma estrutura
auxiliar.
– Como?

Definição
– Em um arquivo direto se utiliza uma função
hashing para calcular o endereço do registro no
arquivo.

– Dependendo do tratamento de conflito há a


necessidade de criar uma área de extensão.
Arquivo Direto
Semelhança com o Arquivo Indexado
– O acesso aleatório é eficiente.
– O acesso sequencial não é eficiente.

Diferenças para o Arquivo Indexado


– No indexado, o endereço é independente do
valor da chave.
– Não são previstos, no arquivo direto, acessos
sequenciais.
Exercícios

1)Descreva a diferenças, semelhanças,


vantagens e desvantagens dos arquivos
estudados. Desenhe cada um destes arquivos.
Exercícios

5) Descreva um algoritmo para inserir um


registro em um Arquivo Indexado.

6) Descreva um algoritmo para remover um


registro em um Arquivo Indexado.
Referências

SZWARCFITER, J. L., MARKENZON, L.
Estruturas de Dados e seus Algoritmos.
3a ed. Rio de Janeiro: LTC, 2010.


TENENBAUM, A. M., LANGSAM, Y., AUGENSTEIN,
M. J. Estruturas de Dados Usando C. São
Paulo: Makron, 1995.


LEISERSON, C. E., RIVEST, R. L., CORMEN, T. H.,
STEIN, C. Algoritmos – Teoria e prática.
Rio de Janeiro: Campus, 2002.

Você também pode gostar