Armazenamento em disco com uso de índices

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

Árvores B. Árvores B. Estrutura de Dados II Jairo Francisco de Souza

Árvores B. Árvores B. Estrutura de Dados II Jairo Francisco de Souza

Árvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura

Árvores Genéricas de Busca

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

B-tree. B-Trees. Estrutura do nodo da B-tree. Balanceamento. Disposição dos elementos ordenados na B-tree. Exemplo de uma B-tree de ordem 3

Árvore-B* Profa. Dra. Cristina Dutra de Aguiar Ciferri

ORGANIZAÇÃO DE ARQUIVOS INDEXADOS

Árvores Binárias Balanceadas

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;

Árvores B. Prof. Flávio Humberto Cabral Nunes

Capítulo 8: Abstrações de dados

Árvores B. Definição: Seja t a ordem da árvore B. Uma árvore B de ordem t é uma árvore ordenada que é vazia, ou que satisfaz as seguintes condições:

Árvores. Exemplo de árvore 2-3-4

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

Árvores-B (Parte IV) Leandro C. Cintra M.C.F. de Oliveira Fonte: Folk & Zoelick, File Structures

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

Ordem. Árvores-B (Parte IV) Número mínimo de chaves por página. Definição formal das Propriedades de árvores-b /30 1

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

Árvore-B + Profa. Dra. Cristina Dutra de Aguiar Ciferri

ÁRVORE B. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

Universidade de São Paulo

Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 em PDF via Moodle: Escolha apenas 5 exercícios para entrega Exercício 01 (Pilhas)

Árvores-B + Profa. Dra. Cristina Dutra de Aguiar Ciferri. Algoritmos e Estruturas de Dados II Árvore-B +

SCC Algoritmos e Estruturas de Dados II. 6ª lista de exercícios

Banco de Dados. Métodos de Ordenação de Dados. Prof. Walteno Martins Parreira Jr

INF 1010 Estruturas de Dados Avançadas

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

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

Listas Ligadas (Encadeadas) Listas Simplesmente Encadeadas

Árvores B Partes I e II

Acesso a Arquivos. Árvores B Parte VI. Acesso Seqüencial & Indexado. Questão. Foco 1. Uso de Blocos. Árvores B+ Alternativas (até o momento)

Acesso Sequencial Indexado

Aula 07: Algoritmos de busca e Listas encadeadas

Árvores. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo

Árvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral

void excluir(tipochave ch, ArvoreB *arvore) { int diminuiu; No *aux; excluiraux(ch, arvore, &diminuiu); if (diminuiu && (*arvore)->numchaves == 0) {

Ordenação Externa. Ordenação Externa. Ordenação Externa. Ordenação Externa

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

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

Estruturas de Dados. Profº Carlos Alberto Teixeira Batista

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

Árvores-B + SCC-203 Algoritmos e Estruturas de Dados II. Graça Nunes

Árvores-B: Remoção. Cristina Dutra de Aguiar Ciferri Thiago A. S. Pardo

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

Capítulo 6 Nível do Sistema Operacional

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

Aplicações de listas Outras estruturas

Árvores-B + SCC-503 Algoritmos e Estruturas de Dados II. Thiago A. S. Pardo Cristina Dutra de Aguiar Ciferri

INE5408 Estruturas de Dados

Árvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira

Lista de Prioridades. Estrutura de Dados II Prof. Erinaldo

vazio insercaoemarvoreb (Arvore *arvore, TipoChave K) inicio encontre um nó folha para inserir K; enquanto (1) encontre uma posição apropriada no

William Stallings Arquitetura e Organização de Computadores 8 a Edição. Capítulo 12 Estrutura e função do processador

B-Árvores. Siang Wun Song - Universidade de São Paulo - IME/USP. MAC Estruturas de Dados

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

Aplicações de listas e outras estruturas

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

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

Estrutura de Dados. Ricardo José Cabeça de Souza Parte 9

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

Métodos de Busca Parte 1

BANCO DE DADOS Índices em BD Árvores B+

Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula

Segunda Parte do Trabalho Prático (Parte II) Valor: 70%

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

Árvores Auto-ajustadas

Árvores B. Árvores B Parte II. Características. Características. Construção Bottom-Up. Leandro C. Cintra Maria Cristina F. de Oliveira.

Capítulo 11 Sistemas de Arquivos

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!

Estruturas de Dados Estruturas de Dados Fundamentais

Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 4: Listas Estáticas e Dinâmicas

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

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

TABELAS DE DISPERSÃO/HASH

ESTRUTURA DE DADOS LISTAS LINEARES

Memória. Memória Cache

Algoritmos e Estruturas de Dados II IEC013

Estrutura de Dados II

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

Pilhas e Filas. Nádia Félix e Hebert Coelho

Árvore-B. Árvore B. Características Gerais. Sistemas de Banco de Dados. Características Gerais. Revisão

Árvores-B (Parte Ib) SCC-203 Algoritmos e Estruturas de Dados II. Graça Nunes

Listas Lineares Ordenadas

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

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

Estrutura de indexação de arquivos

A Invenção da B-Tree. Árvores B Parte I. Problema. Problema. Introdução. Leandro C. Cintra Maria Cristina F. de Oliveira. Solução?

GBC053 Gerenciamento de Banco de Dados Índices baseados em Hash

Lista de Exercícios sobre Listas Implementadas por Encadeamento

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

A Invenção da B-Tree. Árvores B Parte I. Problema. Problema. Árvores Binárias de Busca. Árvores Binárias de Busca. Introdução

ANÁLISE E PROJETO DE BANCO DE DADOS

Introdução Métodos de Busca Parte 1

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

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

Árvores-B (Parte Ia) SCC-203 Algoritmos e Estruturas de Dados II. Graça Nunes

Transcrição:

Armazenamento em disco com uso de índices Vimos até o momento árvores onde a chave aparenta ser o único objeto de interesse. Contudo, como sugere a representação de um nó, constante no slide 82, a chave será apenas um campo de um registro. Neste casos, o vetor de chaves é um vetor de registros, cada um tendo um campo de identificador único e demais informações pertinentes para aplicação, conforme imagem abaixo. Chave 1 Chave 2 Chave 3 Chave n 130

Armazenamento em disco com uso de índices Contudo, apenas a chave é relevante no processo de busca de um registro, o que torna os demais itens apenas áreas subutilizadas no nó o que reflete-se em mais operações de transferências de dados entre memória principal e secundária durante o processo de busca. Desta forma, uma abordagem adequada seria associar apenas mais uma informação à chave que representaria um endereço de um registro inteiro na armazenagem secundária, como ilustra a figura do slide a seguir. 131

Armazenamento em disco com uso de índices Arquivo de dados Nó 4 Chav Chav e1 e2 Chav e3 Chav e4 \ \ \ \ Se o conteúdo de tal nó também residisse no armazenamento secundário, cada acesso de chave exigiria dois acessos do armazenamento secundário. No longo prazo, isso é melhor do que manter os registros inteiros nos nós. Pois, armazenando o registro inteiro, os nós podem manter um número muito pequeno de tais registros. A árvore B resultante é muito profunda e os caminhos de busca através dela são muito mais longos do que em uma árvore B com os endereços de registros. 132

133 Árvores B+ Já que um nó de uma árvore B representa uma página de memória secundária ou um bloco, a passagem de um nó para um outro exige uma mudança demorada de página. Em consequência, gostaríamos de realizar a menor quantidade de acessos possíveis. O que acontece se solicitamos que todas as chaves na árvore B sejam impressas na ordem ascendente? Como vimos anteriormente, o percurso de árvore in-ordem pode ser usado, que é fácil de implementar, mas, para nós não terminais, somente uma chave é mostrada de cada vez e então outra página tem que ser acessada.

134 Árvores B+ Desta forma, teríamos de melhorar as árvores B para nos permitir acessar os dados sequencialmente, de uma maneira mais rápida que o percurso em in-ordem. Uma árvore B+ oferece uma solução (Wedeking, 1974). Em uma árvore B referências aos dados são feitas a partir de quaisquer nós da árvore, mas em uma árvore B+ essas referências são feitas somente a partir das folhas. Os nós internos de uma árvore B+ são indexados para acesso rápido dos dados; essa parte da árvore é chamada de conjunto de índices.

135 Árvores B+ As folhas têm uma estrutura diferente que a dos outros nós da árvore B+, e usualmente são vinculadas sequencialmente para formar um conjunto de sequências, de modo que varrer esta lista de folhas resulta nos dados obtidos na ordem ascendente. Por isso, uma árvore B+ é verdadeiramente uma árvore B mais: ela é um índice implementado como uma árvore B regular mais uma lista ligada de dados. O slide a seguir contém um exemplo de uma árvore B+. Note que os nós internos armazenam chaves, ponteiros e um contador de chaves. As folhas armazenam chaves, referências aos registros em um arquivo de dados associados com as chaves (representados por uma seta vermelha), um ponteiro para a próxima folha e um contador de chaves.

Exemplo de árvores B+ 1 CD2 44 2 BF9 0 BQ32 2 3 AB2 AS09 BC2 2 BF9 BF13 2 BQ3 CD12 03 6 0 0 22 3 2 CF0 4 DR30 0 2 CD2 44 CF03 3 CF0 4 CF05 DP1 02 2 DR3 00 DR30 5 136

137 Árvores B+ As operações nas árvores B+ não são muito diferentes das operações das árvores B. Inserir uma chave em uma folha que ainda tenha algum espaço exige que se coloque as chaves desta folha em ordem. Nenhuma mudança é feita no conjunto de índices. Se uma chave é inserida em uma folha cheia, a folha é dividida, o novo nó folha é incluído no conjunto de sequência, as chaves são distribuídas homogeneamente entre a folha velha e a nova folha e a primeira chave do novo nó é copiada (não movida, como na árvore B) para o ascendente. Veja o slide a seguir.

29 11 19 1 2 8 10 11 13 15 19 26 A inserção da chave 6 da árvore acima resulta na árvore abaixo. 6 11 19 29 1 2 6 8 10 11 13 15 19 26 138 Se o ascendente não está cheio, isso pode exigir reorganização local das chaves do ascendente como no caso acima. Se o ascendente está cheio, o processo de divisão é realizado do mesmo modo que nas árvore B. Depois de tudo, o conjunto de índices é uma árvore B.

139 Árvores B+ Remover uma chave de uma folha sem subaproveitamento exige colocar as chaves remanescentes em ordem, nenhuma mudança é feita ao conjunto de índices. Em particular, se uma chave que não ocorre somente em uma folha é removida, ela é simplesmente removida da folha, mas pode permanecer no nó interno. A razão é que ele ainda serve como guia apropriado quando se navega para baixo na árvore B+, porque ainda separa apropriadamente as chaves entre dois filhos adjacentes mesmo se o próprio separador não ocorre em nenhum dos filhos. Observe o processo no próximo slide.

Árvores B+ 29 6 11 19 1 2 6 8 10 11 13 15 19 26 A remoção da chave 6 da árvore acima resulta na árvore abaixo. Note que o número 6 não é removido de um nó interno. 29 6 11 19 1 2 8 10 11 13 15 19 26 140

Árvores B+ Quando a remoção de uma chave causa subaproveitamento, ambas as chaves dessa folha e as chaves de um irmão são redistribuídas entre a folha e seu irmão, ou a folha é removida e as chaves remanescentes são incluídas no seu irmão. As árvores abaixo ilustram o segundo caso. 29 6 11 19 1 2 Remover 2 8 10 11 13 15 19 26 29 11 19 1 8 10 141 11 13 15 19 26

Árvores B+ Como vimos, depois de remover o número 2, um subaproveitamento ocorre e duas folhas são combinadas para formar uma folha. A primeira chave do irmão à direita do nó que permanece depois da fusão é copiada ao nó ascendente, e as chaves no ascendente são colocadas em ordem. Essas duas operações exigem atualização do separador no ascendente. Além disso, remover uma folha pode disparar fusões no conjunto de índices. 142