270 likes | 371 Views
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
E N D
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. argumento1 1100 ANTONIO 34 1700 2 1335 JOSE 27 800 3 1787 ADEMAR 43 2327 4 3255 PEREIRA 25 2005 x=‘JOSE’E=2 5 3553 MARIA 29 1500 x:chave primária NÚMERO NOME IDADE SALÁRIO E=f(x)
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”.
1 2 3 4 5 6 7 8
Tabelas de dispersão. Métodos: -Método da divisão. Chave Endereço 4 0 5 1 6 2 7 3 8 Endereço= (chave mod 4)
-Método da separação. 71 = 00010¦00111 00010 xor 00111 00101 = 5 logo f(x)=5
-Método da multiplicação. f(x)=71*n ex.:n=2 0001000111 00010001110=14 logo f(x)=14
-Método da dobra (soma dos pares). 56|39|0 2 94|0 2 4 1 logo f(x)=41
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.
Função Coincidindo endereço Chave Endereço 4 0 5 1 6 2 7 3 8 Endereço= (chave mod 4)
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.
Chave Endereço 0 01 10 10 01 00 02 02 00 15 04 15 06 7 07 X mod 5
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.
Exterior/Puro 01 00 15 10 03 06 19 X mod 5
Interior/Extensão 01 10 03 00 05 07 X mod 5 15 09
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).
01 00 15 10 03 06 19 X mod 5
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). - Sehouver 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
Argumentode Pesquisa C=Laura E=2 E=F(C) Número Nome Salário 1 2 3 1100 Antônio 1500 1800 Laura 7500 1800 Laura 6500 2950 Sandra 1100
4.5 - Leitura exaustiva - É efetivada pela aplicação sucessiva da operação de acesso a um registro.
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.