edii14 [2012.1] Árvores b e b+

80
Prof. Kenia Kodel

Upload: kianeledok

Post on 18-May-2015

2.106 views

Category:

Education


2 download

TRANSCRIPT

Page 1: EDII14 [2012.1]   Árvores B e B+

Prof. Kenia Kodel

Page 2: EDII14 [2012.1]   Árvores B e B+

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

Page 3: EDII14 [2012.1]   Árvores B e B+

O que é árvore?

UFS - DComp - Prof. Kenia Kodel 3

Page 4: EDII14 [2012.1]   Árvores B e B+

árvore nó grau folha nível ramo raiz altura

Conhece os termos ao lado?

Árvore: Terminologia

UFS - DComp - Prof. Kenia Kodel 4

Page 5: EDII14 [2012.1]   Árvores B e B+

á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

Page 6: EDII14 [2012.1]   Árvores B e B+

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

Page 7: EDII14 [2012.1]   Árvores B e B+

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

Page 8: EDII14 [2012.1]   Árvores B e B+

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

Page 9: EDII14 [2012.1]   Árvores B e B+

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

Page 10: EDII14 [2012.1]   Árvores B e B+

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

Page 11: EDII14 [2012.1]   Árvores B e B+

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

Page 12: EDII14 [2012.1]   Árvores B e B+

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

Page 13: EDII14 [2012.1]   Árvores B e B+

Como efetuar consulta em

árvore B?

UFS - DComp - Prof. Kenia Kodel 13

Page 14: EDII14 [2012.1]   Árvores B e B+

gato

astro boca caju gota zebra

cajá loja

ConsultaEfetuar consultas nesta árvore B?

UFS - DComp - Prof. Kenia Kodel 14

Page 15: EDII14 [2012.1]   Árvores B e B+

Consultacajá gato

astro boca caju gota zebra

Efetuar consultas nesta

árvore B?

UFS - DComp - Prof. Kenia Kodel 15

Page 16: EDII14 [2012.1]   Árvores B e B+

Como efetuar inclusão em árvore B?

UFS - DComp - Prof. Kenia Kodel 16

Page 17: EDII14 [2012.1]   Árvores B e B+

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

Page 18: EDII14 [2012.1]   Árvores B e B+

cajá

astro caju

Inclusão

Como efetuar a inclusão dos dados boca e loja na

árvore dada?

UFS - DComp - Prof. Kenia Kodel 18

Page 19: EDII14 [2012.1]   Árvores B e B+

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

Page 20: EDII14 [2012.1]   Árvores B e B+

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

Page 21: EDII14 [2012.1]   Árvores B e B+

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

Page 22: EDII14 [2012.1]   Árvores B e B+

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

Page 23: EDII14 [2012.1]   Árvores B e B+

3 cajá

Inserindo boca e loja:

astro caju

4 e 5 cajá

astro boca caju loja

Inclusão

UFS - DComp - Prof. Kenia Kodel 23

Page 24: EDII14 [2012.1]   Árvores B e B+

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

Page 25: EDII14 [2012.1]   Árvores B e B+

Inserindo gato:

6 cajá gato

astro boca caju loja

cajá

astro boca caju loja

gato

Inclusão

UFS - DComp - Prof. Kenia Kodel 25

Page 26: EDII14 [2012.1]   Árvores B e B+

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

Page 27: EDII14 [2012.1]   Árvores B e B+

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

Page 28: EDII14 [2012.1]   Árvores B e B+

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

Page 29: EDII14 [2012.1]   Árvores B e B+

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

Page 30: EDII14 [2012.1]   Árvores B e B+

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

Page 31: EDII14 [2012.1]   Árvores B e B+

Como efetuar exclusão em

árvore B?

UFS - DComp - Prof. Kenia Kodel 31

Page 32: EDII14 [2012.1]   Árvores B e B+

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

Page 33: EDII14 [2012.1]   Árvores B e B+

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

Page 34: EDII14 [2012.1]   Árvores B e B+

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

Page 35: EDII14 [2012.1]   Árvores B e B+

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

Page 36: EDII14 [2012.1]   Árvores B e B+

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

Page 37: EDII14 [2012.1]   Árvores B e B+

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

Page 38: EDII14 [2012.1]   Árvores B e B+

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

Page 39: EDII14 [2012.1]   Árvores B e B+

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

Page 40: EDII14 [2012.1]   Árvores B e B+

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

Page 41: EDII14 [2012.1]   Árvores B e B+

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

Page 42: EDII14 [2012.1]   Árvores B e B+

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

Page 43: EDII14 [2012.1]   Árvores B e B+

gato

astro caju gota loja

cajá gato

X

cajá gato

astro caju gota loja

Exclusão

UFS - DComp - Prof. Kenia Kodel 43

Page 44: EDII14 [2012.1]   Árvores B e B+

Quando aplicar árvores B?

UFS - DComp - Prof. Kenia Kodel 44

Page 45: EDII14 [2012.1]   Árvores B e B+

Esquematizar a construção de uma árvore B de ordem 2.

Exercício

UFS - DComp - Prof. Kenia Kodel 45

Page 46: EDII14 [2012.1]   Árvores B e B+

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

Page 47: EDII14 [2012.1]   Árvores B e B+

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

Page 48: EDII14 [2012.1]   Árvores B e B+

Quando aplicar árvores B?

Exercício

UFS - DComp - Prof. Kenia Kodel 48

Page 49: EDII14 [2012.1]   Árvores B e B+

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

Page 50: EDII14 [2012.1]   Árvores B e B+

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

Page 51: EDII14 [2012.1]   Árvores B e B+

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

Page 52: EDII14 [2012.1]   Árvores B e B+

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

Page 53: EDII14 [2012.1]   Árvores B e B+

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

Page 54: EDII14 [2012.1]   Árvores B e B+

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

Page 55: EDII14 [2012.1]   Árvores B e B+

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

Page 56: EDII14 [2012.1]   Árvores B e B+

...

Índices

Dados

Como efetuar inserção em árvores B+?

UFS - DComp - Prof. Kenia Kodel 56

Page 57: EDII14 [2012.1]   Árvores B e B+

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

Page 58: EDII14 [2012.1]   Árvores B e B+

É 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

Page 59: EDII14 [2012.1]   Árvores B e B+

Considera-se uma árvores B+ de ordem 2.

1 Incluindo 80:

80

80...

Árvore B+

UFS - DComp - Prof. Kenia Kodel 59

Page 60: EDII14 [2012.1]   Árvores B e B+

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

Page 61: EDII14 [2012.1]   Árvores B e B+

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

Page 62: EDII14 [2012.1]   Árvores B e B+

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

Page 63: EDII14 [2012.1]   Árvores B e B+

5 Incluindo 60:

60 80

50... 60... 80... 90... 98...

80

50... 80... 90... 98...

60

Árvore B+

UFS - DComp - Prof. Kenia Kodel 63

Page 64: EDII14 [2012.1]   Árvores B e B+

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

Page 65: EDII14 [2012.1]   Árvores B e B+

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

Page 66: EDII14 [2012.1]   Árvores B e B+

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

Page 67: EDII14 [2012.1]   Árvores B e B+

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

Page 68: EDII14 [2012.1]   Árvores B e B+

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

Page 69: EDII14 [2012.1]   Árvores B e B+

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

Page 70: EDII14 [2012.1]   Árvores B e B+

...

Índices

Dados

Como efetuar remoção em árvores B+?

UFS - DComp - Prof. Kenia Kodel 70

Page 71: EDII14 [2012.1]   Árvores B e B+

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

Page 72: EDII14 [2012.1]   Árvores B e B+

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

Page 73: EDII14 [2012.1]   Árvores B e B+

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

Page 74: EDII14 [2012.1]   Árvores B e B+

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

Page 75: EDII14 [2012.1]   Árvores B e B+

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

Page 76: EDII14 [2012.1]   Árvores B e B+

Descreva a operação de consulta em árvore B+.

Exercício

UFS - DComp - Prof. Kenia Kodel 76

Page 77: EDII14 [2012.1]   Árvores B e B+

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

Page 78: EDII14 [2012.1]   Árvores B e B+

Descreva os passos gerais da operação de

consulta em árvores digitais de pesquisa.

Exercício

UFS - DComp - Prof. Kenia Kodel 78

Page 79: EDII14 [2012.1]   Árvores B e B+

Complementar Estudos...

File Organization and ProcessingAllan L Tharp

Capítulo 9B-Trees and DerivativesB Trees & B+ Trees

UFS - DComp - Prof. Kenia Kodel 79

Page 80: EDII14 [2012.1]   Árvores B e B+

80UFS - DCOMP - Prof. Kenia Kodel

Classificação Externa

Próximos passos...

UFS - DCOMP - Prof. Kenia Kodel

80UFS - DComp - Prof. Kenia Kodel 80