Apresentação sobre Árvores B

27
Árvores B Somos nós: Fernando Cerqueira, Jarbas Menezes Jr, Jailson Brito, Rafael Ávila, Thiago Colares e Vagner Amaral. Árvore B

description

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.

Transcript of Apresentação sobre Árvores B

Page 1: Apresentação sobre Árvores B

Árvores B

Somos nós:Fernando Cerqueira, Jarbas Menezes Jr,

Jailson Brito, Rafael Ávila, Thiago Colares e

Vagner Amaral.

Árvore B

Page 2: Apresentação sobre Árvores 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

Page 3: Apresentação sobre Árvores 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

Page 4: Apresentação sobre Árvores 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

Page 5: Apresentação sobre Árvores B

Exemplo de Aplicação:Acessar informações

no disco rídigo.

Árvore B

Page 6: Apresentação sobre Árvores 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.

Page 7: Apresentação sobre Árvores B

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;

Page 8: Apresentação sobre Árvores B

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.

Page 9: Apresentação sobre Árvores B

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

Page 10: Apresentação sobre Árvores 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

Page 11: Apresentação sobre Árvores B

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

Page 12: Apresentação sobre Árvores B

Operações

Árvore B

Page 13: Apresentação sobre Árvores B

Inicialização

Árvore B

• Um nó vazio é alocado no disco;

• O nó é gravado no disco – não é executadanenhuma operação de leitura

Page 14: Apresentação sobre Árvores B

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

Page 15: Apresentação sobre Árvores B

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

Page 16: Apresentação sobre Árvores B

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

Page 17: Apresentação sobre Árvores B

Inserção

Árvore B

• Se número de registro da página escolhida e do pai foram ambos ≥ 2m

Page 18: Apresentação sobre Árvores B

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.

Page 19: Apresentação sobre Árvores B

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

Page 20: Apresentação sobre Árvores B

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.

Page 21: Apresentação sobre Árvores B

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.

Page 22: Apresentação sobre Árvores B

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;

Page 23: Apresentação sobre Árvores B

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.

Page 24: Apresentação sobre Árvores B

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.

Page 25: Apresentação sobre Árvores B

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.

Page 26: Apresentação sobre Árvores B

Exercício

Árvore B

Page 27: Apresentação sobre Árvores 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