You are on page 1of 9

1.

Introduo O armazenamento de pequenos volumes de dados, via de regra, no encerra grandes problemas no que diz respeito distribuio dos registros dentro de um arquivo, desde que a freqncia de acessos aleatrios a registros no seja muito elevada. A medida que cresce o volume de dados e/ou a freqncia e a complexidade dos acessos, crescem tambm os problemas de eficincia do armazenamento dos arquivos e do acesso a seus registros, sendo a sofisticao das tcnicas de armazenamento e recuperao de dados uma conseqncia da necessidade de acesso rpido a registros pertencentes a grandes arquivos ou, simplesmente, arquivos muito solicitados. A maneira intuitiva de armazenar um arquivo consiste na distribuio dos seus registros em uma ordem arbitrria, um aps o outro, dentro da rea destinada a cont-lo. Esta ordem pode ser, por exemplo, aquela na qual os registros so gerados. Isto causa uma dificuldade na localizao dos registros e uma perda de eficincia, porm esta tcnica intuitiva bastante usada, principalmente durante as fases preliminares da gerao de um arquivos. A seguir, aps a apresentao da terminologia usada neste captulo, so apresentadas introdues sobre quatro estratgias de organizao de arquivos voltadas para o acesso por meio de chaves primrias, que so Arquivo Seqencial, Arquivo Seqencial Indexado, Arquivo Indexado, Arquivo Direto, e uma, Arquivo Invertido, voltada para acesso por meio de chaves secundrias. <<
topo

2. Terminologia Um arquivo formado por uma coleo de registros lgicos, cada um deles representando um objeto ou entidade. Um registro lgico, ou simplesmente registro, formado por uma seqncia de itens, sendo cada item chamado campo ou atributo. Cada item corresponde a uma caracterstica ou propriedade do objeto representado. Cada campo possui um nome, um tipo e um comprimento. O comprimento dos valores de um atributo pode ser constante para todos os registros do arquivo, ou varivel. O armazenamento de um arquivo feito, via de regra, por blocos de registros lgicos (um bloco chamado registro fsico), sendo, em cada leitura ou gravao, lido ou gravado todo um bloco e no apenas um registro lgico. Uma chave uma seqncia de um ou mais campos em um arquivo.

Uma chave primria uma chave que apresenta um valor diferente para cada registro do arquivo, de tal forma que, dado um valor da chave primria, identificado um nico registro do arquivo. Usualmente a chave primria formada por um nico campo. Uma chave secundria difere de uma primria pela possibilidade de no possuir um valor diferente para cada registro. Assim, um valor de uma chave secundria identifica um conjunto de registros. Chave de acesso a chave utilizada para identificar o(s) registro(s) desejado(s) em uma operao de acesso a um arquivo. Argumento de pesquisa o valor da chave de acesso em uma operao. Chave de um registro o valor de uma chave primria em um particular registro do arquivo Chave de ordenao a chave primria usada para estabelecer a seqncia na qual devem ser dispostos (fsica ou logicamente) os registros de um arquivo. <<
topo

3. Introduo aos Arquivos Seqenciais Em 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. As operaes nos arquivos seqenciais, bem como nas demais organizaes, sero vistas nas prximas aulas. << topo 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 1 2 3 4 NMERO 100 150 200 250 NOME PEDRO JOO MARIA CARLA SALRIO 3000 1500 2500 3000

300 5 |---------NDICE---------|

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------------|

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


<< topo

NMERO 175 275

NOME BILL NARA

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:
NMERO NOME SALRIO 1 200 PAULO 3100 E=F(chave) ---> E = 3 2 150 MARIA 2500 |--------> 3 4 5 250 FABIO 2500 |-----------REA DE DADOS NO DISCO------------|

chave: 150--->

- 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. << topo 7. Introduo aos Arquivos Invertidos Esta organizao baseada em uma mudana nos papeis de registro e atributos, de tal forma que, em vez de serem coletados os valores dos atributos para cada registro, so identificados os registros que possuem cada um dos particulares valores da chave de acesso considerada. A cada um dos valores da chave de acesso, presentes no arquivo, associada uma lista de identificaes de registros, chamada lista invertidas. As tcnicas usuais na organizao de ndices so vlidas tambm para este caso, devendo ser tomado o devido cuidado com o fato de que, em um arquivo invertido, a cada valor da chave de acesso est associado no apenas um endereo do registro, mas sim um conjunto de endereos dos registros que possuem aquele valor da chave. O conjunto de listas invertidas associado a uma chave de acesso chamado inverso, sendo que um arquivo invertido pode assumir uma ou mais inverses. Na figura abaixo, representado um arquivo invertido com duas inverses associadas chave secundria IDADE, uma contendo os ENDEREOS e outra NMEROS.

IDADE 20 22 23 25 27 IDADE 20 22 23 25 27

ENDEREOS 2 8 9 1 5 4 6 10 3 7 NMEROS 200 300 100 350 400 250 600 550 150 450

1 2 3 4 5 6 7 8 9 10

NMERO 350 200 150 250 400 600 450 300 100 550

NOME PEDRO GISA MAX SANDRA PAULO CARLA ROBSON CELSO RENATA LEANDRO

IDADE 22 20 27 23 22 25 27 20 20 25

Na primeira inverso, os registros so identificados por seus endereos fsicos. Esta modalidade apresenta a vantagem de permitir o acesso direto ao registro, mas acarreta o problema de que as listas so vlidas apenas para aquela disposio fsica dos registros, sendo que, caso o arquivo venha a sofrer uma reorganizao que envolva mudana nos endereos dos registros, todas as inverses devero ser novamente geradas. Uma alternativa para este problema consiste na identificao dos registros por meio de uma de suas chaves primrias, como na segunda inverso. Com isto as listas invertidas passam a ser independentes da localizao fsica dos registros, havendo, no entanto, perda de eficincia no acesso, em virtude da necessidade de determinar o endereo do registro uma vez obtida a sua chave primria na lista. << topo 8. Quadro Comparativo entre as Organizao de Arquivos Eis um quadro comparativo, que lista as vantagens e desvantagens das vrias organizaes de arquivos.
Arquivo Seqencial Seqencial Indexado Vantagens Desvantagens - Acessos seqenciais mais - Operaes de modificaes no eficientes. so simples. -Utilizam ndices, que agilizam - Necessidades de reas de a consulta por estarem na extenso, que precisam ser RAM. reorganizadas. -No existem reas de extenso - Atualizao do ndice quando - Registros sem compromisso da insero de um registro. com armazenamento fsico. -Acesso direto, sem - Determinar funes que gerem necessidade do ndice. menor nmero de colises - As listas invertidas valem - Acesso direto ao registro aps apenas para aquela disposio localizao da lista invertida. fsica do arquivo.

Indexado Direto Invertido

9. Exerccios Aps ter estudado a introduo das organizaes de arquivos, faa os exerccios do assunto clicando aqui.
<< topo

voltar

You might also like