Você está na página 1de 35

rvore B+

Andrei Figueiredo
Andressa Oliveira
Bianca Albuquerque
Bruno Ferreira
Fellipe Pimentel
Fernanda Oliveira
Flvio Wildner
Mayara Marques
Reinaldo Moraes

Introduo
A rvore B+ uma estrutura de dados derivada das rvores B, mas
com uma forma diferente de armazenamento de suas chaves. Esta
forma de armazenamento confere propriedades, algoritmos de insero,
busca e remoo de chaves diferentes dos utilizados em rvores B.

Histrico
A histria sobre o surgimento da rvore B+ no muito clara, pois
no h um consenso sobre quem realmente a criou e onde ela surgiu.
Proposta por Donald Ervin Knuth em artigos;
Apario vinculada com a rvore B e seus criadores;
Douglas Comer observa que a rvore B+ foi utilizada em um
software de acesso a dados da IBM;
A rvore B+ surgiu devido ao fato de existir uma certa deficincia
na rvore B;
Vantagens (localizao de registros, ponteiros em ns folhas e
mesmo comprimento de caminhos).

Estrutura da rvore sendo apresentada


- Devemos levar em considerao disco de memria secundria
utilizado e a quantidade de memria primria disponvel.

- Escolher o melhor tamanho da sequence set.

- Index Set carrega apenas copias das chaves.

Estrutura da rvore sendo apresentada


- Paginas Internas.
- As pginas internas apresentam apenas referncias para a
localizao das chaves de busca contidas nas pginas folha.
-

- funcionam como um ndice que apenas apontam para a localizao


exata de uma chave.
- Construo semelhante a arvore B.

Estrutura da rvore sendo apresentada


- Paginas Folhas
- esto abrigadas todas as chaves inseridas e durante o processo de
insero e remoo de chaves.
- Pode sofrer overflows ou underflows.
- Forma uma lista encadeada.

Estrutura da rvore sendo apresentada

Diferenas em relao rvore B


- As rvores B e B+ so bem semelhantes, possuindo apenas
algumas excees que sero abordadas nesse tpico.
- Estrutura de dados do tipo rvore derivada da rvore B.
- Modo diferente no armazenamento das chaves.
- Algoritmos de insero e remoo diferentes.
- Mantem todas as chaves de busca em seus ns folha.

Diferenas em relao rvore B


- Acesso sequencial ordenado nas chaves de busca.
- Ns folhas formam uma lista duplamente encadeada para um
acesso dos elementos em ordem sequencial.
-

Este acesso sequencial s possvel na rvores B com o auxlio de


um algoritmo que faa a leitura da mesma em ordem, gerando um
custo maior neste processo.

Diferenas em relao rvore B


-

Com o objetivo de manter essa propriedade de acesso sequencial, cada n folha possui um apontador
para o prximo elemento, como na imagem.

Diferenas em relao rvore B


- A organizao dos ns internos semelhante a de uma rvore B,
onde o n armazena cpias de chaves para referenciar as buscas,
mas no contm as chaves em si.
- Outra semelhana com as rvores B, o fato das chaves estarem
ordenadas tanto em suas pginas internas quanto em pginas
folha.

Insero
Passos
Localizar a folha em que a chave deve ser inserida.
Localizar a posio de insero dentro da folha.
Inserir a chave.
Se aps inserir a chave a folha estiver completa, realiza-se a ciso.

Exemplo Insero
1-2-3-4-5-6-7
m=3

Exemplo Insero
1-2-3-4-5-6-7

Exemplo Insero
1-2-3-4-5-6-7

Exemplo Insero
1-2-3-4-5-6-7

Exemplo Insero
1-2-3-4-5-6-7

Exemplo Insero
1-2-3-4-5-6-7

Exemplo Insero
1-2-3-4-5-6-7

Exemplo Insero
1-2-3-4-5-6-7

Exemplo Insero
1-2-3-4-5-6-7

Exemplo Insero
1-2-3-4-5-6-7

Exemplo Insero
1-2-3-4-5-6-7

Exemplo Insero
1-2-3-4-5-6-7

Busca
Passos
A busca inicia na raiz
Caso a chave seja encontrada em uma pgina no folha, a busca
continua pelo apontador direita at uma pgina folha.
Caso a chave encontrada seja maior que a chave procurada, a
busca continua pelo apontador esquerda.

Busca
Passos
Caso a chave encontrada seja menor que a chave procurada, a
busca continua no mesmo nvel da rvore, ou pelo apontador
direita(caso no exista chave maiores no mesmo nvel).
O algoritmo retorna se encontrou ou no a chave em uma
pgina folha.

Exemplo

Remoo
Seja m a ordem de uma rvore B+
Encontra pgina folha que contm elemento a ser retirado
Exclui elemento
Verifica quantidade de elementos da pgina (n)
Se n < (m/2)-1
Verifica quantidade de elementos (q) da pgina irm;
Se q > (m/2)-1
Redistribui
Seno

Remoo
Verifica quantidade de elementos da pgina (n)
Verifica quantidade de elementos das pginas irms (q)
Se n < (m/2)-1 e q = (m/2)-1
Se no for possvel realizar a redistribuio entre pginas adjacentes
Concatena

Remoo Simples

Remoo com redistribuio (irms)

Remoo com redistribuio (adjacentes)

Remoo (Concatenao)

Quando utilizar a rvore B+


1.Quando preciso de meios eficientes de acesso aos dados.
2.Quando necessrio um acesso sequencial.
3.Quando preciso diminuir a altura da rvore.
4.Quando preciso representar o funcionamento de um banco de
dados.
5.Quando uma rvore B no suficiente para armazenar todos os
registros.
6.Quando no se pode prejudicar performance com excluso, incluso
e adio.

Dicas de Implementao
1. Utilize sempre as melhores tcnicas de balanceamento para manter todas as folhas no
mesmo nvel.
2. Tenha certeza que cada n possui pelo menos da metade das chaves.
3. A Altura da sua rvore, sempre estar por volta de log (n)/log (k/2), onde N o
nmero de valores da rvore e K o nmero mximo de chaves para cada bloco.
4. Um Algoritmo de busca da raiz at suas folhas funciona de forma mais eficiente do que
um algoritmo especfico para suas folhas.
5. Todo caminho da raiz at uma folha X, deve ter o mesmo tamanho, citado no tpico 3.