Download: Apresentação em ppt - Universidade Federal do Pará

Propaganda
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
Ricardo Souza
Mat.:9908803801
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.
NÚMERO
NOME
IDADE
SALÁRIO
argumento
1
1100 ANTONIO 34
x=‘JOSE’
2
3
4
5
1335
JOSE
27
800
1787 ADEMAR 43 2327
3255 PEREIRA 25 2005
3553 MARIA
29 1500
E=f(x)
x:chave primária
E=2
1700
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
1000
2
1050
3
1075
3
1100
4
1300
7
1350
8
Número
1400
1440
1480
1600
1700
1800
Endereço
9
9
10
12
14
15
1
2
3
4
Número
1000
1050
1100
1075
Nome
Jose
Fernanda
Pamela
Anderson
Idade
25
32
27
19
Elo

4


1300
1350
1400
Antonio
Vanessa
Valéria
33
21
18



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).
5 6|3 9|0 2
9 4|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
X mod 5
07
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
10
00
03
06
19
X mod 5
15
Interior/Extensão
01
10
03
00
05
07
15
09
X mod 5
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
10
00
03
06
19
X mod 5
15
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
Número
1
Argumento
de Pesquisa
2
E=F(C)
C=Laura
E=2
3
Nome
1100 Antônio
1800 Laura
2950 Sandra
Salário
1500
7500
6500
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.
Download