edii14 [2012.1] Árvores b e b+

Post on 18-May-2015

2.106 Views

Category:

Education

2 Downloads

Preview:

Click to see full reader

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

top related