Você está na página 1de 39

ÁRVORES B

Definição de árvores B
n As árvores B permitem manter mais de uma chave em cada
nó da estrutura
n Proporciona uma organização de ponteiros de forma que as
operações são executadas rapidamente
n Sua construção assegura que todas as folhas se encontram no
mesmo nível, não importando a ordem de entrada dos dados
n Largamente utilizadas como forma de armazenamento em
memória secundária
n Diversos sistemas comerciais de banco de dados utilizam
árvores B
Definição de árvores B
n Seja d um número natural
n Uma árvore B de ordem d é uma árvore ordenada
que satisfaz as seguintes propriedades
1. Se a raiz não é uma folha, possui no mínimo 2 filhos
2. Cada nó interno diferente da raiz possui no mínimo d+1
filhos
3. Cada nó possui no máximo 2d+1 filhos
4. Todas as folhas estão no mesmo nível
Definição de árvores B
Definição de árvores B
n Os nós de uma árvore B são chamados de
páginas
n Cada página P armazena diversas chaves
Definição de árvores B
n Se uma página P não folha possui m chaves, então P
possui m +1 filhos
n A raiz possui entre 1 e 2d chaves
n Cada página diferente da raiz possui entre d e 2d
chaves
n Em cada página P com m chaves, as chaves estão
ordenadas: S1 < S2 < …< Sm
n P contém m+1 ponteiros p0, p1, …,pm-1 apontando
para seus filhos (nas folhas, estes ponteiros são null)
Definição de árvores B
Busca de uma chave em uma
árvore B
Busca de uma chave em uma
árvore B
n Exemplo: s = 18
Busca de uma chave em uma
árvore B
Inserção de uma chave em uma
árvore B
n Seja s a chave a ser inserida
¨ Inicialmente, fazemos a busca da chave s na árvore
¨ Se s for encontrado, nada a fazer
¨ Se s não for encontrada, insere-se s na página-folha onde a
busca se encerrou, mantendo a ordenação correta da lista
de chaves
¨ Se eventualmente a página-folha contém mais de 2d
chaves, é preciso efetuar sua cisão ( 2d é o limite máximo
para o número de chaves em uma página)
Inserção de uma chave em uma
árvore B
n Seja s a chave a ser inserida no caso de uma cisão
¨ Caso a chave não exista e não exista espaço suficiente na
folha
¨ A folha é dividida em duas folhas
¨ A chave do meio é promovida para a página pai
¨ Se não houver espaço na página pai, o processo é repetido
para esse nó
Inserção em árvores B
n Exemplo: Para inserir 18, primeiro localizamos
a página.
Inserção em árvores B
n Verificamos quantas chaves já estão na página
antes de adicionar a chave s na mesma
n Caso 1: A página contém < 2d chaves, então
basta inserir a nova chave d na página
¨ Exemplo: inserir 18 - A página contém 3 < 2d = 4
chaves, então basta inserir
Inserção em árvores B
n Caso 2: Antes de inserir a nova chave, a página já contém 2d
chaves. Adicionando mais a chave irá resultar numa página
com 2d + 1 chaves.
¨ Consideramos as 2d + 1 chaves (incluindo a nova chave s ) em ordem
crescente. Inserimos a chave do meio (mediana) na página pai,
alocamos as primeiras d chaves numa página e as úl@mas d chaves em
outra. Diz-se que há uma divisão ou cisão da página (em duas).
¨ Exemplo: Para inserir 22, primeiro localizamos a página folha onde
será feita a inserção. Essa página já tem 2d = 4 chaves.
Inserção em árvores B
n Com a inserção de uma nova chave, a página tem
2d+ 1 = 5 chaves. Alocamos a chave do meio para
pai, d chaves em uma página e d chaves na outra.
n Exemplo: Movemos 30 para cima e separamos as
duas metades em duas páginas (divisão ou cisão).
Inserção em árvores B
n Exemplo: inserir 22
n A Árvore B após a divisão ou cisão da página
Inserção em árvores B
n No caso 2, a inserção de uma chave na página
pai pode por sua vez, de forma recursiva,
necessitar de uma divisão da página pai caso
esta também já esteja cheia e isso
sucessivamente até chegar à página raiz.
n Se a página raiz também já esRver cheia e
Rver que dividir em duas, então cria-se uma
nova raiz.
n Desse modo a B-árvore aumenta de altura.
Exercicio
n Considere uma B-árvore de ordem 2 inicialmente
vazia. Insira os seguintes valores: 20, 40, 10, 30, 15,
35, 7, 26, 18, 22, 5, 42, 13, 46, 27, 8, 32, 38, 24, 45,
25
Inserção de uma chave em uma
árvore B
n Exemplo de inserção: inserir 20 numa B-árvore de
ordem 2 inicialmente vazia
Inserção de uma chave em uma
árvore B
n Exemplo de inserção: inserir 40, 10, 30 numa B-
árvore de ordem 2
Inserção de uma chave em uma
árvore B
n Exemplo de inserção: inserir 15 numa B-árvore de
ordem 2. Excedeu a capacidade
Inserção de uma chave em uma
árvore B
n Exemplo de inserção: cisão da página
Inserção de uma chave em uma
árvore B
n Exemplo de inserção: inserir 35 numa B-árvore de
ordem 2.
Inserção de uma chave em uma
árvore B
n Exemplo de inserção: inserir 7 numa B-árvore de
ordem 2.
Inserção de uma chave em uma
árvore B
n Exemplo de inserção: inserir 26 numa B-árvore de
ordem 2.
Inserção de uma chave em uma
árvore B
n Exemplo de inserção: inserir 18 numa B-árvore de
ordem 2.
Inserção de uma chave em uma
árvore B
n Exemplo de inserção: inserir 22 numa B-árvore de
ordem 2. Excedeu a capacidade
Inserção de uma chave em uma
árvore B
n Exemplo de inserção: cisão da página
Inserção de uma chave em uma
árvore B
n Exemplo de inserção: inserir 5 numa B-árvore de
ordem 2. Excedeu a capacidade
Inserção de uma chave em uma
árvore B
n Exemplo de inserção: cisão da página
Inserção de uma chave em uma
árvore B
n Exemplo de inserção: inserir 42, 13, 46, 27, 8 numa
B-árvore de ordem 2.
Inserção de uma chave em uma
árvore B
n Exemplo de inserção: inserir 32 numa B-árvore de
ordem 2. Excedeu a capacidade
Inserção de uma chave em uma
árvore B
n Exemplo de inserção: cisão da página
Inserção de uma chave em uma
árvore B
n Exemplo de inserção: inserir 38, 24, 45 numa B-
árvore de ordem 2.
Inserção de uma chave em uma
árvore B
n Exemplo de inserção: inserir 25 numa B-árvore de
ordem 2. Excedeu a capacidade
Inserção de uma chave em uma
árvore B
n Exemplo de inserção: excedeu na página acima
Inserção de uma chave em uma
árvore B
n Exemplo de inserção: criação de nova raiz
Exercício
n Desenhe uma árvore B de ordem e que
contenha as seguintes chaves: 1, 3, 6, 8, 14,
32, 36, 38, 39, 41, 43
n Desenhe uma árvore B de ordem 3 que
contenha as seguintes chaves: 1, 3, 6, 8, 14,
32, 36, 38, 39, 41, 43

Você também pode gostar