universidade federal do pará centro de ciências exatas e naturais departamento de informática
DESCRIPTION
Universidade Federal do Pará Centro de Ciências Exatas e Naturais Departamento de Informática Disciplina: Estrutura de Dados II Prof.: Sampaio Arquivo Direto Por: Sebastião Farias Júnior Mat.:9908803801 Ricardo Souza Mat.:9908801101. 1- Arquivo Direto - PowerPoint PPT PresentationTRANSCRIPT
Universidade Federal do Pará
Centro de Ciências Exatas e Naturais
Departamento de Informática
Disciplina: Estrutura de Dados II
Prof.: Sampaio
Arquivo Direto
Por:
Sebastião Farias Júnior Mat.:9908803801
Ricardo Souza Mat.:9908801101
1- Arquivo Direto» Consiste na instalação dos registros em determinados endereços, baseados no valor de uma chave primária, ao contrário do arquivo indexado que utiliza uma estrutura auxiliar(índice) »Utiliza uma função que calcula o endereço de um registro, eliminando a necessidade de um índice»Objetivo principal é o mesmo do arquivo indexado, que é obter acesso aleatório eficiente
Representação de acesso a um arquivo direto.
argumento 1 1100 ANTONIO 34 1700
2 1335 JOSE 27 800
3 1787 ADEMAR 43 2327 4 3255 PEREIRA 25 2005x=‘JOSE’ E=2 5 3553 MARIA 29 1500
x:chave primária
E=f(x)
NÚMERO NOME IDADE SALÁRIO
2 - Cálculo do endereço.
-Funções Determinísticas: associa um único valor da chave de acesso a cada endereço.
-Funções Probabilísticas: geram para cada valor da chave primária um endereço ”tão único quanto possível”.
F(x)=[(x - 900) / 61] +1
Número Endereço Número Endereço1000 2 1400 91050 3 1440 91075 3 1480 101100 4 1600 121300 7 1700 141350 8 1800 15
Número Nome Idade Elo
1000 Jose 25
1050 Fernanda 32 41100 Pamela 27
1075 Anderson 19
1300 Antonio 33
1350 Vanessa 21
1400 Valéria 18
1
2
3
4
5
6
7
8
Tabelas de dispersão.
Métodos:
-Método da divisão.
4
5
6
7
8
Endereço= (chave mod 4)
0
1
3
2
Chave Endereço
3 - Tratamento de colisões - Aspecto mais importante na organização de arquivos direto.
- Conseqüência do uso de funções não determinísticas.
- Ocorre quando a dois valores diferentes da chave de acesso é atribuídos o mesmo endereço.
- Soluções: endereçamento aberto e encadeado.
3.1 - Tratamento por endereçamento aberto:
- Ao ocorrer uma colisão em uma operação de inserção, é feita uma busca sobre o arquivo para localização de um endereço livre.
- Métodos de busca: pesquisa seqüencial, pesquisa no bloco, realeatorização.
3.2 - Tratamento por encadeamento
- Todos ou parte dos registros que colidem em um endereço gerado são juntados(organizados) em uma lista de encadeada.
- Meios de organização: utilização de encadeamento puro e áreas de extensão.
4- Operações:
4.1 - Acesso a um registro
- Acesso serial: uso de uma função de cálculo de endereço que preserva a ordem dos registros pelo valor da chave de acesso.
Exemplo
- Acesso Aleatório: Uso de uma função de cálculo de endereço ao argumento de pesquisa C, obtendo-se o endereço E=F(C).
4.2 - Inserção de um registro
-A função de cálculo de endereço (F) é aplicada à chave C do registro a ser inserido, resultando o endereço E=F(C).
- Se houver colisões, utiliza-se um dos métodos de tratamento de colisão citados anteriormente
4.3 - Remoção de um registro
- Acessa o registro que se quer excluir, se
necessário é colocado o valor “excluído” no seu
campo de estado. Caso esteja encadeado em alguma
lista de colisão, pode ser dela removido, ou não.
4.4-Alteração de um registro• Se a alteração não mudar o valor da chave de acesso nem aumentar o comprimento do registro, este é simplesmente lido, alterado e gravado no mesmo endereço
• Caso contrário, o registro é excluído, alterado e novamente inserido, de acordo com a operação de inserção em arquivos diretos
1800 Laura 6500
1100 Antônio 15001800 Laura 7500
2950 Sandra 1100
1
2
3
Argumentode Pesquisa
C=Laura
Número Nome Salário
E=F(C)
E=2
4.6 - Reorganização do arquivo
- Efetuada periodicamente por motivos de eficiência de acesso.
- Áreas de extensão: reagrupa os registros de uma mesma lista em posições contíguas da área.
- Encadeamento puro: reagrupamento dos registros de cada lista em posições tão próximas quanto possível.