Você está na página 1de 19

TAD – Árvore B+

Estrutura de Dados II

Prof. Dr. Jean M. Laine


Comentários Gerais

• Árvore B+ é muito semelhante à árvore B, exceto pelos fatos que:


• Os dados são armazenados apenas nas folhas: as páginas internas (nós) guardam apenas
chaves (ponteiros)
• As páginas folhas são encadeadas por ponteiros
• Usamos, possivelmente, lista duplamente encadeada na implementação

• Assim, é possível armazenar dados em um arquivo e os índices em outro arquivo separado


• Vários sistemas de arquivos usam estas árvores para fazer indexação dos arquivos: NTFS,
ReiserFS, etc
• SGBDs também usam: Microsoft SQL Server, Firebird, PostgreSQL, MariaDB, SQLite, etc
Árvore B+
• A ordem de uma árvore B+ é dada pelo número máximo de
descendentes que uma página pode possuir.
• Em uma árvore-B+ de ordem M, cada página pode ter no máximo M
páginas filhas e o número máximo de chaves em uma página é M-1.
• Já o número mínimo de chaves é dado por M/2 -1 (exceto para a
raiz).
• Atenção, uma diferença sobre as páginas:
• Páginas internas possuem: chaves (índices) + ponteiros para página filha
• Páginas folhas: registro (dados) + ponteiros para próximo
Exemplo Árvore B+

As páginas que contém apenas índices repetem valores que podem aparecem nas folhas, o que não acontecia em árvore B.
Simples Exemplo

20 40

01 10 15 20 24 35 40 50
Alan José Maria Mário André Ana Marta Clara

M M F M M F F F
Busca na árvore B

• Semelhante à Árvore B
• Entretanto:
• A pesquisa não termina se a chave for encontrada em uma página de
índice
• O índice pode existir e a página não está mais presente
Inserção na árvore B

• Semelhante a inserção em uma árvore B:


• Localizar a folha onde a chave deve ser inserida
• Devemos considerar agora que se a chave buscada for maior ou igual a chave encontrada,
descemos pelo ponteiro da direita!
• Localizar a posição dentro da folha
• Inserir a chave
• Se ultrapassar a quantidade máxima de elementos: cisão da página
• Atenção: quando a cisão é em uma folha, para o nó pai só sobe a chave e não os dados do registro.
Os dados ficam em um nova página com os registros maiores. Os registros menores em outra
página.
• E quando a cisão é em uma página intermediária? ocorre igual em árvore B
Exemplo: B+ ordem 3
Inserir o 30 na árvore abaixo
A chave do meio sobe para a página pai,
e o registro da chave que subiu é adicionada na
página nova, junto com os demais registros
(maiores). Os registros menores que a chave do
meio ficam em outra página.

Depois de reorganizar as páginas,


precisamos ajustar os ponteiros
que conectam as páginas folhas.
Inserir o 40
Inserir o 40
Inserir o 50
Inserir o 50
Remoção na árvore B

• A chave X é removida da folha;


• A folha é reorganizada;
• A chave X não é removida das páginas internas.

• Se desrespeitar a propriedade do número mínimo de elementos na página


folha:
• Concatenação
• Redistribuição
Por que usar árvore B+?

❑ Com a árvore B+, a busca sequencial de dados no


disco é muito mais rápida que na árvore B
❑ Exemplo: retorne todos os registros com chaves
entre 20 e 300
❑ Melhor Desempenho!
Comparação

Árvore B+ Árvore B
As chaves de pesquisa podem ser repetidas. As chaves de pesquisa não podem ser redundantes.
Ambas as páginas, folhas e internas, podem armazenar
Os dados são salvos apenas nos páginas folhas.
dados
Os dados armazenados na página folha tornam a pesquisa mais A pesquisa é lenta devido aos dados armazenados na
precisa e rápida. página folha e nas internas.
A exclusão não é difícil, pois um elemento é removido apenas de A exclusão de elementos é um processo complicado e
uma página folha. demorado.
As folhas conectadas tornam a pesquisa sequencial eficiente e
As páginas folhas não estão conectadas.
rápida.
Exercício

Construa uma árvore B+ para o seguinte conjunto de


valores chave:
2,3,5,7,11,17,19,23,29,31

Os valores sejam acrescentados em ordem crescente.


Construa uma árvore B+ de ordem 4.
Faça as inserções passo-a-passo no simulador
imaginando o que vai acontecer antes de cada
operação.
https://www.cs.usfca.edu/~galles/visualization/BPlusTree.html
Anotações

Você também pode gostar