Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave...

44
Cap´ ıtulo 3 - Armazenamento e Recupera¸c˜ ao Elisabete Ferreira 24 de abril de 2018 Elisabete Ferreira (UFPR) Armazenamento e Recupera¸c˜ ao 24 de abril de 2018 1 / 44

Transcript of Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave...

Page 1: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

Capıtulo 3 - Armazenamento e Recuperacao

Elisabete Ferreira

24 de abril de 2018

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 1 / 44

Page 2: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

Mecanismos de armazenamento e recuperacao

1 Estruturados em LogsIndices HashSSTables e LMS-Trees

2 Orientadas a paginasArvores BOutras estruturas de indexacao

3 Otimizados para transacoesProcessamento de transacoes on-line (OLTP)

4 Otimizados para analiseProcessamento de transacoes on-line (OLAP)

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 2 / 44

Page 3: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

Estruturados em Logs

Utilizado por muitos bancos de dados;

Sequencia de registros somente de anexacao;

Adicoes sao inseridas ao final do arquivo;

Buscas varrem todo o arquivo de dados do inıcio ao fim.

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 3 / 44

Page 4: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

Criacao e alimentacao de BD por chave-valor

#!/bin/bashdb_set () { echo "$1,$2" >> database }db_get () {grep "^$1," database | sed -e "s/^$1,//" | tail -n 1}

==========================================================

$ db_set 123456 '{"name":"London","attractions":["Big Ben","London Eye"]}'$ db_set 42 '{"name":"San Francisco","attractions":["Golden Gate Bridge"]}'$ db_get 42{"name":"San Francisco","attractions":["Golden Gate Bridge"]}

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 4 / 44

Page 5: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

Atualizacao e leitura de registro por chave-valor

$ db_set 42 '{"name":"San Francisco","attractions":["Exploratorium"]}'$ db_get 42{"name":"San Francisco","attractions":["Exploratorium"]}

=======================================================

$ cat database123456,{"name":"London","attractions":["Big Ben","London Eye"]}42,{"name":"San Francisco","attractions":["Golden Gate Bridge"]}42,{"name":"San Francisco","attractions":["Exploratorium"]}

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 5 / 44

Page 6: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

Indices Hash

Indices sao Estruturas adicionais, derivadas de dados primarios, utilizadaspara localizacao eficiente de valores de chaves especıficas;

Indices bem escolhidos aceleram as buscas de informacoes;

Qualquer tipo de ındice retarda o processo de gravacao de dados.

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 6 / 44

Page 7: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

Indices Hash

Semelhantes ao tipo dicionario dado, e implementado como um mapa dehash;

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 7 / 44

Page 8: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

Indices de Hash

Mantem um mapa de hash na memoria onde cada chave e mapeadapara um deslocamento de byte no arquivo de dados;

Sempre que uma nova chave e adicionada ou atualizada, o mapa dehash e automaticamente atualizado;

Utiliza o mapa de hash para fornecer o dado solicitado;

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 8 / 44

Page 9: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

Indice Hash - segmentacao de logs

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 9 / 44

Page 10: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

Indice Hash - segmentacao de logs

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 10 / 44

Page 11: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

Indice Hash - segmentacao de logs

O melhor formato para geracao de segmentos e o binario, onde ecodificado o tamanho de uma string em bytes e apos e seguido pelapropria string;

Para exclusao de uma chave e seu valor associado, anexa-se umregistro de exclusao especial no arquivo de dados;

No momento da mesclagem, a marca indica que a chave e seusdemais valores devem ser excluıdos;

Pode-se acelera a recuperacao pelo armazenamento instantaneo domapa de hash de cada segmento no disco (Bitcask);

Isso permite que o segmento seja carregado mais rapidamente namemoria.

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 11 / 44

Page 12: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

Indice Hash - segmentacao de logs

Utiliza checksum para garantir a integridade dos dados, o que permiteque parte corrompidas sejam eliminadas do log;

Os segmentos sao apenas anexados e imutaveis, para que posam serlidos simultaneamente por varios segmentos;

Mesclar segmentos antigos evita o problema de fragmentacao dosarquivos de dados.

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 12 / 44

Page 13: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

Indice Hash - limitacoes

A tabela de hash precisa caber na memoria;

Manter um mapa de hash no disco compromete o desempenho;

Podem ocorrer muitas colisoes de hash.

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 13 / 44

Page 14: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

SSTable - sorted string table

Considera que cada segmento de armazenamento estruturado em loge uma sequencia de pares de valores-chave;

Os valores posteriores tem precedencia sobre os valores para a mesmachave no arquivo de log;

A ordem dos valores-chave no arquivo nao importa;

A sequencia de pares de valores-chave e classificada por chave;

As chaves possuem apenas uma ocorrencia por cada arquivo desegmento mesclado.

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 14 / 44

Page 15: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

SSTable - sorted string table

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 15 / 44

Page 16: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

SSTable - sorted string table

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 16 / 44

Page 17: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

Construindo e mantendo SSTables

Manter uma estrutura ordenada no disco e possıvel, mas mante-la namemoria e muito mais facil;

Para inserir chaves em qualquer ordem e le-las novamente,classificadas, pode-se lancar mao de arvores binarias como AVL ourubro-negra;

O processo de gravacao com o uso de arvores binarias e tambemconhecido como Memtable.

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 17 / 44

Page 18: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

Construindo e mantendo SSTables

Quando o memtable cresce, acima de alguns megabytes, e gravadoem uma SSTable;

Durante a gravacao do memtale, as gravacoes podem continuar emuma nova instancia memtable;

Esporadicamente, e interessante mesclar e compactar, em segundoplano, para combinar arquivos de segmentos e descartar valoressobrescritos ou excluıdos.

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 18 / 44

Page 19: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

SSTables - limitacoes

O memtbale permanece na memoria;

Se o BD falhar as gravacoes mais recentes sao perdidas.

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 19 / 44

Page 20: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

LSM-Trees - log-stuctured merge-tree

Sao mecanismos de armazenamento, construıdos em cima da logicautilizada por log-structured filesystems, para mesclagem ecompactacao de arquivos:

Mantem um disco de log separado;Restaura a memtable a partir deste registro;Toda vez que a memtable e gravada em uma SSTable, este log edescartado;trabalha com mesclagem e compactacao de dados.

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 20 / 44

Page 21: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

LSM-Trees - dicionario de termos

O metodo LSM de armazenamento de dicionario de termos e utilizadopelo Lucene, um indexador de texto completo, usado peloElasticsearch e SolR

Embora muito mais complexo do que um ındice de valor-chave, osındices de textos completos funcionam de forma similar: dada umapalavra em uma consulta de pesquisa, procura localizar todos osdocumentos (paginas da Web, descricoes de produtos etc.) quemencionam a palavra.

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 21 / 44

Page 22: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

LSM-Trees - limitacoes e solucoes

E preciso varrer todos os segmentos ate o mais antigo para identificarchaves que nao existem no banco de dados, o que o torna lento;

Utiliza-se um filtro Bloom, que informa se uma chave nao faz parte dobanco de dados, o que evita leituras desnecessarias de disco na buscada mesma.

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 22 / 44

Page 23: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

LSM-Trees - compactacao por camada e nivelada

Sao estrategias para definir a ordem e o tempo para mesclagem ecompactacao de SSTables;

Camadas - SSTables mais novos e menores sao mescladossucessivamente em SSTables mais antigos e maiores.

Nivelada - SSTables menores e os dados antigos sao movidos para“nıveis” separados, o que permite a compactacao de forma incrementale com menos uso de espaco em disco.

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 23 / 44

Page 24: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

Arvores B

E a estrutura de indexacao mais utilizada em quase todos os bancos dedados relacionais e, em muitos nao relacionais.

Mantem pares de valores-chaves classificado por chaves;

Divide o DB em blocos ou paginas de tamanho fixo;

Le e escreve uma pagina por vez;

Cada pagina possui um endereco ou local;

Permite que uma pagina se refira a outra em disco em vez de namemoria (ponteiro).

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 24 / 44

Page 25: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

Localizando um registro em uma arvore B

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 25 / 44

Page 26: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

Arvores B

Atualizar e inserir valor em uma arvore B

Atualizar.

Pesquisar a pagina de folhas que contem a chave a ser atualizada;Atualizar o valor da chave;Gravar, novamente, a pagina no disco.

Adicionar.

Encontrar a pagina cujo intervalo engloba a nova chave;Adicionar a nova chave a pagina localizada;Senao houver espaco livre suficiente na pagina encontrada, dividi-la emduas paginas;atualizar a pagina pai para considerar a nova submissao dos intervalosde chaves.

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 26 / 44

Page 27: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

Inserindo um valor em uma Arvore B

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 27 / 44

Page 28: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

Seguranca em uma arvore B

Implementacoes em arvore B incluem uma estrutura adicional emdisco: um log write-ahead (redo log);

Toda insercao ou modificacao na arvore e previamente escrita antesde ser aplicada as paginas da arvore.

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 28 / 44

Page 29: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

Arvores B X Arvores LSM

Arvores B:

Sao mais rapidas para leituras, pois cada chave existe em exatamenteum lugar no ındice;O tempo de resposta de consultas orientadas a paginas sao maisprevisıveis que em LSM;cada parte dos dados sao gravados, pelo menos duas vezes: uma para olog de gravacao e outra na arvore em si;Ha a sobrecarga de ter que escrever uma pagina inteira, mesmo quandoapenas poucos bytes sao alterados.

Arvores LSM:

Sao mais rapidas para gravacoes, basta anexar a chave-valor ao arquivode log;Os arquivos compactados em LSM sao menores que os das arvores B;Sao mais lentas nas leituras pois precisam verificar varias estruturas dedados e SSTable em diferentes estagios de compactacao;O tempo de resposta de consultas em estruturas de log podem serbastante altos.

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 29 / 44

Page 30: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

Indices secundarios;

Indices clusterizados: armazenam todos os dados de linha dentro doındice;

Indices nao clusterizados: armazenam referencias aos dados dentro doındice;

Indices multi-colunas:

Concatenados: combinam varios campos em uma chave, anexandouma coluna a outra;Multidimensionais: para consultar varias colunas ao mesmo tempo.

Indices difusos;

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 30 / 44

Page 31: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

Exemplo de ındice multidimensional

SELECT * FROM restaurants WHERE

latitude > 51.4946 AND latitude < 51.5079AND

longitude > -0.1162 AND longitude < -0.1004;

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 31 / 44

Page 32: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

Processamento de transacoes on-line (OLTP)

Utilizados para processamento de dados corporativos.

Controle de Estoque;

Controle de Vendas;

Controle de Pessoal;

Controle de Compras;

Controle de Fornecedores;

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 32 / 44

Page 33: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

Processamento analıtico (OLAP)

Utilizados para processamento de dados analıticos que apoiam decisoesgerenciais (Business Inteligence).

Analise de Dados;

Calculo estatısticos;

Prospeccao de Habitos de Consumo;

Avaliacao dos retornos de promocoes;

Gerenciamento de Pessoal;

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 33 / 44

Page 34: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

Tabela 1. Comparando características do processamento de transações versus sistemas analíticos

Propriedade Sistemas de processamento de transações (OLTP)

Sistemas analíticos (OLAP)

Padrão principal de leitura Pequeno número de registros por consulta, buscado pela chave.

Agregar em um grande número de registros.

Padrão principal de escrita Gravações de acesso aleatório e baixa latência a partir da entrada do usuário.

Importação em massa (ETL) ou fluxo de eventos.

Usado principalmente por Usuário final/ cliente, via aplicativo da web

Analise interna, para apoio à decisão.

Quais dados representam Último estado dos dados (ponto atual no tempo).

Histórico dos eventos ocorridos ao longo do tempo.

Tamanho do conjunto de dados Gigabytes para terabytes. Terabytes para petabytes.

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 34 / 44

Page 35: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

Data warehousing)

E um banco de dados que contem uma copia de somente leitura de dadoscontidos em varios sistemas OLTP de uma empresa, obtidos pelo processoTransform - Load - Extract (ETL).

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 35 / 44

Page 36: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 36 / 44

Page 37: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

Esquemas para analise

Estrela: Os relacionamentos da tabela sao visualizados, a tabela defatos fica no meio, cercada por suas tabelas de dimensoes.

Flocos de Neve: As dimensoes sao subdivididas em subdimensoes.

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 37 / 44

Page 38: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

Esquemas para analise - Estrela

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 38 / 44

Page 39: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

Armazenamento orientado por colunas

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 39 / 44

Page 40: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

Compressao por coluna)

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 40 / 44

Page 41: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

Cubos de dados e visoes materializadas

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 41 / 44

Page 42: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

Exercıcios

Como o problema de falta de memoria e resolvido em LSMs?

O que e uma tabela de fatos em Data warehouse?

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 42 / 44

Page 43: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

References

Martin Kleppmann (2017)

Designing Data-Intensive Applications

O’Reilly Media, Inc, 69 – 103.

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 43 / 44

Page 44: Capítulo 3 - Armazenamento e Recuperação · Mant em um mapa de hash na mem oria onde cada chave e mapeada para um deslocamento de byte no arquivo de dados; Sempre que uma nova

Muito Obrigada!

Elisabete Ferreira (UFPR) Armazenamento e Recuperacao 24 de abril de 2018 44 / 44