introdução aos arquivos sequenciais

5
Introdução aos arquivos sequenciais. Um um arquivo seqüencial, os registro são dispostos ordenadamente, obedecendo a seqüência determinada por uma chave primária, chamada chave de ordenação. Na figura abaixo, é apresentado um exemplo de arquivo seqüencial, no qual é usado como chave de ordenação o atributo NÚMERO. NÚMERO NOME IDADE SALÁRIO 100 Pedro 23 1000 150 Leandro 20 500 200 Rodrigo 19 270 250 Maria 30 5000 300 Celso 27 2500 350 Ana 42 9000 400 João 22 2100 450 Gisele 23 1300 500 Jack 21 800 550 Sandra 24 2400 Esta organização, que representa um aperfeiçoamento em relação àquela na qual os registros são dispostos aleatoriamente, representa, também, uma perda de flexibilidade por não acomodar com simplicidade as operações de modificação do arquivo. O acesso a uma registro, dado um argumento de pesquisa, é facilitado se a chave de acesso coincide com a chave de ordenação (ou com sua parte inicial), pois, nos demais casos, não há vantagem na seqüencialidade do arquivo. 4. Introdução aos Arquivos Seqüenciais Indexados Quando em um arquivo seqüencial o volume de acessos aleatórios torna-se muito grande, configura-se a necessidade de utilização de uma estrutura de acesso, associada ao arquivo, que ofereça maior eficiência na localização de um registro identificado por um argumento de pesquisa do que os métodos vistos para arquivos seqüenciais. Um arquivo seqüencial, acrescido em um índice (estrutura de acesso) constitui um arquivo seqüencial indexado. Um índice é formado por uma coleção de pares, cada um deles associando um valor da chave de acesso a um endereço no arquivo. Assim, um índice é sempre específico para uma chave de acesso. Além do arquivo seqüencial e do índice, um arquivo seqüencial indexado possui áreas de extensão que são utilizadas para a implementação da operação de inserção de registros. - Índices

Upload: flavia-gomes

Post on 09-Nov-2015

213 views

Category:

Documents


1 download

DESCRIPTION

Aapós a apresentação da terminologia usada neste capítulo, são apresentadas introduções sobre quatro estratégias de organização de arquivos voltadas para o acesso por meio de chaves primárias, que são Arquivo Seqüencial, Arquivo Seqüencial Indexado, Arquivo Indexado, Arquivo Direto, e uma, Arquivo Invertido, voltada para acesso por meio de chaves secundárias.

TRANSCRIPT

  • 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 NOME IDADE SALRIO

    100 Pedro 23 1000

    150 Leandro 20 500

    200 Rodrigo 19 270

    250 Maria 30 5000

    300 Celso 27 2500

    350 Ana 42 9000

    400 Joo 22 2100

    450 Gisele 23 1300

    500 Jack 21 800

    550 Sandra 24 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 NOME ELO

    10 175 BILL -

    20 275 NARA -

    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. E=F(chave)

    ---> E = 3

    |-------->

    NMERO NOME SALRIO

    1 200 PAULO 3100

    2

    3 150 MARIA 2500

    4

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