Professional Documents
Culture Documents
Arquivos Indexados
de novos registros Excluso de registros existentes Alterao de registros existentes Pesquisa de registros
Arquivos Indexados
Incluso
A
eficincia na incluso fcil de ser obtida, desde que no haja movimentao de registros. Basta inserir os novos registros no final do arquivo pesquisa, entretanto, se torna lenta pois, para se obter um registro com uma chave especfica, necessrio realizar uma leitura sequencial exaustiva do arquivo
Pesquisa
A
Arquivos indexados
Para garantir rapidez na pesquisa, pode-se usar uma estrutura de indexao Essa estrutura reduz o nmero de acessos a disco, j que a chave seria procurada nesta estrutura, mantida na memria principal do computador, e no haveria compromisso com a ordem fsica do arquivo
Arquivos Indexados
O termo chave utilizado para designar o campo de um registro que ser utilizado no processo de localizao de um registro dentro de um arquivo Desta forma, ser possvel acessar um determinado registro diretamente, sem nos preocuparmos com os registros que o antecedem
Exemplo:
em um cadastro de funcionrios, poder ser utilizado o campo matrcula como sendo a chave para a manipulao do mesmo
Arquivos Indexados
Um ndice um mapeamento que associa a cada chave, uma referncia ao registro que a contm Assim, dada uma chave de pesquisa, o ndice fornece imediatamente a localizao do registro correspondente
RRN
Arquivos indexados
Alterao
O
processo de atualizao, considerando a existncia do ndice, tambm ser rpido Dada a chave do registro que deve ser alterado, pode-se acess-lo rapidamente e gravar as novas informaes
Arquivos Indexados
Excluso
Se
um registro tiver que ser removido, basta remover sua referncia do ndice (remoo lgica) Uma excluso efetiva (fsica) ocorreria somente durante o processo de reorganizao do arquivo, quando uma cpia dele seria gerada, contendo apenas os registros ainda referenciados no ndice
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 constituda por um par (chave do registro, endereo do registro) A sequencia fsica das entradas no ndice visa tornar mais eficiente o processo de busca e permitir o acesso serial ao arquivo
Tipos de ndice
ndices exaustivos
ndices seletivos
ndices indiretos
ndice Exaustivo
ndice Seletivo
Possui entradas apenas para um subconjunto dos registros O subconjunto definido por uma condio relativa chave de acesso e/ou a outros atributos do arquivo Exemplo
ndice
ndice Indireto
Possui entradas que apontam para outro arquivo de ndice No segundo ndice, h a referncia aos registros de dados A figura a seguir mostra um primeiro ndice seletivo indireto, um ndice exaustivo e o arquivo de dados
ndice Indireto
Necessidade de atualizao de todos os ndices quando um registro inserido no arquivo Atualizao dos ndices tambm necessria quando a alterao de um registro envolve um atributo associado a algum ndice
Pesquisa/busca Excluso Insero Alterao Leitura exaustiva Reorganizao de um arquivo Reconstruo do ndice
Busca pelo ndice correspondente chave de acesso usada para localizao da entrada correspondente ao argumento de pesquisa e obteno do registro de dados A busca no arquivo de ndice pode ser sequencial ou binria
Opes
Excluso
Problema:
Excluso As
Problema:
Deve-se
Funciona
No
final do arquivo
Pode-se manter um ndice seletivo para endereos vazios necessrio verificar se a chave escolhida j no est cadastrada no arquivo
Dois
Feita aps a verificao da existncia do registro necessrio, portanto, realizar uma operao de busca Quando o registro localizado, seus campos so alterados Se uma chave de acesso for alterada, os arquivos de ndice devem ser alterados Caso a alterao seja na chave de identificao, necessrio verificar primeiro se j no existe um registro com a nova chave
Leitura sequencial de todos os registros A ordem seguida a ordem dos registros no arquivo de ndice
static void ListaIdxMat() { BinaryReader idxMat = new BinaryReader(new FileStream("FuncMat.idx", FileMode.Open, FileAccess.Read)); Funcionario Func = new Funcionario(); short Matr; long Pos = 0; while (idxMat.PeekChar() >= 0) { Matr = idxMat.ReadInt16(); Pos = idxMat.ReadInt64(); streamArq.Seek(Pos, SeekOrigin.Begin); Func.Ler(inFunc); // Processamento } idxMat.Close(); }
Principais objetivos
Colocar
Isso
Remover
Nem sempre a reconstruo pode ser feita na memria interna (o arquivo de ndice to grande que no cabe na memria) A ordenao do ndice pode ser feita utilizando qualquer algoritmo de ordenao Sugere-se, entretanto, a utilizao de algoritmos mais eficiente como o QuickSort