Your SlideShare is downloading. ×
0
Apresentação sobre Árvores B
Apresentação sobre Árvores B
Apresentação sobre Árvores B
Apresentação sobre Árvores B
Apresentação sobre Árvores B
Apresentação sobre Árvores B
Apresentação sobre Árvores B
Apresentação sobre Árvores B
Apresentação sobre Árvores B
Apresentação sobre Árvores B
Apresentação sobre Árvores B
Apresentação sobre Árvores B
Apresentação sobre Árvores B
Apresentação sobre Árvores B
Apresentação sobre Árvores B
Apresentação sobre Árvores B
Apresentação sobre Árvores B
Apresentação sobre Árvores B
Apresentação sobre Árvores B
Apresentação sobre Árvores B
Apresentação sobre Árvores B
Apresentação sobre Árvores B
Apresentação sobre Árvores B
Apresentação sobre Árvores B
Apresentação sobre Árvores B
Apresentação sobre Árvores B
Apresentação sobre Árvores B
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Apresentação sobre Árvores B

8,084

Published on

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 …

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.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
8,084
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
223
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Antes de formalizarmos o conceito de árvores-B, vamos examinar porque estruturas de dadosarmazenadas em disco possuem característicasdiferentes das armazenadas na memóriaprincipal.
  • Exemplo de árvore tree. Note que
  • Muitasvezesdemoramais tempoparaacessarumapágina de informações e ler a leitura do disco que o tempo necessáriopara o computadorexaminar as informaçõesObservamostambémque o tempo de acessoao disco nãoéconstante – depende da distância entre a trilhaatual e a trilhadesejada
  • Explicação do pq: https://docs.google.com/viewer?a=v&q=cache:Y_pOhDF4fOUJ:www.dsc.ufcg.edu.br/~baptista/cursos/EDados/Unidade4Btree.doc+&hl=pt-BR&gl=br&pid=bl&srcid=ADGEESgx1CTemnjsTCeKPsdCJSnnDF4d9THiO7k8nyMSGVkQoPhpOVPhWZvrRWFJ_fXryolYlxDFxP9TCXIsb6lZWmM4-QMqGGsUqJ2-7qTjhmlYpZgZ9tPHFZYJYqCtuhmczF2Obsn0&sig=AHIEtbTbPsYggPwj4runBcv5Z58TyCTxVg•Já que os algoritmos de manipulação deárvores-B só precisam de um número constantede blocos na memória de cada vez, o tamanhoda memória principal não afeta o tamanho daárvore-B que pode ser tratada
  • Algoritmos de manipulação de Árvores-B só precisam de um número constante de blocos na memória de cada vez;
  • Algunsautores,comoZiviani, nãoregistrigem m ≥ 2, mas utilizamoslimitessubtraídos de 1
  • Nemsempreépossívelrespeitarestaregra?
  • Binária: toma-sedecisão de remificaçãobináriaÁrvore-b: toma-se decisão de ramificação número-de-registros-do-nó+1
  • Paiédivididoemdois, e registro do meiovaipara um nóacima.
  • Deleting from an internal node is recursive, meaning that child nodes must be adjusted down to a leaf node since there is one less key.
  • Encontre o predecessor (valor anterior) da registro (númeromais alto nasubárvoreàesquerda)Substitua o precedessorpelachaveque se quer remover (façaistorecursivamente) (Necessary since one less key in predecessor node. (mm?))Pare nafolha
  • Merge G com todososregistros dos filhos. Géempurradoparabaixo, forma-se D E G J K.NóperdeG e o ponteiropara um dos filhosO filho restante(D E G J K) contém 2m – 1 registros.Então G éeliminadorecursivamente da folha;
  • CASO 3 GERAL:http://homepages.ius.edu/rwisman/C455/html/notes/Chapter18/BT-Ops.htm (baseado no Cormen)If he key k is not present in internal node x, determine root x.ci of the appopriate child subtree that must contain k, if k is in the tree at all.Ifx.ci has only t-1 keys, execute steps 3a or 3b as necessary to guarantee descent to a node with at least t keys.Then finish by recursing on the appropriate x.c
  • O nóquecontém o registrosó tem m – 1 chaves, mas possui um irmão com pelomenosmregistros:Give x.ci an extra key by moving a key from x down into x.ciMoving a key from x.ci immediate left or right sibling up into x and moving the appropriate child pointer from the sibling into x.ci.
  • Transcript

    • 1. Árvores B Somos nós: Fernando Cerqueira, Jarbas Menezes Jr,Jailson Brito, Rafael Ávila, Thiago Colares e Vagner Amaral. Árvore B
    • 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. 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. 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. Exemplo de Aplicação: Acessar informações no disco rídigo. Árvore B
    • 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. 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. 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. 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. 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. 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. Operações Árvore B
    • 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. 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. 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. 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. Inserção• Se número de registro da página escolhida e do pai foram ambos ≥ 2m Árvore B
    • 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. 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. 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. 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. 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. 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. 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. 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. Exercício Árvore B
    • 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

    ×