Estruturas de Dados - T.332 Capítulo 11 Gerenciamento de Arquivos

Apresentações semelhantes


Apresentação em tema: "Estruturas de Dados - T.332 Capítulo 11 Gerenciamento de Arquivos"— Transcrição da apresentação:

1 Estruturas de Dados - T.332 Capítulo 11 Gerenciamento de Arquivos

2 Tipos de Dispositivos:
11.1 Introdução Arquivo: Conjunto de Dados em um Dispositivo de Armazenamento Secundário (externo). Tipicamente: Disco, Disquete, Fita, CD-ROM, MO-Disc, Zip, Jaz, etc Tipos de Dispositivos: Acesso Seqüencial Fita (Carretel, Streamer, DAT, Travan) Dados só podem ser lidos na mesma ordem em que foram escritos. Escrita só é possível após o final da área utilizada. Acesso Aleatório Disco, CD, MO, Disquete, Zip, Jaz Dados podem ser lidos e escritos* em qualquer ordem *à exceção do CD

3 11.1.1 Características: Memória Secundária x RAM
Vantagens: Rápido acesso Fácil de alterar Desvantagens: Volátil (dados desaparecem qdo. desligamos máquina) Dispositivos de Armazenamento Secundário Vantagens Espaço muito maior do que memória primária (RAM) Conservativos (dados não desaparecem qdo. desligamos máquina) Desvantagens Acesso comparativamente muito lento Alteração/Inclusão de dados às vezes ainda mais lenta.

4 11.1.2 Dispositivos de Acesso Seqüencial
Exemplo típico: Fita Extremamente lentos. Utilizados para: armazenar dados que vão ser acessados todos de uma só vez e não vão mais ser alterados. Uso típico: Backup Gerência de arquivos não se ocupa muito destes dispositivos.

5 11.1.3 Dispositivos de Acesso Randômico/Aleatório
Exemplo típico: Disco Relativamente rápidos Utilizados para: Dados que sofrem freqüêntes pesquisas Dados muito alterados ou não definitivos Uso típico: área de trabalho ou banco de dados Base para as técnicas que serão vistas.

6 11.1.4 Gerência de Dados: 1ª Noção Intuitiva
Usamos RAM para armazenar dados temporariamente enquanto estamos processando-os. Usamos dispositivos de armazenamento secundário para guardar dados não processados e dados depois de processados. Solução Intuitiva: Um programa carrega todos os dados que necessita em uma estrutura de dados na memória, os processa completamente e depois os escreve de volta. Problemas: Dados podem não caber na mémoria. Ler e depois reescrever todos os dados de um conjunto toma muito tempo. Pode ser que estejamos interessados em processar somente uma pequena fração do conjunto.

7 11.2 Gerenciamento de Arquivos
Def.: Conjunto de Métodos e Técnicas para (eficientemente): Classificar arquivos e conteúdo de arquivos; Fazer busca de dados em arquivos; Acrescentar dados a arquivos; Eliminar dados de arquivos; Alterar valores de dados existentes em arquivos; Copiar arquivos; Alocar, desalocar e manter espaço em dispositivos de armazenamento secundário para manter arquivos. Maior restrição: Tempo

8 11.2.1 Gerência de Arquivos: Objetivo Principal
Solução para o problema da leitura/escrita de todos os dados: trabalhamos com os dados organizados em arquivos. só trazemos para a memória dados que queremos alterar só escrevemos em disco novos dados que queremos incluir só retiramos do disco dados que queremos eliminar. Fator mais restritivo: o tempo de acesso aos dados organizamos os arquivos de forma a minimizar o tempo de acesso aos dados eficiência na organização tem prioridade maior que economia de espaço (pode ser desperdiçado moderadamente)

9 11.2.2 Gerência de Arquivos: Princípio Básico
Organizamos os dados de forma a minimizar o número de acessos à memória secundária para executar uma operação (procura, inserção, alteração, deleção). Para isto utilizamos: organizações de dados mais rígidas de que na memória (mesmo que isso signifique desperdício de espaço) técnicas de indexação algoritmos de busca

10 Disco Exemplo típico para uma memória secundária de acesso aleatório. Compreender a forma de armazenamento é importante. Modelo de estruturação do disco serve para todos os outros meios secundários.

11 Modelo Simplificado Arquivo Setor ocupando 2 Setores
Dados são organizados em superfícies, trilhas e setores, blocos. Um arquivo pode ser imaginado como sendo constituído por uma seqüência de dados no disco. Acesso é feito através do posicionamento de um cabeçotes de r/w em qualquer ponto. Uma unidade de alocação do disco (um bloco ou um setor) possui um endereço físico no disco. Podemos endereçar estes da mesma forma que fazemos com a RAM 1 Trilha Superfície de um Disco

12 Modelo mais Realista Setor O disco pode apresentar fragmentação: i.é., os dados não estão exatamente em espaços contíguos, mas em unidades de alocação longe umas das outras, encadeadas como uma lista. O encadeamento é tarefa do sistema operacional e do hardware (controladora) do disco. 1 Trilha Superfície de um Disco

13 Exemplo: Disco Real

14 Disco: Para Trabalhar Início Tudo o que precisamos para trabalhar com técnicas de gerência de arquivos é imaginar: que um arquivo é uma seqüência de dados sem “buracos” meio. que podemos acessar qualquer parte deses dados através de seu endereço relativo (a partir do início). que só podemos incluir um dados novos no fim dados do meio só podem ser alterados. Apagar um dado significa marcá- lo como apagado ou substituí-lo por outro ! Fim

15 11.3 Tipos de Arquivos Há basicamente dois tipos de arquivos, olhados do ponto de vista do armazenamento de informação: Arquivos de Formato Variável Arquivos de Registros

16 11.3.1 Arquivos de formato variável
São arquivos onde a única unidade de endereçamento possível é o byte. Os arquivos não são organizados em estruturas. Exemplo típico: arquivos texto. Mesmo sendo os arquivos texto organizados em linhas, estas têm tamanho variável e não servem para endereçar o arquivo, i.é., você não sabe a que distância do começo do arquivo a “linha 13” está. São tratados como arquivos de acesso seqüencial.

17 11.3.2 Arquivos de Registros ou de Acesso Randômico
São arquivos organizados em unidades (maiores que 1 byte) de tamanho sempre igual, chamadas registros. Registros têm a mesma filosofia que as structs em “C” ou records em Pascal. São conjuntos de dados com tamanho fixo, mesmo que uma parte não seja aproveitada. Permitem que sejam usados como unidade de endereçamento relativa. Ex.: “Registro 34278” Ex.: Podemos armazenar um nodo de uma árvore como um registro. O ponteiro “direita” apontará para o endereço relativo de um registro representando outro nodo no arquivo. Técnicas de Gerência de Arquivos são voltadas aos Arquivos de Registros.

18 Feito o acesso pode-se realizar uma operação de leitura ou escrita.
Acesso a Registros Quase todas as linguagens de programação provêm uma facilidade para o acesso a arquivos de endereçamento randômico. Ex.: Comando seek( arquivo, posição) em Pascal. Ex.: fseek(arquivo*,posição,SEEK_SET) em “C” O acesso é feito simplesmente fornecendo-se o endereço relativo (número de registro). O resto (encontrar a trilha e o setor, posicionar o cabeçote, etc) é incumbência do sist. operacional e do hardware do dispositivo e é transparente ao programador/usuário. Feito o acesso pode-se realizar uma operação de leitura ou escrita.

19 Registro Elemento básico de um arquivo de acesso randômico.
Definições Registro Elemento básico de um arquivo de acesso randômico. Todos os registros de um arquivo têm o mesmo tamanho. Ítem de Dados É o campo de um registro. Ocorrência É uma instância de um registro com determinados valores. Organização Física A forma de organização de de um arquivo, sua estrutura (de dados e de índices). Contrapartida ao conceito de Estrutura de Dados.

20 Escolha da Organização de Arquivos
Principal Objetivo: Fornecer caminhos de acesso aos registros durante as operações de recuperação e atualização de dados. Critérios: Consultas sempre envolvem buscas. Os caminhos de acesso aos registros devem tornar essas buscas o mais eficientes possível. Depende: Tipos de consultas permitidas Número de chaves (só uma ou chaves secundárias) Ex.: Vamos indexar uma lista telefônica só por nome ou também por rua ou número ? Modos de recuperação e de atualização.

21 Consulta simples: cargo = “motorista”
Tipos de Consulta empregado : registro { nome : string cargo : string salário : inteiro dataBase : tipoData endereço : string } Consulta simples: cargo = “motorista” Consulta em uma faixa: salário > 560 Consulta booleana: cargo = “motorista” E salário > 300 E dataBase = 15

22 Indexação Podemos usar um campo de uma estrutura de registro para “identificar” esse registro. Chamamos a este campo de chave. Índice é uma estrutura de dados que mantém o conjunto de chaves de um arquivo e seus endereços e serve de referência para os registros. Índice Primário (ou Indexação por Chave Primária) é um índice único que organiza o arquivo através do campo considerado “mais importante” ou “identificador” da sua definição de registros. Ex.: “empregado” por nome. Índice Secundário (ou Indexação por Chave Secundária) é um índice que organiza o arquivo referenciando outro campo ou combinação de campos. Ex.: Indexamos “empregado” por nome e por data-base. Data-base é um índice secundário. nome

23 Métodos de Gerência/Organização
Arquivos Seqüenciais Primária Arquivos Indexados Seqüenciais Árvores AVL, B K-D Primária, Secundária Listas (Primária e Secundária) Multilista Arquivo Invertido

24 Um registro está atrás do outro.
Arquivos Seqüenciais Um registro está atrás do outro. Leitura é realizada seqüencialmente Escrita só no final. Indexação: Ordenação por Chave Primária Indexação Primária: Podemos ordenar o arquivo pelo campo chave. Semelhante à lista ordenada em um vetor. Vantagem: Acesso seqüencial de um conjunto de dados é o mais rápido. Útil qdo. sempre tenho de processar quase todos os elementos. Desvantagens: Inclusão e Exclusão é extremamente custosa. 2 soluções: Cópia Inclusão/Exclusão com o algoritmo da lista ordenada em vetor

25 Exemplo: Inclusão em Arquivo Seqüencial com Chave
0015 Início 0001 0002 0005 0012 0014 0016 0018 0028 0045 0050 0056

26 Exemplo: Inclusão em Arquivo Seqüencial com Chave
Início 0001 0002 0005 0012 0014 Início 0001 0002 0005 0012 0014 0016 0018 0028 0045 0050 0056

27 Exemplo: Inclusão em Arquivo Seqüencial com Chave
Início 0001 0002 0005 0012 0014 Início 0001 0002 0005 0012 0014 0016 0018 0028 0045 0050 0056 0015

28 Exemplo: Inclusão em Arquivo Seqüencial com Chave
Início 0001 0002 0005 0012 0014 Início 0001 0002 0005 0012 0014 0016 0018 0028 0045 0050 0056 0015 0016 0018 0028 0045 0050 0056

29 11.3.2.2 Arquivos Indexados Seqüenciais
Arquivos Seqüenciais passíveis de serem acessados através de tabelas de índices. Exemplo mais típico: ISAM (IBM). Indexed Sequential Access Method Mais utilizado método de gerência de arquivos durante muito tempo. Suportado por linguagens de programação MUITO velhas como COBOL ou PL/1. Existia como Pacote de Software disponível inicialmente só para mainframes (Ex.: IBM 4341 e linha VMS). Mais tarde passou a existir também para PCs sob DOS.

30 Arquivos Indexados Seqüenciais: Características
Arquivo ordenado por chave primária Tabela de índices também ordenada por chave primária é usada para acessar áreas do arquivo. Originalmente essas tabelas ficava no começo do próprio arquivo. Tabela de índices pode ter vários níveis (índice hierárquico ou “quase-árvore”). Inserções são realizadas na área de overflow ou área de espaço livre. Também indexada na tabela. Deleções somente são marcadas. Atualização periódica através de cópia do arquivo.

31 Arquivos Indexados Seqüenciais: Idéia Geral
Início 0001 0002 0005 0012 0014 0016 0018 0028 0045 0050 0056 Índice de Acesso 0012 0018 0056 Área de Espaço Disponível ou Overflow Area

32 Arquivos Indexados Seqüenciais: Inserção do 15
Início 0001 0002 0005 0012 0014 0016 0018 0028 0045 0050 0056 0015 Índice de Acesso 0012 0018 0056 Área de Espaço Disponível ou Overflow Area

33 Inserção em Arquivo Indexado Seqüencial
Início 0001 0002 0005 0012 0014 0016 0018 0028 0045 0050 0056 0015 Índice de Acesso 0012 0018 0056 0015 Elemento é inserido na Área de Espaço Disponível

34 Museu Revisitado: ISAM original

35 Museu Revisitado: ISAM original


Carregar ppt "Estruturas de Dados - T.332 Capítulo 11 Gerenciamento de Arquivos"
Anúncios Google