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

Documentos relacionados
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 Partes I e II

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

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

Á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 (Parte II) Leandro C. Cintra M.C.F. de Oliveira Fonte: Folk & Zoelick, File Structures

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. Árvores B Parte II. Características. Características. Construção Bottom-Up. Leandro C. Cintra Maria Cristina F. de Oliveira.

Á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

Indexação de Arquivos III:

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

Indexação de Arquivos II:

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

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

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

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

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

Aula 16 Árvores Patricia e Árvores B

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

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

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

Armazenamento Secundário

Algoritmos e Estruturas de Dados II. Ordenação Externa II. Ordenação Externa. Ordenação Externa. Ordenação Externa

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

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

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

Acesso Sequencial Indexado

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

Algoritmos e Estruturas de Dados I Aula 15 Árvores de busca balanceadas (e mais...)

Bit (Binary Digit) é a menor unidade de armazenamento de informação dentro do computador; Byte é a união de 8 bits capaz de representar 256

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

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

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

Aula 16: Pesquisa em Memória Primária - Árvores de Busca. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP

Pesquisa em Memória Primária Árvores de Busca. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

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

Árvores de Pesquisa. A árvore de pesquisa é uma estrutura de dados muito eficiente para armazenar informação.

Estruturas de Dados. Árvores AVL: Partes I e II. Desempenho de ABBs (Revisão)

Árvores Binárias Balanceadas

Busca em Regiões Ortogonais

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 de Pesquisa (Parte I)

Ordenação e Busca em Arquivos

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

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

Linguagem C: Árvores AVL

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

Dicionários. TAD Orientado a conteúdo

Árvore B. Uma Árvore B de ordem m éumaárvore,talque: Cada nó contém no máximo m

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

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

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

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

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

Árvores Binárias de Busca

Á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

Árvores Binárias de Busca

Árvores Binárias de Busca

Árvore Vermelho-Preta. Estrutura de Dados II Jairo Francisco de Souza

Árvores AVL e Árvores B. Jeane Melo

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

Manutenção de Arquivos

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

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

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

ARMAZENAMENTO SECUNDÁRIO, PARTE 1 Professora Rosane Minghim

INF 1010 Estruturas de Dados Avançadas

Aula 13 Árvores Rubro-Negras

Aula 19 Árvores Rubro-Negras

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

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

Algoritmos e Estruturas de Dados II. Ordenação Externa II. Ordenação Externa. Ordenação Externa. Ordenação Externa.

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

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

Universidade Federal de Mato Grosso Estrutura de Dados II

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

BANCO DE DADOS Índices em BD Árvores B+

Estruturas de Dados. Aula 08. Árvores AVL II. Karina Mochetti

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

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

Hashing convencional...

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

Árvores binárias de busca

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

Árvores Binárias de Busca

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 AVL. Prof. Robinson Alves

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

Algoritmos e Estrutura de Dados II. Árvore AVL. Prof a Karina Oliveira. Fonte: Prof a Ana Eliza

Árvores binárias de busca

Organização de Arquivos

Uso de Índices na Otimização e Processamento de Consultas. Otimização e Processamento de Consultas. Otimização e Processamento de Consultas

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

ÁRVORES. Prof. Yan ndre Maldonado - 1. Prof. Yandre Maldonado e Gomes da Costa

Árvores Genéricas de Busca

Algoritmos e Estrutura de Dados II. Árvore AVL. Prof Márcio Bueno. / Material da Prof a Ana Eliza

Árvores Vermelho-Preto

Transcrição:

Algoritmos e Estruturas de Dados II Prof. Ricardo J. G. B. Campello Árvores B Parte I Introdução Adaptado e Estendido dos Originais de: Leandro C. Cintra Maria Cristina F. de Oliveira A Invenção da B-Tree Bayer and McGreight, 1972, publicaram o artigo: "Organization and Maintenance of Large Ordered Indexes" Em 1979, o uso de árvores-b para manutenção de índices de bases de dados já era praticamente padrão em sistemas de arquivos de propósito geral 2 Problema Acesso a disco é custoso (lento) Se o índice é grande e não cabe em memória principal, busca binária exige muitos acessos 15 itens podem requerer log 2 (15) 4 acessos 1.000 itens podem requerer log 2 (1000) 10 acessos São números muito altos para relativamente poucos itens 3 Problema Um problema ainda mais crítico é o custo de manter o índice ordenado em disco BB demanda reorganização de índices dinâmicos Inserção ou remoção de item pode afetar todo o índice É necessária uma ED na qual a inserção e a remoção de registros tenha apenas efeitos locais ED que não exija a reorganização total do índice Solução? 4

Árvores Binárias de Busca Árvores Binárias de Busca Representação de Parte da ABB Conjunto de Chaves e Representação por ABB 5 Registros de Índice com 3 campos: Chave e 2 Ponteiros (na prática tem-se um ponteiro adicional para o registro no arq. principal) 6 Árvores Binárias de Busca ABBs: Vantagens Ordem lógica da ED não está associada à ordem lógica ou física dos registros no arquivo de índice Representação lógica do arquivo índice Índice não precisa mais ser mantido ordenado: O que interessa é recuperar a estrutura lógica da árvore, o que é possível com os ponteiros RRN Inserção de uma nova chave no arquivo É necessário saber onde inserir esta chave na árvore Busca é necessária, mas reorganização do arquivo não é 7 8

Exemplo: Inserção de LV Problema: Desbalanceamento Inserção das chaves NP MB TM LA UF ND TS NK Pior Caso (inserção em ordem alfabética) Como fica a representação lógica do arquivo de índice mostrada anteriormente? 9 10 Árvores Completamente Balanceadas e AVL Árvores Completamente Balanceadas e AVL A eficiência de ABBs exige mantê-las balanceadas Árvores completamente balanceadas: Busca demanda log 2 (N+1) comparações de chaves no pior caso Corresponde à altura da árvore Para N = 1.000.000 chaves, busca percorre até 20 níveis Mas só é viável computacionalmente se árvore for estática No caso dinâmico, balanceamento requer árvores AVL Busca demanda 1.44*log 2 (N+2) comparações no pior caso Para N = 1.000.000 chaves, busca percorre até 28 níveis 11 12

Árvores Completamente Balanceadas e AVL Entretanto, se as chaves estão em memória secundária, qualquer procedimento que exija mais do que 5 ou 6 acessos para localizar uma chave é altamente indesejável 20 ou 28 acessos são inaceitáveis Em resumo, no caso de índices dinâmicos: AVLs resolvem apenas um dos dois principais problemas dos índices lineares ordenados: nunca requerem a re-organização global do índice em uma modificação no entanto, reduzem mas não resolvem o no. excessivo de acessos requerido em uma busca e, portanto, em qualquer outra operação A busca (seek) por uma posição específica do disco é lenta Mas uma vez encontrada a posição, pode-se ler uma grande quantidade registros seqüencialmente a um custo relativamente baixo Esta combinação de busca (seek) lenta e transferência rápida sugere a noção de página 13 14 Página: Um conjunto de registros fisicamente contíguos passíveis de serem recuperados em um único acesso p. ex. registros ocupando um setor ou cluster se o próximo registro a ser recuperado estiver na mesma página do anterior, evita-se um novo acesso ao disco Pode conter um número grande de registros Refere-se aos arquivos organizados em páginas como arquivos paginados (paged files) 15 16

Na ABB da figura anterior: qq. dos 63 itens é recuperado em, no máximo, 2 acessos! Com um nível adicional: ter-se-ão 64 novas páginas o que representa 64 x 7 = 448 itens adicionais qq. dos 511 itens é recuperado em, no máximo, 3 acessos! Com outro nível adicional: qualquer dos 4095 itens pode ser recuperado em no máx. 4 acessos! busca binária de 4095 itens pode demandar até 12 acessos Outro Exemplo: páginas com 511 itens cada página contém uma árvore completamente balanceada 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 + 256 = 511 itens OBS: 511 = 2 9 1 = 2 0 + 2 1 +... + 2 8 ABB com 3 níveis pode armazenar 134.217.727 itens 511 + 512*511 + 512 2 *511 = 134.217.727 qq. item é recuperado em, no máximo, 3 acessos!!! 17 18 Desempenho de Pior caso: ABB completamente balanceada: log 2 (N+1) acessos Versão paginada: log k+1 (N+1) acessos k = no. de itens em uma página (k=1 para a versão não paginada) N = no. de itens Exemplo anterior: ABB (k=1): log 2 (134.217.727) = 27 acessos Versão paginada (k = 511): log 511+1 (134.217.727) = 3 acessos É simples construir uma árvore paginada se todo o conjunto de chaves é conhecido antes de iniciar a construção Toma-se a chave mediana para obter uma divisão balanceada, de forma recursiva Porém, é complicado se as chaves são recebidas em uma seqüência aleatória 19 20

Exemplo: C S D T A M P I B W N G U R K E H O L J Y Q Z F X V No exemplo anterior: Construção top-down, a partir da raiz Sempre que uma chave é inserida, a árvore dentro da página é reajustada para manter o balanceamento interno Problema: Chaves pequenas no topo, como C e D, podem acabar desbalanceando a árvore de forma definitiva A árvore do exemplo não está tão ruim, mas o que aconteceria se as chaves fossem fornecidas em ordem alfabética? 21 22 Problema: É necessário manter o balanceamento após inserções e remoções Questões : com a restrição dos itens estarem agrupados em páginas... como garantir que as páginas formem uma árvore balanceada? p. ex., como impedir o agrupamento de chaves como C, D e S no exemplo anterior? como garantir que cada página contenha um no. mínimo de chaves? 23 Em resumo, como garantir: que as páginas formem uma árvore balanceada? que cada página contenha um no. mínimo de chaves? Rotações AVL não satisfazem as necessidades acima não se pode rotar páginas inteiras como se fossem itens individuais páginas contêm múltiplas chaves e múltiplos descendentes rotações tradicionais implicariam a modificação de várias páginas não possuem apenas efeitos locais Solução: Árvores B! 24

Exercícios Bibliografia 1. Ilustre graficamente uma ABB completamente balanceada com 15 chaves numéricas inteiras agrupadas em páginas de k=3 chaves internamente também balanceadas. 2. Repita o exercício anterior assumindo que as chaves são inseridas de forma aleatória. 3. Estime a quantidade de acessos no pior caso de busca por um item em um arquivo com 16.777.215 itens organizado como uma ABB completamente balanceada não paginada 4. Repita o exercício 3 para uma ABB do tipo AVL. 5. Repita o exercício 3 assumindo uma paginação de k=63 M. J. Folk and B. Zoellick, File Structures: A Conceptual Toolkit, Addison Wesley, 1987. 25 26