Apresentação sobre Árvores B

10.541 visualizações

Publicada em

Apresentação SIMPLIFICADA sobre Árvores B. Serviu de contextualização antes da nossa equipe lançar dois exercícios a serem desenvolvidos pela turma. Parte integrante de um dos trabalhos em matéria de estrutura de dados no Mestrado em Ciência da Computação (UFBA).

NOTA IMPORTANTE: O início da apresentação teve como base o livro "Projeto de Algoritmos" (Nivio Ziviani, 5 edição), mas o trecho sobre remoções teve como base o livro "Algoritmos" (Cormen et al.). Por isto, há uma mudança de abordagem sobre os parâmetros que definem o grau da árvore, no entanto, os algoritmos são os mesmos.

Publicada em: Tecnologia
  • Seja o primeiro a comentar

Apresentação sobre Árvores B

  1. 1. Árvores B Somos nós: Fernando Cerqueira, Jarbas Menezes Jr,Jailson Brito, Rafael Ávila, Thiago Colares e Vagner Amaral. Árvore B
  2. 2. 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
  3. 3. Caracterização da Árvore B• Árvores de pesquisa balanceadas;• Projetadas para acessar dados em memória secundária; – Como discos ou outros dispositivos de armezenamento secundário de acesso direto.• Muito utilizadas em SGBDs – relacionais ou não Árvore B
  4. 4. 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
  5. 5. Exemplo de Aplicação: Acessar informações no disco rídigo. Árvore B
  6. 6. Discos• 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: (A) Trilha • Exemplo: 1kb a 8kb; (B) Setor geométrico • Acesso ao disco é (C) Setor de trilha muito custoso. (D) Blocos de alocação Árvore B
  7. 7. Problemas• Muito mais lentos do que a memória principal; • Acesso fica custoso• Quantidade de dados manipulados não cabe na memória principal; (A) Trilha (B) Setor geométrico (C) Setor de trilha (D) Blocos de alocação Árvore B
  8. 8. 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! © 2001 Cormen et al. Árvore B
  9. 9. 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
  10. 10. Definição• 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 Árvore B
  11. 11. 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
  12. 12. Operações Árvore B
  13. 13. Inicialização• Um nó vazio é alocado no disco;• O nó é gravado no disco – não é executada nenhuma operação de leitura Árvore B
  14. 14. Busca• 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 Árvore B
  15. 15. 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 de Ordem 2 Árvore B
  16. 16. 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 de Ordem 2 Árvore B
  17. 17. Inserção• Se número de registro da página escolhida e do pai foram ambos ≥ 2m Árvore B
  18. 18. Remoção• 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. Árvore B
  19. 19. Remoção: Exemplo de Casos• 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 Árvore B
  20. 20. Remoção: Caso 1 • A chave está em um nó folha que contém pelo menos m registros.• Caso mais simples, eliminação de uma folha Árvore B
  21. 21. Remoção: Caso 2a / 2b• 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. Árvore B
  22. 22. Remoção: Caso 2c• 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; Árvore B
  23. 23. Remoção: Caso 3b• 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. Árvore B
  24. 24. Remoção: Caso 3b• 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. Árvore B
  25. 25. Remoção: Caso 3a• O nó que contém o registro só tem m – 1 registros, mas possui um irmão com pelo menos m registros:• C é movido para preencher a posição de B.• E é movido para preencher a posição de C. Árvore B
  26. 26. Exercício Árvore B
  27. 27. 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

×