edii14 [2012.1] Árvores b e b+
TRANSCRIPT
Prof. Kenia Kodel
Organização de Arquivos Arquivos Sequenciais Desordenados Arquivos Sequenciais Ordenados Fisicamente Arquivos Sequenciais Ordenados por Link Arquivos Diretos Mantidos por Dicionário de Dados Arquivos Diretos Mantidos por Hashing Arquivos Sequenciais Indexados Recuperação de Chave Secundária – Multilista Recuperação de Chave Secundária – Arquivos Invertidos Recuperação de Chave Secundária – Árvores de Assinaturas Estruturas de Busca em Texto
Árvores B e B+
Extrato
UFS - DComp - Prof. Kenia Kodel 2
O que é árvore?
UFS - DComp - Prof. Kenia Kodel 3
árvore nó grau folha nível ramo raiz altura
Conhece os termos ao lado?
Árvore: Terminologia
UFS - DComp - Prof. Kenia Kodel 4
árvore binária
árvore binária de pesquisa
aplicações de árvores
vantagens
árvores balanceadas
Árvore...
O que você sabe sobre...
UFS - DComp - Prof. Kenia Kodel 5
As árvores B são árvores cujos critérios de organização (crescimento / armazenamento de dados) as conservam balanceadas.
Apresentam crescimento bottom up – das folhas para a raiz.
Árvore B
UFS - DComp - Prof. Kenia Kodel 6
Cada nó de uma árvore B tem mais de uma entrada e múltiplas descendências.
Em cada entrada é mantido registro de dados; apesar de nestes slides serem apresentadas apenas as chaves de busca.
astro caju
Árvore B
UFS - DComp - Prof. Kenia Kodel 7
O tamanho dos nós das árvores B é determinado pela capacidade de armazenamento da memória principal.
astro caju
Árvore B
UFS - DComp - Prof. Kenia Kodel 8
Para alguns estudiosos, as árvores B nasceram da paginação (blocos de nós) das árvores binárias de busca.
Árvore B
UFS - DComp - Prof. Kenia Kodel 9
Numa árvore B de ordem x:1.Todos os nós, exceto a raiz, devem
armazenar de x a 2x dados.2.A raiz deve armazenar de 1 a 2x
dados.3.Todo nó ou é folha ou tem k+1
descendentes, onde k é o número de dados mantidos no nó.
4.Todas as folhas devem apresentar-se num mesmo nível.
Árvore B
UFS - DComp - Prof. Kenia Kodel 10
Segue uma árvore B de ordem 1, entretanto, vale esclarecer que as árvores B, na prática, são usadas para armazenar grande quantidade de dados; apresentando, em geral, ordens elevadas.
Árvore B
cajá
astro caju
Numa árvore B de ordem x:
1. Todos os nós, exceto a raiz, devem armazenar de x a 2x dados.
2. A raiz deve armazenar de 1 a 2x dados.
3. Todo nó ou é folha ou tem k+1 descendentes, onde k é o número de dados mantidos no nó.
4. Todas as folhas devem apresentar-se num mesmo nível.
UFS - DComp - Prof. Kenia Kodel 11
cajá
astro caju
Importante observar que, sendo uma árvores B de ordem x, seus nós devem ser compostos por 2x entradas para dados e 2x+1 apontadores.
Árvore BNuma árvore B de ordem
x:1. Todos os nós, exceto
a raiz, devem armazenar de x a 2x dados.
2. A raiz deve armazenar de 1 a 2x dados.
3. Todo nó ou é folha ou tem k+1 descendentes, onde k é o número de dados mantidos no nó.
4. Todas as folhas devem apresentar-se num mesmo nível.
UFS - DComp - Prof. Kenia Kodel 12
Como efetuar consulta em
árvore B?
UFS - DComp - Prof. Kenia Kodel 13
gato
astro boca caju gota zebra
cajá loja
ConsultaEfetuar consultas nesta árvore B?
UFS - DComp - Prof. Kenia Kodel 14
Consultacajá gato
astro boca caju gota zebra
Efetuar consultas nesta
árvore B?
UFS - DComp - Prof. Kenia Kodel 15
Como efetuar inclusão em árvore B?
UFS - DComp - Prof. Kenia Kodel 16
Inclusãocajá gato
astro boca caju gota zebra
Como efetuar a inclusão do dado loja
na árvore dada?
UFS - DComp - Prof. Kenia Kodel 17
cajá
astro caju
Inclusão
Como efetuar a inclusão dos dados boca e loja na
árvore dada?
UFS - DComp - Prof. Kenia Kodel 18
caju
É possível estudar o processo de inserção de dados em árvores B através da construção, por exemplo, de uma árvore de ordem 1 composta por: caju1, cajá2, astro3, boca4, loja5, gato6, gota7, zebra8.
Inclusão
UFS - DComp - Prof. Kenia Kodel 19
caju1
2 cajá caju
Inserindo cajá:
Há o deslocamento do primeiro valor
para manter a estrutura ordenada.
Inclusão
UFS - DComp - Prof. Kenia Kodel 20
cajá caju2
3 cajá caju
Inserindo astro:
Observa-se o estouro da capacidade de armazenamento do nó implicando na necessidade de crescimento da estrutura.
astro
Inclusão
UFS - DComp - Prof. Kenia Kodel 21
cajá caju2
3 cajá
Inserindo astro:
astro caju
Houve estouro da capacidade de armazenamento do nó e consequente crescimento bottom up da estrutura.
Inclusão
UFS - DComp - Prof. Kenia Kodel 22
3 cajá
Inserindo boca e loja:
astro caju
4 e 5 cajá
astro boca caju loja
Inclusão
UFS - DComp - Prof. Kenia Kodel 23
Na inclusão de boca, compara-se esta com a raiz, sendo menor, segue-se pela esquerda. Compara-se a nova palavra com o valor encontrado: astro, sendo maior, segue pela direita, havendo espaço, faz-se a inclusão.
4 e 5 cajá
astro boca caju loja
Inclusão
UFS - DComp - Prof. Kenia Kodel 24
Inserindo gato:
6 cajá gato
astro boca caju loja
cajá
astro boca caju loja
gato
Inclusão
UFS - DComp - Prof. Kenia Kodel 25
Há o estou da capacidade de armazenamento do nó composto por caju||loja, então o elemento mediano gato é remetido ao nível ascendente – crescimento bottom up.
cajá
astro boca caju loja
gato
Inclusão
UFS - DComp - Prof. Kenia Kodel 26
Inserindo gota:
7 cajá gato
astro boca caju gota loja
6 cajá gato
astro boca caju loja
Inclusão
UFS - DComp - Prof. Kenia Kodel 27
Inserindo zebra:
7 cajá gato
astro boca caju gotazebr
a
6 cajá gato
astro boca caju gota loja
loja
Inclusão
UFS - DComp - Prof. Kenia Kodel 28
Inserindo zebra:
7 cajá gato
astro boca caju gotazebr
a
loja
7 cajá loja
astro boca caju gotazebr
a
gato
Inclusão
UFS - DComp - Prof. Kenia Kodel 29
gato
astro boca caju gota zebra
cajá loja
O estouro do nó gota||loja provoca o estouro do nó ascendente cajá||gato.
Inclusão
UFS - DComp - Prof. Kenia Kodel 30
Como efetuar exclusão em
árvore B?
UFS - DComp - Prof. Kenia Kodel 31
gato
astro boca caju gota zebra
cajá loja
Exclusão
Como efetuar a exclusão do dado
boca na árvore dada?
UFS - DComp - Prof. Kenia Kodel 32
gato
astro caju gota loja
cajá loja
Exclusão
Como efetuar a exclusão do dado
gato na árvore dada?
UFS - DComp - Prof. Kenia Kodel 33
O estudo da exclusão em árvores B
pode ser efetuado pelo
acompanhamento do processo de
execução desta operação; partindo,
por exemplo, da árvore antes
construída.
Exclusão
UFS - DComp - Prof. Kenia Kodel 34
gato
astro boca caju gota zebra
cajá loja
Importante ressaltar que, em toda e qualquer operação de manipulação de dados mantidos em árvore B, é indispensável preservar suas características.
Exclusão
UFS - DComp - Prof. Kenia Kodel 35
gato
astro boca caju gota zebra
cajá loja
Excluindo boca:
X
Este constitui um caso trivial, não provoca
nenhuma alteração na estrutura da árvore.
Exclusão
UFS - DComp - Prof. Kenia Kodel 36
gato
astro boca caju gota zebra
cajá loja
Excluindo cajá:
X
A simples remoção da palavra violaria a definição de árvore B. Então este é substituído pelo seu antecessor imediato – o nó mais a direita do ramo da esquerda.
ExclusãoNuma árvore B de ordem x:1. Todos os nós, exceto a raiz,
devem armazenar de x a 2x dados.
2. A raiz deve armazenar de 1 a 2x dados.
3. Todo nó ou é folha ou tem k+1 descendentes, onde k é o número de dados mantidos no nó.
4. Todas as folhas devem apresentar-se num mesmo nível.
UFS - DComp - Prof. Kenia Kodel 37
gato
astro boca caju gota zebra
cajá loja
Excluindo cajá:
X
Exclusão
Somente o antecessor imediato pode substituir
um nó excluído?
UFS - DComp - Prof. Kenia Kodel 38
gato
astro boca caju gota zebra
cajá loja
Excluindo caju:
X
Neste, o elemento não tem antecessor imediato, então faz-se uso do nó ascendente: cajá.
Exc
lusã
o
astro boca cajá
cajáX
astro boca cajá
boca
X
gato
astro boca cajá gota zebra
boca loja
X
Árvore final:
... ...
JÁ VISTO
UFS - DComp - Prof. Kenia Kodel 39
gato
astro caju gota zebra
cajá loja
Excluindo zebra:
X
Neste caso o elemento não tem antecessor imediato, então faz-se uso do nó ascendente, no caso: loja.
Exclusão
UFS - DComp - Prof. Kenia Kodel 40
gato
astro caju gota loja
cajá loja
Excluindo zebra:
X
Este elemento – loja – também não tem antecessor imediato,então faz-se uso do nó ascendente, no caso: gato.
Exclusão
UFS - DComp - Prof. Kenia Kodel 41
gato
astro caju gota loja
cajá gato
Excluindo zebra:
X
Este elemento – gato – não tem antecessor imediato nem nó ascendente, então há a combinação de nós.
Exclusão
UFS - DComp - Prof. Kenia Kodel 42
gato
astro caju gota loja
cajá gato
X
cajá gato
astro caju gota loja
Exclusão
UFS - DComp - Prof. Kenia Kodel 43
Quando aplicar árvores B?
UFS - DComp - Prof. Kenia Kodel 44
Esquematizar a construção de uma árvore B de ordem 2.
Exercício
UFS - DComp - Prof. Kenia Kodel 45
Propor e esquematizar 5 exclusões a serem efetuadas sobre a árvore obtida em resposta à questão anterior de forma a aplicar os 4 casos vistos no estudo desta operação.
Exercício
UFS - DComp - Prof. Kenia Kodel 46
Descrever consulta a ser efetuada sobre a árvore obtida em resposta à questão 17: (a) de item existente (b) de item inexistente.
Exercício
UFS - DComp - Prof. Kenia Kodel 47
Quando aplicar árvores B?
Exercício
UFS - DComp - Prof. Kenia Kodel 48
Consiste numa variante da árvore B
que, como sugere o nome, apresenta
vantagens em relação à estrutura
original.
Árvore B+
UFS - DComp - Prof. Kenia Kodel 49
Geralmente as árvores B+ apresentam
menor profundidade que as árvores B com
mesmos dados, pois nas B+ há aumento
do número de entradas mantidas por nó.
Árvore B+
UFS - DComp - Prof. Kenia Kodel 50
O tamanho dos nós é determinado pela
capacidade da memória principal. Nas B+ só
as chaves são mantidas nos nós não terminais,
assim tem-se árvores com maior número de
entradas por nó e menos profundidade, pois
as chaves constituem apenas um subconjunto
dos registros completos.
Árvore B+
UFS - DComp - Prof. Kenia Kodel 51
Nas árvores B+ os registros completos são
armazenados exclusivamente nas folhas.
Os nós não terminais atuam como índices
de acesso aos dados contidos nos nós
terminais.
Árvore B+
UFS - DComp - Prof. Kenia Kodel 52
Então, em resumo, uma árvore B+ é uma árvore B em que os registros de dados são mantidos nos nós folhas e os nós não terminais constituem somente chaves que servem como índices de acesso aos dados.
Árvore B+
Índices
Dados
UFS - DComp - Prof. Kenia Kodel 53
O processamento linear é garantido pelos links que mantêm os nós folhas dispostos em sequência.
...
Índices
Dados
Árvore B+
UFS - DComp - Prof. Kenia Kodel 54
Para manutenção da ordenação dos
dados de uma árvore B+ não é
necessário movimentação de nós.
É possível efetuar processamento
direto ou sequencial sobre os dados
mantidos em árvores B+.
Árvore B+
UFS - DComp - Prof. Kenia Kodel 55
...
Índices
Dados
Como efetuar inserção em árvores B+?
UFS - DComp - Prof. Kenia Kodel 56
Na inserção de dados em árvores B+ os registros são armazenados nos nós folhas e as chaves são incluídas no nós índices com um ponteiro, ou caminho, para o respectivo nó terminal.
Árvore B+
UFS - DComp - Prof. Kenia Kodel 57
É possível estudar o processo de
inserção de dados em árvores B+
através da construção, por exemplo,
de uma árvore composta pelas chaves:
801 – 502 – 983 – 904 – 605 – 656 – 707 –
558 – 649.
Árvore B+
UFS - DComp - Prof. Kenia Kodel 58
Considera-se uma árvores B+ de ordem 2.
1 Incluindo 80:
80
80...
Árvore B+
UFS - DComp - Prof. Kenia Kodel 59
2 Incluindo 50:80
50... 80...
3 e 4 Incluindo 98 e 90:80
50... 80... 90... 98...
Árvore B+
UFS - DComp - Prof. Kenia Kodel 60
A inserção em árvores B+ segue os processo trivial de inclusão em árvore de pesquisa: dados menores ou iguais ao nó pai são mantidos no ramo esquerdo e os maiores, à direita deste.
Árvore B+
UFS - DComp - Prof. Kenia Kodel 61
5 Incluindo 60:80
50... 80... 90... 98...
60
Esta implica em estouro do nó 50|80 e provoca os encaminhamentos da chave mediana para o nó ascendente e do 80 para próximo espaço.
Árvore B+
UFS - DComp - Prof. Kenia Kodel 62
5 Incluindo 60:
60 80
50... 60... 80... 90... 98...
80
50... 80... 90... 98...
60
Árvore B+
UFS - DComp - Prof. Kenia Kodel 63
6 Incluindo 65:
60 80
50... 60... 65... 80... 90... 98...
60 80
50... 60... 80... 90... 98...
Árvore B+
UFS - DComp - Prof. Kenia Kodel 64
7 Incluindo 70:
60 70 80
50... 60... 65... 70... 80... 90... 98...
60 80
50... 60... 65... 80... 90... 98...
70
UFS - DComp - Prof. Kenia Kodel 65
8 Incluindo 55:60 70 80
50... 60... 65... 70... 80... 90... 98...
55
55 60 70 80
50... 55... 65... 70... 75... 80... 90... 98...60...
Árvore B+
UFS - DComp - Prof. Kenia Kodel 66
9 Incluindo 64:55 60 70 80
50... 55... 65... 70... 75... 80... 90... 98...60...
65
55 60 70 80
50... 55... 70... 75... 80... 90... 98...60... 64... 65...
64
Árvore B+
UFS - DComp - Prof. Kenia Kodel 67
9 Incluindo 64:
50... 55... 70... 75... 80... 90... 98...60... 64... 65...
65
55 60 70 80
50... 55... 70... 75... 80... 90... 98...60... 64... 65...
55 60 70 80
65
Árvore B+
UFS - DComp - Prof. Kenia Kodel 68
A inserção de 64 provoca o estouro do nó 65||70 e o encaminhamento de 65 ao nó ascendente que, por sua vez, implica no estouro do nó 55||60||70||80 e consequente encaminhamento de 65 ao nível ascendente, com crescimento da estrutura.
Árvore B+
UFS - DComp - Prof. Kenia Kodel 69
...
Índices
Dados
Como efetuar remoção em árvores B+?
UFS - DComp - Prof. Kenia Kodel 70
Em função da forma de organização das
árvores B+, nem toda exclusão provoca
alterações nas duas áreas de composição
da estrutura de dados e de índices.
Árvore B+
UFS - DComp - Prof. Kenia Kodel 71
A remoção de nós da área de
dados é equivalente à remoção em
estruturas lineares.
Já a exclusão na área de índices é
similar a que ocorre em árvores B.
Árvore B+
UFS - DComp - Prof. Kenia Kodel 72
50... 55... 70... 75... 80... 90... 98...60... 64... 65...
55 60 70 80
65
Discutir remoção das chaves 55 e 60 da estrutura dada abaixo:
Árvore B+
UFS - DComp - Prof. Kenia Kodel 73
Esquematize a inclusão dos nós 51, 76, 77, 78, 200, 300 e 150 na estrutura dada a seguir:
50... 55... 70... 75... 80... 90... 98...60... 64... 65...
55 60 70 80
65
Exercício
UFS - DComp - Prof. Kenia Kodel 74
Esquematize a exclusão dos nós 55,
60, 65 e 78 da estrutura obtida em
resposta à questão anterior.
Exercício
UFS - DComp - Prof. Kenia Kodel 75
Descreva a operação de consulta em árvore B+.
Exercício
UFS - DComp - Prof. Kenia Kodel 76
Pesquise definição, operações e
aplicação de estrutura tipo árvore
distinta das estudadas até então.
Exercício
UFS - DComp - Prof. Kenia Kodel 77
Descreva os passos gerais da operação de
consulta em árvores digitais de pesquisa.
Exercício
UFS - DComp - Prof. Kenia Kodel 78
Complementar Estudos...
File Organization and ProcessingAllan L Tharp
Capítulo 9B-Trees and DerivativesB Trees & B+ Trees
UFS - DComp - Prof. Kenia Kodel 79
80UFS - DCOMP - Prof. Kenia Kodel
Classificação Externa
Próximos passos...
UFS - DCOMP - Prof. Kenia Kodel
80UFS - DComp - Prof. Kenia Kodel 80