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).
Com o objetivo de manter essa propriedade de acesso sequencial, cada n folha possui um apontador
para o prximo elemento, como na imagem.
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 (Concatenao)
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.