Árvores B
Somos nós:Fernando Cerqueira, Jarbas Menezes Jr,
Jailson Brito, Rafael Ávila, Thiago Colares e
Vagner Amaral.
Árvore B
Origem da Árvore B
• Criada por Bayer e McCreight, 1972;
• Desenvolvida no Boeing Scientific Research Labs;
• Origem do “B” é desconhecida. Hipóteses:
– Boeing Scientific Research Labs;
– Bayer-trees
Árvore B
Caracterização da Árvore B
• Árvores de pesquisa balanceadas;
• Projetadas para acessar dados em memóriasecundária;
– Como discos ou outros dispositivos de armezenamento secundário de acesso direto.
• Muito utilizadas em SGBDs
– relacionais ou não
Árvore B
Caracterização da Árvore B
• Objetivo: minimizar o número de acessos ao disco
• Como? Maximizando o número de filhos de um nó, que pode chegar aos milhares.– Número de filhos é determinada pela ordem da árvore
Árvore B
Exemplo de Aplicação:Acessar informações
no disco rídigo.
Árvore B
Discos
Árvore B
(A) Trilha(B) Setor geométrico(C) Setor de trilha(D) Blocos de alocação
• Tecnologia barata;
• Alta capacidade armazenamento;
• Informações armazenadas em trilhas;
• Trilhas são divididas em em setores;
• Aplicações sempre acessam o disco em unidades de blocos:
• Exemplo: 1kb a 8kb;
• Acesso ao disco é muito custoso.
Problemas
Árvore B
(A) Trilha(B) Setor geométrico(C) Setor de trilha(D) Blocos de alocação
• Muito mais lentos do que a memória principal;
• Acesso fica custoso
• Quantidade de dados manipulados não cabe na memória principal;
Solução com Árvore B
• Uma árvore-B com grau 1001 e altura 2;• Pode armazenar mais de um bilhão de chaves;• O nó raiz permanentemente na memória principal;• No máximo dois acessos são necessários para ler qualquer chave!
Árvore B
© 2001 Cormen et al.
Solução com Árvore B
• Algoritmos só precisam um número constante de bloco na memória por vez;
• O tamanho da memória principal não afeta o tamanho da Árvore-B que pode ser tratada;
• O nó de uma Árvore-B é normalmente tão grande quando uma página de disco inteira;
– Para evitar reads e writes do disco, que praticamente determinam o tempo de execução
Árvore B
Definição
Árvore B
• Em uma Árvore B de ordem m temos que:
– Cada página contém:
• No mínimo m registros e m+1 descendentes
• No máximo 2m registros e 2m+1 descendentes
– Exceto a página raiz:
• No mínimo 1 registro e 2 descendentes
Exemplo
• Árvore B de ordem 2• Cada página deve conter:
• No mínimo 2 registros e 2+1 descendentes• No máximo 2 x 2 registros e 2 x 2 +1 descendentes
– Exceto a página raiz:• No mínimo 1 registro e 2 descendentes
Árvore B
Operações
Árvore B
Inicialização
Árvore B
• Um nó vazio é alocado no disco;
• O nó é gravado no disco – não é executadanenhuma operação de leitura
Busca
Árvore B
• Semelhante ao da árvore de pesquisa binária;– Em cada nó interno
• Se x = k[i], retorna
• Se k[i-1] < x < k[i], procurar no filho f[i]
– Folha• Se encontrou, retorna
– Não encontrou? Retorna null
Árvore B de Ordem 2
Inserção
• Encontrar a página ideal para inserir o registro
• Se número de registro da página < 2m
– Processo de inserção limitado àquela página
Árvore B
Árvore B de Ordem 2
Inserção
• Se número de registro da página ≥ 2m
– Após inserção, página é dividida
– Registro do meio sobe para o nó pai
– Demais registros são distribuídas igualmente entre os nós resultantes da divisão
Árvore B
Árvore B de Ordem 2
Inserção
Árvore B
• Se número de registro da página escolhida e do pai foram ambos ≥ 2m
Remoção
Árvore B
• Registro pode ser removido de qualquer nó;
• A remoção deve assegurar que nenhum nóficará com menos que m – 1 registros
• O algoritimo desce a árvore B uma única vez(sem subir de volta)– Exceção: quando não envolver leitura e escrita em
disco
• A remoção de um registro interno (não-folha) é recursiva.
Remoção: Exemplo de Casos
Árvore B
• Ordem m = 3 (“grau mínimo”)
• Máximo de registros por nó: 5 (2m – 1)
• Mínimo de registros por nó: 2 (m – 1)Cormen at al.
http://homepages.ius.edu/rwisman/C455/html/notes/Chapter18/BT-Ops.htm
Remoção: Caso 1
Árvore B
• Caso mais simples, eliminação de uma folha
• A chave está em um nó folha que contém pelo menos m registros.
Remoção: Caso 2a / 2b
Árvore B
• Chave está em nó interno. Nó do predecessor tem pelo menos m registros.
• O predecessor L de M é movido para cima, no lugar de M.
Remoção: Caso 2c
Árvore B
• Chave está em nó interno e filhos tem apenas m-1 registros.
• G é empurrado para baixo, forma-se D E G J K
• Então G é eliminado recursivamente da folha;
Remoção: Caso 3b
Árvore B
• Chave que contém D é folha;
• Mas a recursão não pode descer até D, pois o nó C L só tem dois registros;– Mínimo
• Logo, o nó C Lprecisa ser reorganizado.
Remoção: Caso 3b
Árvore B
• Então P é empurrado para baixo, e intercalado com C L e T X;• Forma-se C L P T X. D é eliminado (como no Caso 1);• Em seguida, a raiz é eliminada e a árvore encolhe uma unidade em altura.
Remoção: Caso 3a
Árvore B
• O nó que contém o registro só tem m – 1 registros, mas possui um irmãocom pelo menos m registros:
• C é movido para preencher a posição de B.
• E é movido para preencher a posição de C.
Exercício
Árvore B
Exercícios
• Escolher um campo do registro Music e implementar um outro índice, mantendo o índice atual;
• Deve ser possível fazer Pesquisa e Remoção usando qualquer um dos índices.
• Extra: Escolher o novo índice em tempo de execução
Árvore B
Top Related