EDII06 [2012.1] Arquivos Sequenciais Ordenados por Link

838 views
722 views

Published on

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
838
On SlideShare
0
From Embeds
0
Number of Embeds
29
Actions
Shares
0
Downloads
28
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

EDII06 [2012.1] Arquivos Sequenciais Ordenados por Link

  1. 1. Arquivos Sequenciais Ordenados por Link Estrutura de Dados IIUnidade 06 UFS - DComp - Prof. Kenia Kodel 1
  2. 2. Flores?O verbo educar éoriginário do latim e querdizer extrair de dentro.Logo, a educação não seconstitui em meroestabelecimento deinformações, mas sim dese trabalhar aspotencialidades do ser, afim de que floresçam. UFS - DComp - Prof. Kenia Kodel 2
  3. 3. O segredo é nãocorrer atrás das borboletas... É cuidar do jardim para que elasvenham até você. . Mário Quintana UFS - DComp - Prof. Kenia Kodel 3
  4. 4. Arquivos SequenciaisPodem ser:1. Desordenados2. Ordenados, por chave(s) 2.1. Fisicamente 2.2. Por links (lógica)
  5. 5. O que é um arquivo sequencial ordenado por link?UFS - DComp - Prof. Kenia Kodel 5
  6. 6. Arquivo Sequencial Ordenado por Link São arquivos sequenciais, ou seja, o acesso a um determinado registro implica na varredura de todos os itens que o antecedem. São ordenados logicamente – a partir de campo que indica o endereço do próximo registro em ordem – campo link. UFS - DComp - Prof. Kenia Kodel
  7. 7. Arquivo Sequencial PACIENTE Ordenado por Link  SANGUE RH DOAÇÃO CONTATO PESO LINK0 21 Zé A + 12/12/03 (79)223.1542 80 -12 Beto B - 12/10/02 (79)8801.2017 70 4 Gil3 O + 11/09/04 (79)9941.1388 72 54 Clô AB - 02/02/05 (81)2212.6711 95 35 Sara A - 10/01/04 (11)2213.0909 73 1 UFS - DComp - Prof. Kenia Kodel
  8. 8. Em aplicações computacionais que manipulam arquivos sequenciais ordenados por link, que operações são úteis para manipulação da respectiva base de dados?UFS - DComp - Prof. Kenia Kodel 8
  9. 9. Operações sobre Arquivos Sequenciais Ordenados1. Inserção2. Remoção3. Consulta4. Alteração5. Classificação?6. Recuperação ? UFS - DComp - Prof. Kenia Kodel 9
  10. 10. Inclusão em Arquivos Sequenciais Ordenados por LinkNa inserção em arquivos ordenados por links:(1) o novo registro é inserido fisicamente no final;(2) são identificados os registros antecessor esucessor (lógicos) do novo registro (ponto deinserção);(3) o link do antecessor deve apontar para oendereço do novo registro e(4) o link do novo registro deve apontar para osucessor. UFS - DComp - Prof. Kenia Kodel
  11. 11. Arquivo Sequencial PACIENTE Ordenado por Link SANGUE RH DOAÇÃO CONTATO PESO LINK 0 21 Zé A + 12/12/03 (79)223.1542 80 -12 Beto B - 12/10/02 (79)8801.2017 70 43 Gil O + 11/09/04 (79)9941.1388 72 54 Clô AB - 02/02/05 (81)2212.6711 95 35 Sara A - 10/01/04 (11)2213.0909 73 1 Como efetuar a inserção de ANA, EVA e TEL no arquivo dado? UFS - DComp - Prof. Kenia Kodel
  12. 12. Elaborar algoritmo para efetuarinclusão em arquivos sequenciais ordenados por links: Cuidando do jardim!!! UFS - DComp - Prof. Kenia Kodel
  13. 13. Elaborar algoritmo para efetuar inclusão em arquivos sequenciais ordenados por links:type TpCliente = record Nome: string[5]; Link: longint; end;var Arq: file of TpCliente; Reg, RNovo, RAux: TpCliente; Anterior, PtIns: longint;begin {associacao a nome externo} assign(Arq,Entrada.dat); {abertura de arquivo} {$I-} reset(Arq); {$I+} if IOResult <> 0 then rewrite(Arq); ... UFS - DComp - Prof. Kenia Kodel
  14. 14. Elaborar algoritmo para efetuar inclusão em arquivos sequenciais ordenados por links: {inicializacao} Anterior:=0; if filesize(Arq)<>0 then begin seek(Arq,0); read(Arq,Reg); PtIns:=Reg.Link end else begin PtIns:=-1; seek(Arq,0); Raux.Chave:=’-1’; RAux.Link:=-1; write(Arq,RAux); end; {inclusao do novo registro} writeln(Nome: ); readln(RNovo.Nome); UFS - DComp - Prof. Kenia Kodel
  15. 15. Elaborar algoritmo para efetuar inclusão em arquivos seqüenciais ordenados por links:repeat if PtIns<>-1 then begin seek(Arq,PtIns); read(Arq,Reg); end; if (Reg.Nome>RNovo.Nome) or (PtIns=-1) then begin {atualizando anterior} seek(Arq,Anterior); read(Arq,RAux); RAux.Link:=filesize(Arq); seek(Arq,Anterior); write(Arq,RAux); {atualizando novo} RNovo.Link:=PtIns; seek(Arq,filesize(Arq)); write(Arq,RNovo); break; end else begin Anterior:=PtIns; seek(Arq,PtIns); read(Arq,Reg); PtIns:=Reg.Link; end; until false; UFS - DComp - Prof. Kenia Kodel
  16. 16. Qual o custo da operação de inserção em arquivo sequenciais ordenados por links? Linear, no pior caso.UFS - DComp - Prof. Kenia Kodel 16
  17. 17. Como efetuar remoção em arquivos sequenciais ordenados por link?UFS - DComp - Prof. Kenia Kodel 17
  18. 18. Arquivo Sequencial PACIENTE Ordenado por Link SANGUE RH DOAÇÃO CONTATO PESO LINK 0 21 Zé A + 12/12/03 (79)223.1542 80 -12 Beto B - 12/10/02 (79)8801.2017 70 43 Gil O + 11/09/04 (79)9941.1388 72 54 Clô AB - 02/02/05 (81)2212.6711 95 35 Sara A - 10/01/04 (11)2213.0909 73 1 Como efetuar a exclusão de CLÔ no arquivo dado? UFS - DComp - Prof. Kenia Kodel
  19. 19. Remoção em ArquivosSequenciais Ordenados por Link Para efetuar a exclusão em arquivos sequenciais ordenados por links é recomendada a remoção lógica dos registros, por meio do ajuste dos ponteiros, tomando o devido cuidado para posterior reutilização dos espaços livres. UFS - DComp - Prof. Kenia Kodel
  20. 20. Quais os efeitos da aplicação da exclusão física (com movimentação de dados, por exemplo) sobre arquivos ordenados por link? UFS - DComp - Prof. Kenia Kodel 20
  21. 21. Elaborar algoritmo para efetuarexclusão em arquivos sequenciaisordenados por links: Cuidando do jardim!!! UFS - DComp - Prof. Kenia Kodel
  22. 22. Elaborar algoritmo para efetuar exclusão em arquivos sequenciais ordenados por links:type TpCliente = record Chave: string[5]; Link: longint; end;var Arq: file of TpCliente; Reg, RExc, RAux: TpCliente; Anterior, PtExc : integer; Erro: integer; UFS - DComp - Prof. Kenia Kodel
  23. 23. Elaborar algoritmo para efetuar exclusão em arquivos seqüenciais ordenados por links:begin {associacao a nome externo} assign(Arq,Entrada.dat); {abertura de arquivo} {$I-} reset(Arq); {$I+} if IOResult <> 0 then rewrite(Arq); {inicializacao} Anterior:=0; {if filesize(Arq)<>0 then} seek(Arq,0); read(Arq,Reg); PtExc:=Reg.Link; writeln(Chave a excluir: ); readln(RExc.Chave); UFS - DComp - Prof. Kenia Kodel
  24. 24. Elaborar algoritmo para efetuar exclusão em arquivos sequenciais ordenados por links:repeat seek(Arq,PtExc); read(Arq,Reg); if (Reg.Chave=RExc.Chave) then begin {atualizando anterior} seek(Arq,Anterior); read(Arq,RAux); RAux.Link:=Reg.Link; seek(Arq,Anterior); write(Arq,RAux); {atualizando excluido e lista de excluidos} seek(Arq,0); read(Arq,Reg); val(Reg.Chave,RExc.Link,Erro); seek(Arq,PtExc); write(Arq,Reg); str(PtExc,Reg.Chave); seek(Arq,0); write(Arq,Reg); end else begin Anterior:=PtExc; seek(Arq,PtExc); read(Arq,Reg); PtExc:=Reg.Link; end; until PtExc=-1; {if PtExc=-1 then REGISTRO INEXISTENTE} close(Arq);end. UFS - DComp - Prof. Kenia Kodel
  25. 25. Qual o custo da operação de remoção em arquivo sequenciais ordenados por links? Linear, no pior caso.UFS - DComp - Prof. Kenia Kodel 25
  26. 26. Como efetuar busca em arquivos sequenciais ordenados por link?UFS - DComp - Prof. Kenia Kodel 26
  27. 27. É conveniente aplicar busca binária em arquivo sequencial ordenado por link?UFS - DComp - Prof. Kenia Kodel 27
  28. 28. Qual o custo da operação de busca em arquivo sequenciais ordenados por links?Se total, linear (com o agravante da necessidade de deslocamento do dispositivo de leitura).Se a partir de chave (específica): linear, no pior caso. UFS - DComp - Prof. Kenia Kodel 28
  29. 29. Operações sobre Arquivos Sequenciais OrdenadosComo efetuar a operação de alteração (edição) em arquivo sequencial ordenado por link? UFS - DComp - Prof. Kenia Kodel 29
  30. 30. Operações sobre Arquivos Sequenciais OrdenadosÉ preciso efetuar a operação de classificação em arquivo sequencial ordenado por link?Isto vale para todos os links? UFS - DComp - Prof. Kenia Kodel 30
  31. 31. Operações sobre Arquivos Sequenciais OrdenadosÉ preciso efetuar a operação de transferência entre memórias em arquivo sequencial ordenado por link?Que estrutura usar, neste caso, em memória principal? UFS - DComp - Prof. Kenia Kodel 31
  32. 32. Quanto de espaço de armazenamento os arquivo sequenciais ordenados por links usam?Sendo n o tamanho dos dados, usam n acrescido do espaço necessário aos links.UFS - DComp - Prof. Kenia Kodel 32
  33. 33. Visando garantir máxima eficiência na implementação de arquivos sequenciais, que forma de organização deve-se adotar? Desordenada, ordenada fisicamente ou ordenada por link? Justifique: Cuidando do jardim!!! UFS - DComp - Prof. Kenia Kodel 33
  34. 34. Quando aplicar arquivos sequenciais ordenados por link? Analisar frequência das operações x custo destas na situação problema.UFS - DComp - Prof. Kenia Kodel 34
  35. 35. Complementa r Estudos... File Organization and Processing Allan L Tharp Capítulo 2 Sequential File Organization35 UFS - DComp - Prof. Kenia Kodel
  36. 36. Próximo passo... Arquivos Diretos Dicionário UFS - DCOMP - Prof. Kenia Kodel 36

×