Você está na página 1de 5

Introduo aos arquivos sequenciais.

Um um arquivo seqencial, os registro so dispostos ordenadamente, obedecendo a


seqncia determinada por uma chave primria, chamada chave de ordenao. Na figura
abaixo, apresentado um exemplo de arquivo seqencial, no qual usado como chave
de ordenao o atributo NMERO.
NMERO
100
150
200
250
300
350
400
450
500
550

NOME
Pedro
Leandro
Rodrigo
Maria
Celso
Ana
Joo
Gisele
Jack
Sandra

IDADE
23
20
19
30
27
42
22
23
21
24

SALRIO
1000
500
270
5000
2500
9000
2100
1300
800
2400

Esta organizao, que representa um aperfeioamento em relao quela na qual os


registros so dispostos aleatoriamente, representa, tambm, uma perda de flexibilidade
por no acomodar com simplicidade as operaes de modificao do arquivo.
O acesso a uma registro, dado um argumento de pesquisa, facilitado se a chave de
acesso coincide com a chave de ordenao (ou com sua parte inicial), pois, nos demais
casos, no h vantagem na seqencialidade do arquivo.
4. Introduo aos Arquivos Seqenciais Indexados
Quando em um arquivo seqencial o volume de acessos aleatrios torna-se muito
grande, configura-se a necessidade de utilizao de uma estrutura de acesso, associada
ao arquivo, que oferea maior eficincia na localizao de um registro identificado por
um argumento de pesquisa do que os mtodos vistos para arquivos seqenciais.
Um arquivo seqencial, acrescido em um ndice (estrutura de acesso) constitui um
arquivo seqencial indexado.
Um ndice formado por uma coleo de pares, cada um deles associando um valor da
chave de acesso a um endereo no arquivo. Assim, um ndice sempre especfico para
uma chave de acesso.
Alm do arquivo seqencial e do ndice, um arquivo seqencial indexado possui reas
de extenso que so utilizadas para a implementao da operao de insero de
registros.
- ndices

A finalidade de um ndice permitir rpida determinao do endereo de um registro do


arquivo, dado um argumento de pesquisa. O endereo identifica a posio onde est
armazenado o registro, na memria secundria.
Usualmente, cada entrada do ndice, formada por um par (chave do registro, endereo
do registro), ocupa um espao bem menor do que o registro de dados correspondente, o
que faz com que a rea ocupada pelo ndice seja menor do que aquela ocupada pelos
dados. Com isto a pesquisa sobre o ndice pode ser feito com maior rapidez do que se
fosse feita diretamente sobre o arquivo de dados correspondente. Este fato constitui a
justificativa maior para a utilizao dos ndices.
Veja a figura abaixo, que apresenta o arquivo seqencial indexado:
NMERO ENDEREO
100
1
150
2
200
3
250
4
300
5
|---------NDICE---------|

NMERO
NOME SALRIO
1
100
PEDRO
3000
2
150
JOO
1500
3
200
MARIA
2500
4
250
CARLA
3000
5
300
MAX
2000
|-----------REA DE DADOS NO DISCO-----------|

- reas de Extenso
A rea de extenso (tambm chamada rea de overflow) destina-se a conter os registros
inseridos, em um arquivo seqencial indexado, aps a criao do arquivo. Ela constitui
uma extenso da rea principal de dados do arquivo.
reas de extenso so necessrias em arquivos seqenciais indexados, porque nesses
no vivel a implementao da operao de insero de registros do mesmo que nos
arquivos seqenciais. Naquele processo, a maioria dos registros muda de endereo, o
que obrigaria uma completa alterao nas entradas do ndice, a cada atualizao do
arquivo.
Uma possvel implementao de reas de extenso em um arquivo seqencial indexado
consiste em destinar um em cada registro da rea principal um campo de elo para conter
o endereo da lista encadeada de seus sucessores (ou antecessores) alocados na rea de
extenso, conforme a figura:
NMERO ENDEREO
100
1
150
2
175
2
200
3
250
4
275
4
300
5
|---------NDICE---------|

NMERO
NOME
ELO
1
100
PEDRO
2
150
JOO
10
3
200
MARIA
4
250
CARLA
20
5
300
MAX
|-----------REA DE DADOS NO DISCO-----------|

NMERO
175
275

NOME
BILL
NARA

ELO
10
20
30
40
50
|----------------REA DE EXTENSO---------------|

5. Introduo aos Arquivos Indexados


Nos arquivos seqenciais indexados, o compromisso de manter os registros fisicamente
ordenados pelo valor da chave de ordenao, com o objetivo de prover um acesso serial
eficiente, acarreta uma srie de problemas, principalmente no que diz respeito
operao de insero de um registro, conduzindo necessidade de utilizao de reas de
extenso e efetivao de reorganizaes peridicas.
medida que decresce a freqncia de acessos seriais, relativamente freqncia de
acessos aleatrios, a manuteno da seqencialidade fsica do arquivo encontra uma
compensao cada vez menor em termos de eficincia de acesso, at tornar-se
antieconmica.
A partir deste ponto, torna-se mais conveniente o uso de um arquivo indexado, no qual
os registros so acessados sempre atravs de um mais ndices, no havendo qualquer
compromisso com a ordem fsica de instalao dos registros.
A liberdade na escolha do endereo no qual um registro armazenado representa um
ganho de flexibilidade que permite maior eficincia, principalmente na operao de
insero de um registro, conduzindo, tambm, a uma simplificao da estrutura geral do
arquivo, sendo dispensados os mecanismos complexos de administrao de reas de
extenso.
Veja a figura abaixo, que apresenta o indexado:
NMERO ENDEREO
100
4
150
3
200
1
250
5
300
2
|---------NDICE---------|

NMERO
NOME SALRIO
1
200
PAULO
3100
2
300
JOS
4500
3
150
MARIA
2500
4
100
MARISA
5000
5
250
FABIO
2500
|-----------REA DE DADOS NO DISCO-----------|

- ndices
Em um arquivo indexado, podem existir tantos ndices quantas forem as chaves de
acesso aos registros. Um ndice consiste de uma entrada para cada registro considerado

relevante com relao chave de acesso associada ao ndice. As entradas do ndice so


ordenadas pelo valor da chave de acesso, sendo cada uma delas constituda por um par
(chave do registro, endereo do registro). A seqencialidade fsica das entradas no
ndice visa a tornar mais eficiente o processo de busca e permitir o acesso serial ao
arquivo.
Um ndice dito exaustivo quando possui uma entrada para cada registro do arquivo e
seletivo quando possui entradas apenas para um subconjunto de registros. O
subconjunto definido por uma condio relativa chave de acesso e/ou a outros
atributos do arquivo.Um exemplo de ndice seletivo seria o ndice dos funcionrios
estveis (h mais de 10 anos na empresa) sobre o cadastro geral de funcionrios de uma
empresa.
O maior problema relacionado com a utilizao de arquivos indexados diz respeito
necessidade de atualizao de todos os ndices, quando um registro inserido no
arquivo. Atualizaes nos ndices tambm so necessrias quando a alterao de um
registro envolve atributos associados a ndices. Nos arquivos seqenciais indexados, a
necessidade de alterao dos ndices eliminada pelo uso de reas de extenso e
encadeamento na implementao de inseres; no entanto, esta estratgia no
condizente com a idia de arquivos indexados, nos quais a manuteno constante dos
ndices necessria. << topo
6. Introduo aos Arquivos Diretos
A idia bsica de um arquivo direto consiste na instalao dos registros em endereos
determinados com base no valor de uma chave primria, de modo que se tenha acesso
rpido aos registros especificados por argumentos de pesquisa, sem que haja
necessidade de percorrer uma estrutura auxiliar (ndice).
Um arquivo direto semelhante a um arquivo indexado, no sentido de que, nos dois
casos, o objetivo principal a obteno de acesso aleatrio eficiente. Em um arquivo
direto, aos invs do ndice usada uma funo que calcula o endereo do registro a
partir do argumento de pesquisa.
As duas organizaes possuem diferenas importantes, alm do modo pelo qual feito
o acesso. uma delas o fato de que nos arquivos indexados, ao contrrio dos diretos, o
endereo onde um registro armazenado independe do valor de sua chave, e uma outra,
muito importante, diz respeito a acessos seriais, que nos arquivos indexados so
providos por meio de ndices e nos arquivos diretos no so previstos, de acordo com a
idia bsica.
Veja a figura abaixo, que apresenta o arquivo direto:

1
chave: 150-E=F(chave) ---> E = 3
2
->
|--------> 3
4
5

NMERO
200

NOME SALRIO
PAULO
3100

150

MARIA

2500

250

FABIO

2500

|-----------REA DE DADOS NO DISCO-----------|


- Clculo de Endereos
O primeiro problema com os arquivos diretos o da determinao de uma funo F, que
transforme o valor da chave C de um registro no endereo E que lhe corresponde no
arquivo.
Podemos considerar dois tipos de funes, sendo o primeiro constitudo pelas funes
determinsticas, as quais associam um nico valor da chave de acesso a cada endereo.
Este tipo de funo apresenta vantagens evidentes; no entanto, impossvel, em termos
prticos, encontrar uma funo determinsticas simples para um grande nmero de
registros. Aquelas que poderiam ser usadas seriam to complexas que eliminariam as
vantagens do acesso direto, alm de necessitarem adaptaes a cada insero sofrida
pelo arquivo. No tm, portanto, maior interesse prtico.
O segundo tipo formado pelas funes probabilsticas, as quais geram para cada valor
da chave um endereo "to nico quanto possvel", podendo gerar, para valores distintos
de chave, o mesmo endereo, fato este que denominado coliso.
- Tratamento das Colises
Um dos aspectos mais importantes na organizao de arquivos diretos diz respeito ao
problema das colises, que uma conseqncia do uso de funes no determinsticas
para a transformao dos valores da chave de acesso em endereos do arquivo.
Para se tratar as colises, as solues mais freqentes usadas so Endereamento Aberto
com Pesquisa Seqencial e Encadeamento. A primeira consiste em fazer uma busca
sobre o arquivo para localizao de um endereo livre, sendo nele armazenado o
registro. A pesquisa do endereo livre de forma seqencial, ou seja, se o endereo E
gerado pela chave estiver ocupado, o prximo a ser consultado ser o endereo E + 1, E
+ 2,...,M,1,1,...,E - 1 at se encontrar um lugar vago para armazenar o registro.
Na segunda soluo, todos ou parte dos registros que colidem em um mesmo endereo
so juntados em uma lista encadeada, qual se tem acesso por meio do endereo gerado
pela funo de aleatorizao. As duas estratgias mais usadas so a utilizao de reas
de extenso e encadeamento puro.

Você também pode gostar