Árvores B Parte IV. Revisão de Inserção. Organização. Variantes. Leandro C. Cintra Maria Cristina F. de Oliveira

Documentos relacionados
Árvores B Parte III. Propriedades, Remoção & Inserção Revisitada. Adaptado e Estendido dos Originais de:

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

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

Definição. Árvores B Parte III. Propriedades Gerais. Propriedade (No. Mín. de Chaves) Leandro C. Cintra Maria Cristina F.

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

Algoritmo: Split. Árvores B Parte IV. Algoritmo: Split. Algoritmo: Split. Algoritmo: Split. Procedimento inicial. Parâmetros

Indexação de Arquivos III:

Árvores B Partes I e II

Indexação de Arquivos II:

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

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

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

Construção de árvores-b. Árvores-B (Parte II) Características Gerais. Características Gerais. Leandro C. Cintra M.C.F. de Oliveira

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

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

SCC-503 Algoritmos e Estruturas de Dados II. Modificado por Moacir Ponti Jr, do original de:

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

Árvores-B (Parte I) SCC-503 Algoritmos e Estruturas de Dados II. Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira

Árvores B. Prof. Leandro C. Fernandes. Estruturas de Dados. Adaptado de: Leandro C. Cintra e M.C.F. de Oliveira

Armazenamento Secundário

HDs. Armazenamento Secundário. HDs. Capacidade do Disco. Organização de Informação em Disco. Organização de Informação em Disco

Organização de Arquivos. Campos e Registros. Seqüência de Bytes (stream) Seqüência de Bytes (stream) Seqüência de Bytes (stream)

Á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

Chaves. Acesso a Registros. Chaves Primária e Secundária. Chaves Primária e Secundária

Hashing. Hashing. Hashing versus Indexação. Hashing. Hashing convencional... Exemplo de espalhamento. Revisão...

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

Organização de Arquivos. Campos e Registros. Seqüência de Bytes (stream) Seqüência de Bytes (stream) Leandro C. Cintra Maria Cristina F.

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

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

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

Acesso a registros. Acesso a Registros. Acesso a registros. Chaves. Forma Canônica da Chave. Forma Canônica da Chave

Árvores Genéricas de Busca

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

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

Arquivos. Fundamentos de Arquivos. Discos X Memória Principal. Memória Secundária x Principal. Informação mantida em memória secundária (externa)

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

Operações Coseqüenciais. Processamento Coseqüencial. Modelo para implementação de processos coseqüenciais

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

Segunda Parte do Trabalho Prático (Parte II) Valor: 60% Descrição do índice

Memória Virtual. Adriano J. Holanda 1/3/2016

Manutenção de Arquivos

Memoria. UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática

Hashing convencional...

Armazenamento Secundário. Endereços no disco. Organização da informação no disco. Organização da informação no disco

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

ARMAZENAMENTO SECUNDÁRIO, PARTE 1 Professora Rosane Minghim

UFRJ IM - DCC. Sistemas Operacionais I. Unidade III Memória Primária. 29/04/2014 Prof. Valeria M. Bastos

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

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

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

Princípio da Localidade Apenas uma parte relativamente pequena do espaço de endereçamento dos programas é acessada em um instante qualquer Localidade

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

Fundamentos de Sistemas Operacionais

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

ORGANIZAÇÃO DE ARQUIVOS INDEXADOS

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

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES MEMÓRIA CACHE CONTINUAÇÃO CAPÍTULO 5. Cristina Boeres

BANCO DE DADOS Índices em BD Árvores B+

Capítulo 5 Livro do Mário Monteiro Conceituação. Elementos de projeto de memória cache

Gerenciamento de memória

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

Sistemas Operacionais. BC Sistemas Operacionais

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

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

INF 1010 Estruturas de Dados Avançadas

Organização de arquivos para desempenho. Manutenção de Arquivos. Compressão de dados. Compressão. Notação diferenciada. Técnicas

Acesso Sequencial Indexado

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

EDUARDO DA SILVA SARDÃO 0981/00-4 IGOR RODRIGO MACHADO DE MENEZES 1422/98-1 TRABALHO FINAL ÁRVORES B+

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

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

UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO

Memória Cache. Memória Cache. Localidade Espacial. Conceito de Localidade. Diferença de velocidade entre Processador/MP

Dicionários. TAD Orientado a conteúdo

Árvores. Árvores M-Vias. Métodos de Pesquisa de Dados. de Pesquisa (ANP) VANTAGENS EXEMPLO

Disco como gargalo. Armazenamento Secundário. Técnicas p/ minimizar o problema. Técnicas p/ minimizar o problema

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

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Organização de um Sistema Operativo

Sistemas Operacionais. Sistema de Arquivos. Edeyson Andrade Gomes.

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

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Sistemas Operacionais. Prof. MSc. André Yoshimi Kusumoto

EA075 Memória virtual

Gerência da Memória. Adão de Melo Neto

Sistemas Operacionais Gerenciamento de Memória. Carlos Ferraz Jorge Cavalcanti Fonsêca

Sistemas Operacionais

Etapa III - Implementação de Operadores da Álgebra Relacional; Etapa IV - Comparação experimental de varredura sequencial x acesso aleatório

ARMAZENAMENTO SECUNDÁRIO, PARTE 2

Gerenciamento de Memória

Quinto Trabalho Prático. Este trabalho tem como objetivo indexar arquivos de dados usando um índice árvore-b.

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

GBC053 Gerenciamento de Banco de Dados Índices baseados em Árvores

Programação de Sistemas

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

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

GERENCIAMENTO DE MEMÓRIA

Sumário. Sumário. Algoritmos e Estruturas de Dados II Organização de Arquivos. Organização de Arquivos. Seqüência de bytes (stream)

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

Transcrição:

Algoritmos e Estruturas de Dados II Prof. Ricardo J. G. B. Campello Árvores B Parte IV Variantes Adaptado e Estendido dos Originais de: Leandro C. Cintra Maria Cristina F. de Oliveira Organização Inserção Revisitada Revisão de Inserção em Árvores B Árvores B+ (próxima aula...) 2 Exemplo de Inserções Revisão de Inserção 1. Se árvore está vazia, crie a 1ª página (raiz), insira a chave e FIM 2. Senão, localize a página folha que deveria conter a chave 3. Se existe espaço, insira a chave, reordene a página e FIM 4. Senão (overflow): 4.1. Divida a página em duas (split) e redistribua as chaves entre elas 4.2. Se a pág. dividida era raiz, crie nova raiz como pai das duas resultantes 4.3. Promova a menor chave da pág. direita como separadora no nó pai 4.4. Se nó pai não sofreu overflow, FIM. 4.5. Senão, volte ao passo 4.1 para o nó pai. 3 4

Revisão de Inserção Note que, sempre que ocorre um overflow (passo 4), o algoritmo substitui a página com problemas por duas novas páginas com metade de sua capacidade ocupada Logo, no pior caso tem-se que: a utilização de espaço em uma Árvore B é em torno de 50%! Em média, para árvores com N (no. de chaves) e m (ordem) grandes, tem-se que: utilização de espaço se aproxima de um valor teórico 69% Seria possível melhorar esse desempenho evitando ao máximo a criação de novas páginas? 5 Pode-se evitar ou ao menos adiar a criação de uma nova página utilizando uma operação já presente em Árvores B: Redistribuição (para correção de underflow devido a eliminação) Redistribuição é uma idéia até então não explorada no algoritmo de inserção básico visto anteriormente Ao invés de dividir uma página folha cheia em 2 páginas folha novas semi-vazias, pode-se optar por colocar a chave excedente (ou mais de uma!) em uma página irmã direta com espaço Essa estratégia resulta em uma melhor utilização do espaço já alocado para a árvore 6 Exemplo: No quadro... Diferentemente da divisão e da concatenação, o efeito da redistribuição é local Não existe propagação! Estudos empíricos indicam que a utilização de redistribuição durante inserção pode elevar a taxa de ocupação média de espaço para 85% Resultados sugerem que qualquer aplicação séria de árvores B deve utilizar redistribuição durante inserção 7 8

Árvores B são muito eficientes mas podem ficar ainda melhores! Observe, por exemplo, que o fato da árvore ter profundidade 3 não implica em necessariamente fazer 3 acessos para recuperar uma página folha O fato do índice não caber todo em RAM não significa que não se possa manter pelo menos parte dele... Se raiz é sempre acessada, porque não mantê-la em RAM? Exemplo Considere uma árvore B com 3 níveis Podemos atingir qualquer página com, no máximo, 3 acessos Mantendo a raiz todo o tempo em memória primária, reduzimos o número máximo de acessos de 3 para 2 acessos Mas apenas com a raiz, ainda pode sobrar muita RAM! Porque não utilizar essa memória também? 9 10 Pode-se generalizar a idéia anterior: ocupar toda a memória disponível com páginas quando se precisa da página, ela pode já estar em RAM Se página demandada não estiver em RAM: carregada-se em RAM, substituindo outra Tem-se assim uma espécie de cache de disco: Buffer paginado em RAM denominado Árvore B virtual Questão: Quais páginas devem ser mantidas ou substituídas em RAM? Em outras palavras, qual a Política de Gerenciamento de Substituição? Política deve buscar maximizar eficiência do buffer mantendo em RAM páginas mais prováveis de serem requisitadas Política LRU (Last Recently Used): substitui-se a página acessada menos recentemente assume que acessos seguem um padrão de freqüência padrão de probabilidades de acesso associadas às chaves 11 12

Política da Altura: Colocar todos os níveis mais altos da árvore em RAM Por exemplo, suponha hipoteticamente que: temos um índice de 1Mb em uma árvore B com ~1.2Mb árvore B com ~83% de utilização de espaço cada página ocupa 4Kb árvore possui ~300 páginas árvore B com raiz + 10 descendentes com ~30 descendentes cada temos 256Kb de RAM disponível capacidade para 64 páginas No exemplo acima, podemos colocar os dois primeiros níveis da árvore (11 páginas = 44Kb) em RAM e ainda sobra muita memória 13 Política da Altura + LRU: No exemplo anterior, podemos utilizar a memória RAM que sobrou para implementar uma política LRU com páginas do 3º nível! Teremos todas as páginas do 1º e 2º níveis da árvore permanentemente em RAM, além de 64 11 = 53 páginas do 3º e último nível em esquema rotativo Esse esquema pode reduzir o no. esperado (médio) de acessos para menos de 1!!! 14 Alocação da Informação Em Resumo: Bufferização deve ser adotada em qualquer situação real de utilização de árvores B! 15 E a informação associada às chaves, onde fica? informação = demais campos dos registros normalmente fica em um arquivo separado (arquivo principal) Se a informação for mantida junto com a chave, elimina-se um acesso ao disco (ao arquivo principal) árvore constitui o próprio arquivo principal Porém, perde-se no número de chaves que podem ser alocadas em uma página reduz a ordem da árvore, aumentando a sua altura compensa apenas se demais informações forem muito compactas Decisão deve ser baseada nas alturas máximas das árvores calculadas para ambos os casos 16

Árvores B+ Árvores B+ também permitem acesso seqüencial ordenado ao arquivo principal Idéia é esboçada abaixo: 4 6 8 18 10 12 22 28 10 11 12 14 16 18 20 22 24 26 28 30 32 Exercícios Capítulo 9 (Folk & Zoellick, 1987) Lista de Exercícios (CoTeia) Nota. A lista faz referências à 2ª edição do livro de Folk & Zoellic. FOLK, M. & ZOELLICK, B., File Structures, 2nd Edition, Addison-Wesley, 1992. Mais Detalhes: próxima aula... 17 18 Bibliografia M. J. Folk and B. Zoellick, File Structures: A Conceptual Toolkit, Addison Wesley, 1987. 19