ACH2024. Aula 16 Árvores B Parte 1. Prof Helton Hideraldo Bíscaro

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

Á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. Exemplo de árvore 2-3-4

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

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

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

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

Estrutura de indexação de arquivos

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

(a) todos os nós irmãos da árvore m-ária são interligados; (b) todas as conexões pai-filho são removidas, exceto a primeira de cada grupo.

AED2 - Aula 04 Vetores ordenados e árvores de busca

Programação II. Árvores Binárias (Binary Trees) Bruno Feijó Dept. de Informática, PUC-Rio

ÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior

Aplicações de listas Outras estruturas

Árvores binárias de busca

Aplicações de listas e outras estruturas

ÁRVORES BINÁRIAS DE BUSCA. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

Acesso Sequencial Indexado

Árvores Binárias de Busca (ABB) 18/11

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

Árvores Binárias de Busca

INF 1620 P4-27/06/02 Questão 1 Nome:

Árvores AVL e Árvores B. Jeane Melo

AED2 - Aulas 06 e 07 Árvores AVL e rubro-negras

Aplicações de listas e outras estruturas

DAINF - Departamento de Informática

Lista Ligada de Produtos parte 2 Data Máxima de Entrega: 17/11/2018

Árvores de Pesquisa (Parte II)

CHAPTER ONE. Uma árvore B de ordem "m" (máximo de filhos para cada nó) é uma árvore que atende as seguintes propriedades:

Árvores Binárias de Busca

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

Árvores binárias de busca

Copiar para o ficheiro ArvoreBinaria.h e adaptar as funções associadas às operações sobre árvores binárias (3.1 a 3.12)

Árvores Binárias de Busca (ABB) 18/11

Aplicações de listas e outras estruturas. SCC-502 Algoritmos e Estruturas de Dados I

ANHANGUERA ESTRUTURA DE DADOS AULA 02 O QUE É ESTRUTURA DE DADOS? Prof. Thomás da Costa

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

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

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

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

Algoritmos e Estruturas de Dados Prof. Osório PIP/CA - Aula 05 Pag.: 1

AED2 - Aula 01 Apresentação, estruturas de dados, tabelas de símbolos e hash tables

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

BCC202 - Estrutura de Dados I

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

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)

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

ÁRVORES BALANCEADAS (AVL)

LISTAS LINEARES. Estrutura de Dados

Listas Estáticas. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof.

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

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

Algoritmos de ordenação: Bucketsort, Radixsort e Seleção

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

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

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

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

INF 1620 P4-13/12/01 Questão 1 Nome:

Árvores B. Árvore B (ou melhor B+)

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

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

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

Árvores Binária de Busca. Prof. César Melo DCC/ICE/UFAM

ÁRVORE BINÁRIA DE BUSCA

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

ALGORITMOS E ESTRUTURAS DE DADOS CES-11 Prof. Paulo André Castro Sala 110 Prédio da Computação IECE - ITA

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

Algoritmos e Estrutura de Dados. Aula 05 Estrutura de Dados: Listas (Parte II) Prof. Tiago A. E. Ferreira

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

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

Dicionários: B-Trees

Árvore Binária de Busca. Prof. César Melo

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

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

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

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

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

Árvores binárias de busca

CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches Juliana de Melo Bezerra

INF 1010 Estruturas de Dados Avançadas

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

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

Algoritmos e Estruturas de dados

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

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

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

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

Estrutura de Dados (DPADF 0056)

Pedro Vasconcelos DCC/FCUP. Programação Funcional 16 a Aula Árvores equilibradas

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

Árvores de Pesquisa (Parte II)

Aula T19 BCC202 Pesquisa (Parte 1) Pesquisa Binária. Túlio Toffolo

AULA 03 ESTRUTURA DE DADOS

Departamento de Informática PUC-Rio INF Estruturas de Dados Lista 2 Completa (Gerada em 8 de maio de 2006)

Á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

Aula 13 Árvores Rubro-Negras

Listas Lineares. Livro Projeto de Algoritmos Nívio Ziviani Capítulo 3 Seção 3.1

Aula 15: Pesquisa em Memória Primária. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP

Transcrição:

ACH2024 Aula 16 Árvores B Parte 1 Prof Helton Hideraldo Bíscaro 1

Na aula passada... 2

Organização indexada Blocos de dados: em cada bloco os registros são ordenados pela chave Índice primário: blocos de índices ORDENADOS (pelo campo k) contendo registros de tamanho fixo com os campos <k,b>, sendo k a chave (primária) do primeiro registro (âncora) do bloco apontado por b Blocos do índice k b O índice é ordenado pelo campo k Blocos de dados Qual a vantagem? Índice tem bi blocos, sendo bi << B (B = nr de blocos de dados, no exemplo acima bi = 1 e B = 4), pois cada entrada é menor que um registro, e há só uma entrada por bloco de dado busca binária no índice é muito mais rápida!!! O(lg bi) 3

4

Organização indexada Problema: inserção / remoção Altera a posição em disco de vários registros altera âncora de vários blocos altera várias entradas do índice primário Formas de contornar o problema: Remoção por bits de validade Usar um arquivo desordenado de overflow (para as inserções, se necessário) Ou uma lista ligada de overflow (os registros do bloco e da lista podem ser ordenados para melhorar a busca) 5

Dá para melhorar ainda mais a busca? O que dá para fazer se o arquivo é muito grande e o próprio índice ficou grande (com muitos blocos)? ÍNDICE DO ÍNDICE!!! 6

Organização indexada multiníveis Nível 1: arquivo de índices para os dados Nível 2: arquivo de índices para o arquivo de índices nível 1 Se no nível 2 precisar de mais de um bloco, criar nível 3!. 7

8

Organização indexada multiníveis Nível 1: arquivo de índices para os dados Nível 2: arquivo de índices para o arquivo de índices nível 1 Se no nível 2 precisar de mais de um bloco, criar nível 3!. Busca: binária em cada nível (rápida!) - O(t) - precisa acessar t blocos, sendo t o número de níveis t = ceil(log fbi r 1 ), fbi = nr de registros que cabem em um bloco de índice (fator de blocagem) r 1 = nr total de registros de índice no nível 1 9

Organização indexada multiníveis Nível 1: arquivo de índices para os dados Nível 2: arquivo de índices para o arquivo de índices nível 1 Se no nível 2 precisar de mais de um bloco, criar nível 3!. Busca: 1 acesso em cada nível (rápida!) - O(t) - precisa acessar t blocos, sendo t o número de níveis t = ceil(log fbi r 1 ), fbi = nr de registros que cabem em um bloco de índice (fator de blocagem) r 1 = nr total de registros de índice no nível 1 10

Organização indexada multiníveis Inserção / remoção:? 11

Organização indexada multiníveis Inserção / remoção: cada vez mais complicado!!! Posso ter que alterar tudo! 12

Organização indexada multiníveis Inserção / remoção: cada vez mais complicado!!! Posso ter que alterar tudo! O que fazer??? Como ter uma busca eficiente mas permitir uma inserção e remoção razoável? AULA DE HOJE 13

Lembrando de AED 1... Busca eficiente sem gastar memória: 14

Lembrando de AED 1... Busca eficiente sem gastar memória: Busca binária (em um vetor) Mas o problema era justamente inserção / deleção Qual era a alternativa de continuar fazendo busca binária mas permitir dinamismo de inserção / remoção? 15

Lembrando de AED 1... Busca eficiente sem gastar memória: Busca binária (em um vetor) Mas o problema era justamente inserção / deleção Qual era a alternativa de continuar fazendo busca binária mas permitir dinamismo de inserção / remoção? Árvores Binárias de Busca!!!! 16

Lembrando de AED 1... Busca binária (em um vetor): -4, 2, 3, 5, 19, 21, 25 17

Lembrando de AED 1... Busca binária (em um vetor): -4, 2, 3, 5, 19, 21, 25 Árvores Binárias de Busca: 18

Lembrando de AED 1... Busca binária (em um vetor): -4, 2, 3, 5, 19, 21, 25 Árvores Binárias de Busca: 19

Lembrando de AED 1... Busca binária (em um vetor): -4, 2, 3, 5, 19, 21, 25 Árvores Binárias de Busca: IMPLEMENTAÇÃO? 20

Lembrando de AED 1... Busca binária (em um vetor): -4, 2, 3, 5, 19, 21, 25 Árvores Binárias de Busca: 21

Podemos pensar em algo semelhante para melhorar o dinamismo dos índices múltiníveis? 22

Podemos pensar em algo semelhante para melhorar o dinamismo dos índices múltiníveis? Árvores de busca n+1-árias! N = quantos registros são representados em um nó (bloco) da árvore, cada registro com uma chave ki N+1 ponteiros para nós filhos contendo registros com chaves em cada intervalo O segredo será mantê-las balanceadas! 23

ÁRVORES B!!! Registros organizados pela árvore, assim como na árvore binária de busca Logo, se os registros possuem uma chave única, não há repetição de valores Abaixo é representada só a chave para simplificar a figura, mas na verdade deve conter, para cada chave ki, o resto do registro (demais dados daquele item) ou um ponteiro pi para o registro (ki, pi) 24

Árvore B Clássica Vamos começar estudando a árvore B clássica, depois fica fácil adaptar para a árvore B+ 25

Árvore B Clássica Como deve ser a estrutura de dados para essa árvore? Considerando um nó x, descreva como estão dispostos os valores pela árvore Adiantando um pouquinho implemente a busca por uma chave c 26

27

raiz o nó x 28

Árvore B - Definição 29

Árvore B - Definição 30

Árvore B - Definição 31

EXERCÍCIO Reescreva as definições anteriores utilizando a seguinte implementação para nós: typedef int TipoChave; typedef struct no { TipoChave chave[max]; struct no* filho[max+1]; int numchaves; bool folha; } NO; 32

Tipo Nó de uma árvore B typedef int TipoChave; typedef struct no { TipoChave chave[max]; struct no* filho[max+1]; int numchaves; bool folha; } NO; 33

VAMOS PAUSAR A DEFINIÇÃO E PENSAR Como inserir o valor 1 nessa árvore? 34

VAMOS PAUSAR A DEFINIÇÃO E PENSAR Como inserir o valor 1 nessa árvore? E depois 9, 6,... 35

VAMOS PAUSAR A DEFINIÇÃO E PENSAR Como inserir o valor 1 nessa árvore? E depois 9, 6,... A forma que eu defino a inserção, mesmo mantendo as propriedades vistas até agora, não deveriam aumentar a altura da árvore em demasiado 36 Para isso outras propriedades devem ser definidas e mantidas...

Árvore B - Definição 37

Árvore B - Definição Isso quer dizer que eu posso inserir o valor 1 como um filho esquerdo de 2? 38

Árvore B - Definição Isso quer dizer que eu posso inserir o valor 1 como um filho esquerdo de 2? NÃO! 39

Árvore B - Definição chaves 40

Estrutura de uma árvore B #define t 2 typedef int TipoChave; typedef struct no { TipoChave chaves[2*t-1]; struct no* filhos[2*t]; int numchaves; bool folha; } NO; 41

Árvore B - Observação 42

Árvore B altura máxima 43

Operações Básicas em Árvores B 44

Operações Básicas em Árvores B 45

46

raiz o nó x 47

Referências Livro do Cormen: cap 18 (3 a ed.) Livro do Drozdek (4 a ed) cap 7 48