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

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

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

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

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

Á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

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

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

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

INF 1010 Estruturas de Dados Avançadas

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

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

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

Á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

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

Busca em Memória Secundária. Busca em Memória Secundária

Á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

Árvores B (Parte III)

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

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

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

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

Á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:

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

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

Construção de árvores-b. Árvores-B (Parte II) Características Gerais. Características Gerais. 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

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

Árvores Rubro-Negra IFRN

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

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

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

Árvores B Partes I e II

Árvores B + Prof Márcio Bueno. ed2tarde@marciobueno.com / ed2noite@marciobueno.com. Material da Prof a Ana Eliza Lopes Moura

Árvores binárias de busca

Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação. Árvores Balanceadas

Seja d um número natural. Uma árvore B de ordem d é uma árvore ordenada que é vazia, ou que satisfaz as seguintes condições:

Árvore B, B* e B+ Slides: Profa. Dra. CrisAna Dutra de Aguiar Ciferri. Murilo Gleyson Gazzola. ICMC- USP - Base de Dados

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

Armazenamento em disco com uso de índices

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

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

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

ESTRUTURA DE DADOS E ALGORITMOS. Árvores Binárias de Busca. Cristina Boeres

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

S U M Á R I O. Definição de Estrutura de Dados. Vetores. Listas Ligadas. Pilhas. Filas

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

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

ORGANIZAÇÃO DE ARQUIVOS INDEXADOS

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

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

Árvores AVL e Árvores B. Jeane Melo

Á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

Busca em vetores. Para encontrar um elemento em um vetor desordenado é caro Porém, inserir ou remover é barato.

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

Indexação de dados espaciais R-Tree. CCO229 Bancos de dados Espaciais e Biológicos Prof. Ricardo Rodrigues Ciferri Debora Marrach

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

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

Estruturas de Dados. Cristina Gomes Fernandes. Estruturas de Dados p. 1

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

Dados Espaciais e Indexação

Acesso Sequencial Indexado

INE5408 Estruturas de Dados

INF 1010 Estruturas de Dados Avançadas

Trabalho Prático. Primeira Parte do Trabalho (Parte I): peso 40%

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

Busca em Memória. Secundária

1. Proponha algoritmos para: a. Calcular a altura dos nós de uma árvore binária dada, armazenando o valor da altura no nó.

Lista de Prioridades. Estrutura de Dados II Prof. Erinaldo

Introdução a AVL: teoria e prática. 22/11, 25/11 e 30/11

Árvores Binárias de Busca

Árvores Rubro-Negras. Árvores Rubro-Negras. (Vermelho-Preta) Estrutura da Árvore. Estrutura da Árvore

ESTRUTURA DE DADOS CIÊNCIA E TECNOLOGIA DO RIO. Curso de Tecnologia em Sistemas para Internet

Splaying Tree (Árvore espalhada) Estrutura de Dados II Jairo Francisco de Souza

Dados espaciais Árvores R

Árvores binárias de busca

Hashing convencional...

Processamento Cosequencial: Ordenação Interna e Externa. Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira Cristina D. A.

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

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

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;

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

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

Indexação de Arquivos III:

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

Compactação e Reuso de Espaço

GBC053 Gerenciamento de Banco de Dados Índices baseados em Hash

Métodos de Busca Parte 1

CIC 111 Análise e Projeto de Algoritmos II

EAD ARVORE BINÁRIA - ARMAZENAMENTO NÃO SEQUENCIAL COM VETORES

HASHING HASHING 6/10/2008

GGI026 - Árvore rubro-negra - Remoção

Aula 18 Árvores B e parâmetros de compilação

Árvores Genéricas de Busca

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

Métodos de Pesquisa de Dados (II) Árvore N-ária de Pesquisa

1. Proponha algoritmos para: a. Calcular a altura dos nós de uma árvore binária dada, armazenando o valor da altura no nó.

1. Em relação à organização de arquivos e índices, responda: (a) Dado um arquivo de dados, o que é a chave de um índice para o arquivo?

Transcrição:

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

Desempenho da Árvore-B Baseado em suas propriedades 2 cada página, exceto a raiz e as folhas, possui no mínimo m/2 descendentes à taxa de ocupação 5 uma página interna com k descendentes contém k-1 chaves 6 uma folha possui no mínimo m/2-1 chaves e no máximo m - 1 chaves à taxa de ocupação habilidade de garantir que a árvore seja larga e rasa ao invés de estreita e profunda

Desempenho da Árvore-B Split garante a manutenção das propriedades da árvore-b durante a inserção de novas chaves Remoção também deve garantir as propriedades durante a remoção de chaves underflow ocorre quando o número de chaves em uma página fica abaixo do número mínimo de chaves permitido pela árvore-b

Remoção: Caso 1 Remoção de uma chave em um nó folha, sem causar underflow situação mais simples possível Solução eliminar a chave da página rearranjar as chaves remanescentes dentro da página para fechar o espaço liberado

Remoção: Caso 1 Remoção de J árvore-b de ordem 6 0 M 1 D H 2 Q U 3 4 5 6 7 8 A C E F I J K N O P R S V W X Y Z

Remoção: Caso 1 Remoção de J página 5 garante a taxa de ocupação 0 M 1 2 D H Q U 3 4 5 6 7 8 A C E F I K N O P R S V W X Y Z

Remoção: Caso 2 Remoção de uma chave em um nó não folha Solução sempre remover chaves somente nas folhas Passos trocar a chave a ser removida com a sua chave sucessora imediata (que está em um nó folha) remover a chave diretamente do nó folha

Remoção: Caso 2 Remoção de M 0 M 1 D H 2 Q U 3 4 5 6 7 8 A C E F I K N O P R S V W X Y Z

Remoção: Caso 2 Remoção de M troca-se M com N 0 N M 1 D H 2 Q U 3 4 5 6 7 8 A C E F I K M O P R S V W N X Y Z

Remoção: Caso 2 Remoção de M elimina-se M página 6 garante a taxa de ocupação 0 N 1 D H 2 Q U 3 4 5 6 7 8 A C E F I K O P R S V W X Y Z

Remoção: Caso 3 Remoção de uma chave em um nó, causando underflow Solução: Redistribuição procurar uma página irmã (i.e., que possui o mesmo pai) adjacente que contenha mais chaves do que o mínimo se encontrou redistribuir as chaves entre as páginas reacomodar a chave separadora, modificando o conteúdo do nó pai

Remoção: Caso 3 Remoção de R 0 N 1 D H 2 Q U 3 4 5 6 7 8 A C E F I K O P R S V W X Y Z

Remoção: Caso 3 Remoção de R para evitar underflow na página 7, redistribuise as chaves entre as páginas 7 e 8 por meio da página 2 0 N 1 2 D H Q W U 3 4 5 6 7 A C E F I K O P R S U V 8 X Y Z V W

Remoção: Caso 3 Remoção de R páginas 7 e 8 garantem a taxa de ocupação 0 N 1 D H 2 Q W 3 4 5 6 7 8 A C E F I K O P S U V X Y Z

Remoção: Caso 4 Remoção de uma chave em um nó, causando underflow e a redistribuição não pode ser aplicada Solução: Concatenação combinar para formar uma nova página o conteúdo do nó que sofreu underflow o conteúdo de um nó irmão adjacente a chave separadora no nó pai tratar o underflow no nó pai, caso necessário

Concatenação Processo inverso do split Características reverte a promoção de uma chave pode causar underflow no nó pai concatenação pode ser propagada em direção ao nó raiz ocorre a redução no número total de nós da árvore

Remoção: Caso 4 Remoção de A 0 N 1 D H 2 Q W 3 4 5 6 7 8 A C E F I K O P S U V X Y Z

Remoção: Caso 4 Remoção de A concatena-se as páginas 3 e 4 por meio da página 1 0 N 1 D H 2 Q W 3 4 5 6 7 8 A C E F I K O P S U V X Y Z

Remoção: Caso 4 Remoção de A gera-se underflow na página 1, o qual precisa ser tratado 0 N 1 H 2 Q W 3 5 6 7 8 C D E F I K O P S U V X Y Z

Remoção: Caso 5 Underflow no nó pai causado pela remoção de uma chave em um nó filho Solução utilizar redistribuição ou concatenação, dependendo da quantidade de chaves que a página irmã adjacente contém

Remoção: Caso 5 Propagação do underflow 0 N 1 H 2 Q W 3 5 6 7 8 C D E F I K O P S U V X Y Z

Remoção: Caso 5 Propagação do underflow concatena-se as páginas 1 e 2 por meio da página 0 0 N 1 H 2 Q W 3 5 6 7 8 C D E F I K O P S U V X Y Z

Remoção: Caso 5 Propagação do underflow 1 H N Q W 3 5 6 7 8 C D E F I K O P S U V X Y Z

Remoção: Caso 6 Diminuição da altura da árvore Característica o nó raiz possui uma única chave a chave é absorvida pela concatenação de seus nós filhos Solução eliminar a raiz antiga tornar no nó resultante da concatenação dos nós filhos a nova raiz da árvore

Remoção em Árvore-B 1. se a chave a ser removida não estiver em um nó folha, troque-a com sua sucessora imediata, que está em um nó folha 2. remova a chave 3. após a remoção, se o nó satisfaz o número mínimo de chaves, nenhuma ação adicional é requerida

Remoção em Árvore-B 4. após a remoção, caso ocorra underflow, verifique o número de chaves nos nós irmãos adjacentes à esquerda e à direita a. se algum nó irmão adjacente possui mais do que o número mínimo de chaves, aplique a redistribuição b. se nenhum nó irmão adjacente possui mais do que o número mínimo de chaves, aplique a concatenação

Remoção em Árvore-B 5. se ocorreu concatenação, repita os passos 3 a 5 para o nó pai 6. se a última chave da raiz for removida, a altura da árvore é diminuída

Redistribuição Representa uma idéia inovadora diferente do split ou da concatenação Não se propaga para os nós superiores apenas efeito local na árvore Baseada no conceito de nós irmãos adjacentes dois nós logicamente adjacentes, mas com pais diferentes não são irmãos

Redistribuição Não fixa a forma na qual as chaves devem ser redistribuídas possibilidade 1: mover somente uma chave, mesmo que a distribuição das chaves entre as páginas não seja uniforme possibilidade 2: mover k chaves possibilidade 3: distribuição uniforme das chaves entre os nós mais comum

Redistribuição durante Inserção Funcionalidade permite melhorar a taxa de utilização do espaço alocado para a árvore split divide uma página com overflow (i.e., working page) em duas páginas semivazias (i.e., page e newpage) X redistribuição a chave que causou overflow (além de outras chaves) pode ser colocada em outra página

Redistribuição durante Inserção Opção interessante a rotina de redistribuição já está codificada para prover suporte à remoção a redistribuição evita, ou pelo menos adia, a criação de novas páginas tende a tornar a árvore-b mais eficiente em termos de utilização do espaço em disco garante um melhor desempenho na busca, desde que um número menor de nós pode reduzir a altura da árvore, por exemplo

Split x Redistribuição Somente split na inserção no pior caso, a utilização do espaço é de cerca de 50% em média, para árvores grandes, o índice de ocupação é de ~69% Com redistribuição na inserção em média, para árvores grandes, o índice de ocupação é de ~86%