Escolar Documentos
Profissional Documentos
Cultura Documentos
Situao Problema
Memria Principal
Voltil e limitada
Aplicaes
Grandes quantidades de informao Armazenamento permanente de informaes
Situao Problema
Situao Problema
Necessidade
Reduzir o nmero de acessos a disco
Soluo
Agrupar vrias chaves dentro de um n
Obter com o mesmo acesso vrias chaves Reduzir o nmero de acessos Diminuir o tempo necessrio para inseres, remoes e pesquisas.
Definio
Uma rvore de busca multivias de ordem M uma rvore n-ria na qual todos os ns tm grau menor ou igual a M. Um n com M descendentes contm M-1 valores de chave.
Exemplo: M = 3
20 40 10 15 25 30 45 50
35
Desempenho da Busca
rvores multivias de N chaves e fator de ramificao S. Caminho mdio de busca: O(logSN) Se N = 106 e S = 100, ento uma busca requer, em mdia, log100106 = 3 passos. rvore de busca binria: log2106 = 20 passos.
Estrutura de Dados II - Mrcio Bueno 7
Problema
Inseres aleatrias de maneira irrestrita Aumento do caminho de busca
Soluo
Balanceamento
rvores B
Definio
Bayer e McCreight em 1970. Uma rvore B de ordem M uma rvore de busca multivias balanceada. Uma rvore B ou est vazia ou possui ns com K apontadores e K-1 chaves. OBS: Um n de uma rvore B chamado de pgina.
Estrutura de Dados II - Mrcio Bueno 9
rvores B
Utilizao
rvores B so utilizadas como forma de armazenamento em diversos sistemas de BD comerciais.
10
rvores B
Caractersticas Estruturais:
Na raiz, K deve ser, no mnimo, 2. Ou seja, a raiz possui no mnimo dois filhos e uma chave. Nos demais ns, K deve ser, no mnimo, M/2. Ou seja, os demais ns possuem, no mnimo, M/2 filhos e M/2-1 chaves; Exceo: Folhas no tm filhos.
Estrutura de Dados II - Mrcio Bueno 11
rvores B
OBS: M deve ser escolhido de forma que o nmero mximo de chaves nos ns da rvore seja uma potncia de 2
Estrutura de Dados II - Mrcio Bueno 12
rvores B
N, M/2 N M, o nmero de entrada ativas (ocupadas) de um n em um dado momento; Ai, 0 i M-1, um apontador para uma subrvore; Ci, 1 i M-1, um valor de chave e Ci < Ci+1; O par (CiAi) chamado de entrada; O apontador A0 tambm definido como Estrutura de 13 entrada. Dados II - Mrcio Bueno
rvores B
rvores B
Caractersticas (cont.):
Seja uma pgina com D chaves:
Para qualquer chave y, pertencente pgina apontada por A0, y < C1; Para qualquer chave y, pertencente pgina apontada por Ai, 1 i D-1,
Para qualquer chave y, pertencente pgina apontada por AD, y > CD.
Estrutura de Dados II - Mrcio Bueno 15
rvores B
Comparao em termos de ns e chaves por nvel entre uma rvore binria e uma rvore B de ordem M de mesma altura.
Nvel Binria rvore B 1 n 0 1 n x M-1 chaves 2 ns M ns x (M-1) chaves 1 4 ns M x M ns x (M-1) chaves 2 8 ns M x M x M ns x (M-1) chaves 3 ... ... ... 2n ns Mn ns x (M-1) chaves n
Estrutura de Dados II - Mrcio Bueno 16
rvores B
Observaes:
A ordem M determina as quantidades mximas e mnimas de chaves dentro de cada n. O nmero mnimo de chaves estabelecido para determinar o percentual mnimo de ocupao dentro de um n. Na rvore B esse percentual de 50% (no considerando a raiz).
Estrutura de Dados II - Mrcio Bueno 17
rvore B
Insero
Em uma rvore B, a insero de uma nova chave ocorre sempre em um n folha. Passos:
Localizar a folha dentro da qual a chave deve ser inserida; Se a folha no estiver completa, inserir chave na ordem correta; Se a folha estiver completa, realizar a ciso da pgina.
Estrutura de Dados II - Mrcio Bueno 18
rvore B
Insero: Exemplo - M = 5
Inserir chave 85
85 | | |
60 | 85 | |
Inserir chave 60
Inserir chave 52
52 | 60 |85 |
52 |60 |70 |85
Inserir chave 70
19
rvore B
Insero
Ciso de Pgina O processo de ciso consiste em separar a folha completa em duas: folha esquerda e folha direita.
20
rvore B
rvore B
60 | | |
52 |58 | |
70 | 85 | |
22
rvore B
70|85|111|205
rvore B
5 | 23 | |
52 |58 | |
70|85|111|205
rvore B
5 | 23 | |
52 |58 | |
70 | 85 | |
111|205 | |
25
rvore B
52 |58 | |
111|205 | |
rvore B
52 |58 | |
64 |70 | |
85 |90 | |
111|205 | |
rvore B
Insero
A insero da nova entrada no n pai pode acarretar a necessidade de uma nova ciso; A ciso de pginas propagvel, podendo atingir at mesmo a raiz da rvore. Neste caso, surge uma nova raiz, o que implica em alterao da altura da rvore. Aps o processo de insero, a rvore permanece balanceada.
Estrutura de Dados II - Mrcio Bueno 28
rvore B
23 | 37 | |
75 | 97 | |
5 | 14 | |
25 |30 | |
52 |58 | |
64 |70 | |
85 |90 | |
111|205| |
29
rvores B
Consulta
Verifica se a chave procurada est na raiz; Caso no esteja, se a chave for menor que a chave Ci, 1 i N-1, ento repetir a pesquisa na subrvore Ai-1; A pesquisa termina quando encontramos a chave ou um apontador Ai igual a nulo.
Estrutura de Dados II - Mrcio Bueno 30
rvore B
Consulta Exemplo:
Procurar chave 52
60 | | |
23 | 37 | |
75 | 97 | |
5 | 14 | |
25 |30 | |
52 |58 | |
64 |70 | |
85 |90 | |
111|205| |
31
rvores B
Consulta Algoritmo:
void BuscaB(Tipo x, no *raiz, no *&pt, bool &f, int &g) { no *p = raiz; pt = null; f = false; while (p != null) { int qtd = p->n, i; i = g = 0; pt = p; while (i < qtd) if (x > p->chv[i]) { i = g = i + 1; } else if (x == p->chv[i]) { f = true; return; } else { p = p->pont[i]; i = qtd + 1; } if (i == qtd) p = p->pont[qtd]; } }
Estrutura de Dados II - Mrcio Bueno 32
rvore B
Consulta - Algoritmo:
Os parmetros pt, f e g fornecem o resultado da busca. Se a chave for encontrada na tabela, f verdadeiro, pt contm o endereo da pgina que contm a chave e g contm a posio da chave dentro da pgina. Se a chave no for encontrada, f continua falso, pt aponta para a ltima pgina examinada e g informa a posio, nesta pgina, onde a chave seria includa.
Estrutura de Dados II - Mrcio Bueno 33
rvore B
Consulta Algoritmo:
A pesquisa dentro de um n seqencial. Se a ordem da rvore for maior que 10, devemos considerar a utilizao de pesquisa binria.
34
rvore B
35
rvore B
Remoo (Exemplo)
Caso 1: Remover a chave 37 (antes)
60 | | |
23 | 37 | |
75 | 97 | |
5 | 14 | |
25 |30 | |
52|54|56|58 64 |70 | |
85 |90 | |
111|205| |
36
rvore B
Remoo (Exemplo)
Caso 1: Remover a chave 37 (depois)
60 | | |
23 | 52 | |
75 | 97 | |
5 | 14 | |
25 |30 | |
54|56 |58 |
64 |70 | |
85 |90 | |
111|205| |
37
rvore B
Remoo
Caso 2: A chave X se encontra em uma folha
A chave simplesmente removida.
38
rvore B
Remoo (Exemplo)
Caso 2: Remover a chave 58 (antes)
60 | | |
23 | 52 | |
75 | 97 | |
5 | 14 | |
25 |30 | |
54|56|58 |
64 |70 | |
85 |90 | |
111|205| |
39
rvore B
Remoo (Exemplo)
Caso 2: Remover a chave 58 (depois)
60 | | |
23 | 52 | |
75 | 97 | |
5 | 14 | |
25 |30 | |
54|56| |
64 |70 | |
85 |90 | |
111|205| |
40
rvore B
Remoo
Quando uma chave retirada de um n folha, o nmero de chaves restantes pode ser menor que (M-1)/2. Tratamentos:
Concatenao Redistribuio
41
rvore B
42
rvore B
43
rvore B
23 | 52 | |
75 | 97 | |
5 | 14 | |
25|30| |
54|56| |
64 |70 | |
85 |90 | |
111|205| |
44
rvore B
52 | | |
75 | 97 | |
5|14|23|30
54|56| |
64 |70 | |
85 |90 | |
111|205| |
45
rvore B
46
rvore B
52 | | |
75 | 97 | |
5|14|23|30
54|56| |
64 |70 | |
85 |90 | |
111|205| |
47
rvore B
5|14|23|30
54|56| |
64 |70 | |
85 |90 | |
111|205| |
48
rvore B
49
rvore B
23 | 37 | |
75 | 97 | |
5 | 14 |17 |
85 |90 | |
111|205| |
50
rvore B
23 | 52 | |
75 | 97 | |
5 | 14|17|
25 |37| |
54|56|58|
64 |70 | |
85 |90 | |
111|205| |
51
rvore B
52