Classificação e Pesquisa de Dados. Aula 23 Organização de Arquivos: Arquivos Indexados, Diretos e Arquivos Invertidos

Documentos relacionados
ORGANIZAÇÃO DE ARQUIVOS INDEXADOS

Organização de Arquivos

ACH2025. Laboratório de Bases de Dados Aula 8. Indexação e Hashing Parte 1. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO

Tipos de Índices. Profa. Dra. Cristina Dutra de Aguiar Ciferri

Matemática Discreta 12

ORGANIZAÇÃO DIRETA. Reg. 1 José 2 Carlos 3 Luiz... i XXX... n Maria. Posição n Relativa

Arquivos Indexados. Prof. Flávio Humberto Cabral Nunes

Profa. Dra. Cristina Dutra de Aguiar Ciferri. Estruturas de Indexação de Dados

Edital de Seleção 024/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Índices. SCE-203 Algoritmos e Estruturas de Dados II

Aula 32: Encadeamento interior. Modelo de encadeamento interior. Algoritmo de busca por encadeamento interior

ANÁLISE E PROJETO DE BANCO DE DADOS

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ACESSO, ATRIBUTOS E OPERAÇÕES COM ARQUIVOS PROFESSOR CARLOS MUNIZ

Índices. SCC-503 Algoritmos e Estruturas de Dados II. Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira

Índice. Índices. Índice simples. Em geral, um índice fornece mecanismos para localizar informações

Modelo Relacional. Josino Rodrigues

indexação e hashing Construção de Índices e Funções Hash Diego Gomes Tomé - MSc. Informática Orientador: Prof. Dr. Eduardo Almeida October 13, 2016

TABELAS DE DISPERSÃO/HASH

Tabelas de dispersão/hash

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

Métodos de Busca Parte 1

Hashing Organização Direta de Arquivos

Endereçamento Aberto

A inserção da chave 6 da árvore acima resulta na árvore abaixo.

Tabela Hash. Disciplina de Algoritmos e Estrutura de Dados III. Prof. Marcos Antonio Schreiner 15/05/2015

SCC0601 Introdução à Ciência da Computação II. Prof. Lucas Antiqueira

Algoritmos de pesquisa. Tabelas de dispersão/hash

Estruturas de Dados. Profº Carlos Alberto Teixeira Batista

Universidade Estadual do Oeste do Parana - UNIOESTE Jhonata R.de Peder Marcelo Schuck

Acesso Sequencial Indexado

HASHING Hashing Motivação - Acesso Direto:

Armazenamento em disco com uso de índices

Árvores Genéricas de Busca

Organização de Arquivos. Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira Cristina D. A. Ciferri

Capítulo 11 Sistemas de Arquivos

Cálculo de Endereço (hashing) Pesquisa de Dados em Tabelas. Função de Cálculo de endereço chave. Eficiência

Hashing: conceitos. Hashing

Sistemas Operacionais

TABELA HASH. Prof. André Backes. Princípio de funcionamento dos métodos de busca

Aula 16. Tópicos Especiais II Banco de Dados. Prof. Dr. Dilermando Piva Jr.

Banco de Dados. Módulo 15 - Estruturas de Indexação

Tabelas Hash. informação, a partir do conhecimento de sua chave. Hashing é uma maneira de organizar dados que:

Introdução a Ciência da Computação Estrutura e Organização das Informações PROFESSORA CINTIA CAETANO

Tabelas de hash Acabamos de estudar como implementar uma tabela hashing aberta e estudaremos agora como implementar uma tabela hashing fechada ou

HASHING HASHING 6/10/2008

TAD dicionário. Métodos do TAD dicionário:

Unidade II FUNDAMENTOS DE SISTEMAS OPERACIONAIS. Prof. Victor Halla

INE5408 Estruturas de Dados. Gerência de Arquivos

Sistemas Operacionais. Prof. André Y. Kusumoto

AULA Nº 11 SISTEMAS OPERACIONAIS. Técnicas de Memória Virtual

Edital de Seleção 023/2018 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Redimensionamento de Tabelas. Classificação e Pesquisa de Dados. Realocação Local. Como Redimensionar. Hashing Dinâmico. Realocação Local (Cont.

Introdução Métodos de Busca Parte 1

Implementação de Sistemas de Arquivos. Na Aula Anterior... Esquema do Sistema de Arquivos. Nesta Aula 31/10/2016. Estrutura de Baixo Nível de um Disco

Tabelas Hash O Que é uma Tabela Hash? O Que é uma Tabela Hash? O Que é uma Tabela Hash? Inserindo um Novo Registro. O Que é uma Tabela Hash?

Informática I. Aula 7. Aula 7-20/09/2006 1

Conceitos gerais Terminologia Forma de Representação de Árvores Árvores Binárias

Organização de Arquivos

BANCO DE DADOS Índices em BD Árvores B+

ACH2024. Aula 22 Hashing Externo - Hashing estático e dinâmico (extensível) Prof Helton Hideraldo Bíscaro

Hashing Externo. SCC-503 Algoritmos e Estruturas de Dados II. Thiago A. S. Pardo M.C.F. de Oliveira Cristina Ciferri

Bases de Dados. Remoções em árvores B + Remoção em árvores B +

INF70 Gerenciamento de Banco de Dados 2 Índices baseados em Hash

Teoria da Computação. Aula 9 Pesquisa em Memória Secundária 5COP096. Aula 9 Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr

Métodos de Busca Parte 2

Bases de Dados. Índices. Discos. transferência rápida e aos bytes. transferência lenta e em blocos (512B ~ 4KB) memória. disco BD / aplicação

Tabela Hash. Disciplina: Estruturas de Dados Professora: Camila Taumaturgo M.Sc.

Árvores. N-árias, Binárias, Busca. Vanessa Maia Berny Mestrado em Ciência da Computação

Sistemas de Arquivos. (Aula 23)

Sistemas de arquivos

Estruturas de Dados Tabelas de Espalhamento

Matrizes esparsas: definição

Hashing externo (II) Graça Nunes. Fonte: Folk & Zoelick, File Structures

Pesquisa em Memória Secundária. Prof. Jonas Potros

Gerência do Sistema de Arquivos. Adão de Melo Neto

Estrutura de Dados. Estrutura de Dados Recursividade. Exemplo: 5! = 5 x 4! 4! = 4 x 3! 3! = 3 X 2! 2! = 2 x 1! 1! = 1 x 0!

Métodos de Busca. Parte 2. ICC2 Prof. Thiago A. S. Pardo. Baseado no material do Prof. Rudinei Goularte

Sumário. Índices Ordenados: Nível Único. Índices Primários. Bancos de Dados Avançados Índices. Índices: Ordenados em nível único Multiníveis

Introdução Métodos de Busca Parte 2 - Hashing

Sistemas de Arquivos

heapsort (int *x, int n) { int i, e, s, f, aux; /*fase de pré-processamento - cria heap inicial*/ for (i=1; i<n; i++) { e = x[i]; s = i; f = (s-1)/2;

Profa. Dra. Cristina Dutra de Aguiar Ciferri. Estruturas de Indexação de Dados

Tabelas Hash. Prof. Túlio Toffolo BCC202 Aulas 23 e 24 Algoritmos e Estruturas de Dados I

Estrutura de Dados II

Edital de Seleção 055/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

SISTEMAS OPERACIONAIS. 2ª. Lista de Exercícios Parte 2

GBC053 Gerenciamento de Banco de Dados Índices baseados em Hash

EA075 Memória virtual

Organização de Arquivos. Leandro C. Cintra M.C.F. de Oliveira Thiago A. S. Pardo Cristina D. A. Ciferri

Algoritmos e Estrutura de Dados. Aula 11 Estrutura de Dados: Tabelas Hash Parte II Prof. Tiago A. E. Ferreira

SCC Capítulo 5 Métodos de Busca [3]

Capítulo 11: Implementação de Sistemas de Arquivos. Operating System Concepts 8th Edition

Lista de Exercícios. Av. Trabalhador São-carlense, 400. centro. São Carlos - SP cep Brasil.

As Listas são simples de se implementar, mas, com um tempo médio de acesso T = n/2, tornando-se impraticáveis para grandes quantidades de dados.

Pilhas Acesso. Pilha. Fila. Listas lineares especiais. Pilhas e Filas. Listas lineares especiais mais usuais. Disciplina restrita

MC3305 Algoritmos e Estruturas de Dados II. Aula 02 Hashing. Prof. Jesús P. Mena-Chalco.

Transcrição:

Classificação e Pesquisa de Dados Aula 23 Organização de Arquivos: Arquivos Indexados, Diretos e Arquivos Invertidos UFRGS INF1124

Arquivo indexado - AI Indicação de uso Baixa freqüência de acessos seqüenciais em relação aos acessos aleatórios

Arquivo indexado Caracterização Nesta organização, os registros são acessados, sempre, através de um ou mais índices, não havendo qualquer compromisso com a ordem física de instalação dos registros no arquivo Conseqüência direta maior eficiência na operação de inserção de um registro

Arquivo Indexado chave endereço 1 5 15 7 175 1 11 3 13 12 135 1 14 9 145 2 148 8... Tabela Fina #1 #2 #3 #4 #5 #6 #7 #8 #9 #1 #11 #12... 175 145 11 151 1 16 15 148 14 135 18 13...

Índices Podem existir tantos quantas forem as chaves de acesso aos registros Um índice contém uma entrada para cada registro Arquivo Indexado 5

Índices As entradas do índice são ordenadas pelo valor da chave de acesso Cada entrada em um índice é constituída por um par <Chave_registro, endereço_registro> A seqüencialidade física no índice visa tornar mais eficiente o processo de busca e permitir o acesso serial ao arquivo Arquivo Indexado 6

Tipos de Índices Exaustivo Contém uma entrada para cada registro do arquivo Seletivo Possui entradas apenas para um subconjunto dos registros Ex.: Subconjunto que define todos os alunos cujo curso = ciência da computação e ano_ingresso = 1999 Arquivo Indexado 7

Desvantagens Necessidade de atualização de todos os índices quando Um registro é inserido no arquivo Alteração de um registro envolve atributos associados a índices Quanto maior é o número de índices, mais onerosa é a operação de inserção Arquivo Indexado 8

Acesso a um registro Acesso serial Através de um dos índices, de acordo com a seqüência desejada A maioria dos acessos requer apenas uma leitura do disco Acesso aleatório Efetivação de uma busca sobre o índice De um modo geral requer acessos a um único cilindro Após a determinação do endereço, a leitura do registro de dados pode requerer o acesso a um cilindro distinto Arquivo Indexado 9

Inserção de um registro O registro é armazenado em qualquer endereço vago do arquivo Seus pares <chave_registro, endereço_registro> relativos aos índices existentes são inseridos nos índices correspondentes Ocorrência de overflow Alternativa de solução: árvores B Arquivo Indexado 1

Exclusão de um registro Área de dados ocupada é liberada São removidas as entradas do índices correspondentes por Retirada física do par Utilização de uma marca Devem ser determinados os índices seletivos afetados Arquivo Indexado 11

Alteração de um registro Identificação do registro Via argumento de pesquisa Endereço é determinado por uma busca sobre o índice O endereço do registro é conhecido Tipo da alteração Normal Lê altera grava na mesma posição Com aumento do tamanho do registro Lê exclui insere registro atualizado Arquivo Indexado 12

Arquivo direto (hash) Indicação de uso Baixa freqüência de acessos seriais em relação aos acessos aleatórios Dispositivos de armazenamento de acesso direto

Arquivo direto Caracterização Organização por cálculo de endereço, com área de dados organizadas em blocos Instalação dos registros em endereços determinados, com base no valor de uma chave primária Acesso aleatório eficiente Dispensa uso de estrutura auxiliar (índice) Substituição de um índice pela função que calcula o endereço do registro a partir do argumento de busca

Arquivo direto Argumento de pesquisa E = F (C) endereço C = 144 E = 3 #1 #2 #3 #4 #5 #6 #7 #8 #9... M Número Nome Idade Salário 11 Antônio 18 85 144 Cristiano 2 1 18 Edison 18 65 295 Carmen 19 9 195 Flávio 21 9 315 Tatiana 2 1

Tipos de funções Funções determinísticas Um único valor de chave de acesso para cada endereço Impossível na prática Funções probabilísticas Geram para cada valor da chave um endereço tão único quanto possível Geram a necessidade de tratamento das colisões Arquivo Direto 17

Funções probabilísticas Com preservação da ordem dos registros pelo valor da chave de acesso Se chave 1 > chave 2 então f (chave 1 ) > f (chave 2 ) Ex.: Para chaves numéricas no intervalo [9, 315], a função f (x) = [(x 9) / 61] + 1 gera números que variam entre 1 e 37, que podem ser associados a endereços do arquivo Sem preservação da ordem dos registros Função de aleatorização ou função de randomização Ex.: Função resto da divisão Arquivo Direto 18

Tratamento das colisões Endereçamento aberto Pesquisa seqüencial Pesquisa no bloco Realeatorização Encadeamento Uso de áreas de extensão Encadeamento puro Arquivo Direto 19

Endereçamento aberto com pesquisa seqüencial Se o endereço calculado já está ocupado, então é usado o primeiro endereço livre na seqüência end+1, end+2,... Arquivo Direto 2

Endereçamento aberto com pesquisa no bloco A função de aleatorização gera para cada registro o endereço de um bloco Quando o bloco estiver cheio, o registro é inserido no primeiro endereço livre dos blocos seguintes

Endereçamento aberto com realeatorização A função de aleatorização gera para cada registro o endereço de um bloco Quando o bloco estiver cheio, é calculado o endereço de um outro bloco através de uma outra função Qual é a vantagem?

Encadeamento com uso de áreas de extensão O acesso ao bloco é feito por meio da função de aleatorização Se o bloco está cheio, o registro é armazenado em área de extensão e inserido na lista encadeada correspondente ao seu bloco Arquivo Direto 23

Encadeamento com uso de áreas de extensão Cada bloco possui um header, o qual armazena o endereço da lista a ele associada na área de extensão Esta organização combina endereçamento aberto com encadeamento Arquivo Direto 24

Encadeamento puro Registros colidentes são coletados em uma lista encadeada Todos os registros são armazenados na área principal É formada uma lista encadeada para cada para cada grupo de registros associados ao mesmo endereço Arquivo Direto 25

Encadeamento puro Tipos de estruturas de acesso O endereço calculado é um endereço sobre a área de dados do arquivo O 1º registro da lista funciona como header O 1º registro da lista é armazenado, obrigatóriamente, no endereço calculado O endereço calculado é um endereço sobre uma tabela de headers associada ao arquivo Gera espalhamento dos registros de um mesmo grupo Arquivo Direto 26

Acesso a um registro Acesso serial Através de uma função que preserva a ordem dos registros ou Pelo conhecimento do valor da chave do próximo registro da seqüência Acesso aleatório Encadeamento puro --> percorrer a lista Endereçamento aberto --> procurar nos endereços seguintes Arquivo Direto 27

Inserção de um registro Organização por encadeamento Com tabela de headers Insere na 1ª posição livre do arquivo Insere no início da lista encadeada Com encadeamento puro Insere no end calculado, caso esteja livre Caso esteja ocupado Por um registro do grupo Por um registro não pertencente ao grupo Arquivo Direto 28

Inserção de um registro Organização por endereçamento aberto Se end calculado estiver livre então novo registro é armazenado em end Caso contrário, o novo registro é armazenado no endereço livre mais próximo Arquivo Direto 29

Exclusão de um registro Através de uma marca de excluído Através de sua remoção da lista de colisões Se a opção de remoção for adotada, então é aconselhável o uso de duplo encadeamento! Arquivo Direto 3

Alteração de um registro Procedimento normal lê --> altera --> grava no mesmo endereço Procedimento diferenciado lê --> exclui --> altera --> insere novamente Arquivo Direto 31

Reorganização do arquivo Exigem reorganizações periódicas Garantia de eficiência de acesso Re-agrupamento dos registros da mesma lista quando a organização inclui áreas de extensão ou trabalha com encadeamento puro Alteração do campo de endereço na tabela de headers em conseqüência do deslocamento dos registros na área de dados Remoção física dos registros excluídos Arquivo Direto 32

Arquivo invertido Indicação de uso Esta organização está voltada para o acesso aos registros de um arquivo por chaves secundárias

Arquivo invertido Caracterização Em vez de serem coletados os valores dos atributos para cada registro, são identificados os registros que possuem um dado valor do atributo considerado À cada valor de chave corresponde uma lista de endereços de registros O conjunto de listas invertidas associado a uma chave de acesso é chamado inversão Um arquivo invertido pode possuir uma ou mais inversões

Arquivo Invertido Idade Endereços 2 5 6 22 7 11 23 3 8 25 1 4 13 15 26 1 12 27 2 28 9 14 16 Salário Números 5 1 14 55 185 243 6 175 24 295 65 144 315 7 15 26 75 19 2 22 27 31 inversões #1 #2 #3 #4 #5 #6 #7 #8 #9 #1 #11 #12 #13 #14 #15 #16... 1 Ademar 25 5 15 Afonso 27 7 24 Iara 23 6 185 Edmundo 25 55 144 Cristiano 2 65 315 Tatiana 2 65 2 Gerson 22 75 19 Enio 23 75 243 Ivan 28 55 26 Miguel 26 7 175 Ângela 22 6 14 Claudia 26 5 22 Helena 25 75 27 Ramon 28 75 295 Flavio 25 6 31 Sonia 28 75......

Arquivo Invertido Decisões importantes Como estruturar o acesso às listas? Como estruturar as listas?

Como estruturar o acesso às listas? Lista Índice... ou...... C e = f (C)

Como estruturar as listas Qualquer solução estudada para representação de listas lineares Contigüidade física --> registros de tamanho variável, normalmente Encadeamento Mapa de bits (quando a gama de valores possíveis é pequena) Considerar que, via de regra, tais listas são armazenadas em disco, não sendo recomendável o simples encadeamento item a item

Como estruturar as listas Solução usual: fazer com que cada lista seja composta por uma lista encadeada de zero ou mais blocos, cada um contendo vários endereços de registros Fazer com que as listas estejam ordenadas com o mesmo critério Fazer com que os registros sejam identificados da mesma maneira

Mapa de bits 5 55 6 65 7 75 #1 #2 #3 #4 #5 #6 #7 #8 #9 #1 #11 #12 #13 #14 #15 #16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 #1 #2 #3 #4 #5 #6 #7 #8 #9 #1 #11 #12 #13 #14 #15 #16... 1 Ademar 25 5 15 Afonso 27 7 24 Iara 23 6 185 Edmundo 25 55 144 Cristiano 2 65 315 Tatiana 2 65 2 Gerson 22 75 19 Enio 23 75 243 Ivan 28 55 26 Miguel 26 7 175 Ângela 22 6 14 Claudia 26 5 22 Helena 25 75 27 Ramon 28 75 295 Flavio 25 6 31 Sonia 28 75......

Como estruturar as listas Bloco / Cada bloco contém um número fixo de endereços de registros, podendo estar total ou parcialmente ocupado!

Operações Inserções e exclusões ocorrem como conseqüência de modificações no arquivo de dados Acesso a registros Quais os nomes dos funcionários com idade = 25? Quais os nomes dos funcionários com idade = 25 e salário = 9? Quais os números dos funcionários com salário entre 5 e 7?