Arquivo Sequencial e Indexado

Propaganda
Arquivo Sequencial e Indexado
Disciplina de Algoritmos e Estrutura de Dados III
Prof. Marcos Antonio Schreiner
15/07/2015
Introdução
• Armazenamento de pequeno volume de dados
– Acesso ao mesmo conjunto de dados.
• Armazenamento de grande volume de dados
– Problemas nos acessos aleatórios de dados do
arquivo.
– Solução: Técnicas sofisticadas de organização de
arquivo.
Introdução
• Arquivo
– Coleção de registros lógicos, cada um representando
uma entidade.
• Registro Lógico
– Sequencia de itens, sendo cada item campo ou
atributo da entidade.
– Cada campo é uma característica da entidade.
• Registro Físico
– Armazenamento em blocos de dados.
– Tamanho do bloco coincide com a arquitetura do
meio físico (Ex.: setor, trilha)
– Cada bloco armazena um número inteiro de
registros lógicos.
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
• Estrutura Básica
(Endereço lógico - Chave)
3 Dados
1
5
2
dados
10
dados
3
(Endereço Físico)
12
4
dados
...
5
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 a um registro 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 tornase 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
Máximo
Máximo do
do
Bloco
Índice em 2 níveis
1
2
3
4
5
6
7
Arquivo Sequencial Indexado
Área de Extensão (Área de Overflow)
– Destina-se a conter os registros inseridos, em um
arquivo sequencial indexado, após sua criação.
– 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.
– Geraria uma completa alteração no arquivo, pois
muitos registros mudam de endereço.
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 da área
principal.
– 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: Exemplo
Inserir: 165 - Marta
ÁREA DE DADOS NO DISCO
ÍNDICE
ÁREA DE EXTENSÃO
Arquivo Sequencial Indexado
Área de Extensão: Exemplo
Inserir: 165 - Marta
ÁREA DE DADOS NO DISCO
ÁREA DE EXTENSÃO
Número
10
175
20
275
Nome Elo
Bill
30
Nara
-
30
165
Marta
-
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
ÍNDICE
ÁREA DE DADOS NO DISCO
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
– Pode obter o endereço do próprio 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
Indices.
Exercícios
1) Descreva uma estrutura de dados para
gerenciar um Arquivo Sequencial Indexado.
2) Descreva um algoritmo de para inserir um
registro em um Arquivo Sequencial Indexado.
3) Descreva um algoritmo de para buscar um
registro em um Arquivo Sequencial Indexado.
4) Pense e discuta com seus colegas e o
professor como Reorganizar os registros em um
Arquivo Sequencial 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.
Download