Você está na página 1de 20

rvore B

Fabiano C. Botelho
fabiano@decom.cefetmg.br http://www.dcc.ufmg.br/~fbotelho

CEFET-MG/DECOM

AEDS II

Conceitos

Denio
Todos os registros so armazenados no ltimo nvel (pginas folhas). Os nveis acima do ltimo nvel constituem um ndice organizado como uma rvore B (s armazenam as chaves).
d d d d d d d d d d d

ndice
d d d d d d d

rvore B

Acesso Seqencial

c E E

c E

Registros

CEFET-MG/DECOM

AEDS II

Conceitos

Vantagens
Facilitam acesso seqencial Facilitam acesso concorrente
d d d d d d d d d d d

ndice
d d d d d d d

rvore B

Acesso Seqencial

c E E

c E

Registros

CEFET-MG/DECOM

AEDS II

Conceitos

Exemplo e Processo de Pesquisa


O processo de pesquisa inicia-se na raiz da rvore e continua at uma pgina folha. A pesquisa no pra se a chave procurada for encontrada em uma pgina do ndice: Registros residem nas folhas Os valores encontrados ao longo do caminho so irrelevantes desde que eles conduzam pgina folha correta.
1 2 0 222 222 22 222 ( ) ( ) hhh hh

45
hhhh

1 0  

hhhh 1 h

ndice

6 29

 

 

 0 

60 75

145

9 18 19 22

29 33

50 52

60 65 70

75 80

CEFET-MG/DECOM

AEDS II

Conceitos

Armazenando mais registros em pginas folhas


No h necessidade do uso de apontadores nas pginas folha possvel utilizar este espao para armazenar uma quantidade maior de registros em cada pgina folha. Dois valores de m so utilizados (um para o ndice e outro para pginas folha) Isto no cria nenhum problema para os algoritmos de insero, pois as metades de uma pgina que est sendo particionada permanecem no mesmo nvel da pgina original antes da partio (algo semelhante acontece com a retirada de registros)

CEFET-MG/DECOM

AEDS II

Conceitos

Estrutura de Dados
public class ArvoreBEstrela { private static abstract class Pagina { int n; Item chaves [ ] ; } private static class PaginaInt extends Pagina { Pagina p [ ] ; public PaginaInt ( int mm) { this .n = 0; this .chaves = new Item [ mm ] ; this .p = new Pagina[ mm+1]; } } private static class PaginaExt extends Pagina { Object registros [ ] ; public PaginaExt ( int mm2) { this .n = 0; this .chaves = new Item [ mm2]; this . registros = new Object [ mm2]; } } private Pagina raiz ; private int mm , mm2; }

CEFET-MG/DECOM

AEDS II

Conceitos

Mtodo de Pesquisa
private Object pesquisa (Item chave, Pagina ap) { i f (ap == null ) return null ; / / Registro no econtrado else { i f ( this . eInterna (ap) ) { int i = 0; PaginaInt aux = (PaginaInt)ap; while ( ( i < aux.n1) && (chave.compara (aux.chaves[ i ] ) > 0)) i ++; i f (chave.compara (aux.chaves[ i ] ) < 0) return pesquisa (chave, aux.p[ i ] ) ; else return pesquisa (chave, aux.p[ i +1]); } else { int i = 0; PaginaExt aux = (PaginaExt)ap; while ( ( i < aux.n1) && (chave.compara (aux.chaves[ i ] ) > 0)) i ++; i f (chave.compara (aux.chaves[ i ] ) == 0) return aux. registros [ i ] ; return null ; / / Registro no econtrado } } }

CEFET-MG/DECOM

AEDS II

Conceitos

Mtodo de Insero
A operao de Insero de um registro em uma rvore B essencialmente igual insero de um registro em uma rvore B A nica diferena que, quando uma folha dividida em duas, o algoritmo promove uma cpia da chave que pertence ao registro do meio para a pgina pai no nvel anterior, retendo o registro do meio na pgina folha da direita.

Exerccio: Implementar esta operao

CEFET-MG/DECOM

AEDS II

Conceitos

Mtodo de Retirada
A operao de Retirada em uma rvore B relativamente mais simples do que em uma rvore B O registro a ser retirado reside sempre em uma pgina folha, o que torna sua remoo simples, no havendo necessidade de utilizao do mtodo para localizar a chave antecessora Desde que a pgina folha que pelo menos com metade dos registros, as pginas do ndice no precisam ser modicadas, mesmo se uma cpia da chave que pertence ao registro a ser retirado esteja no ndice

Exerccio: Implementar esta operao

CEFET-MG/DECOM

AEDS II

Conceitos

Exemplo de Retirada
1 2 0 222 222 22 222 ( ) ( ) hhhh hhhh h 1 h  0   

45
hhhh

1  0

( )

6 29 9 18

60 75

 

14

29 33

50 52

65 70

75 80

(a) Retirada dos registros 5, 19, 22, 60 da rvore da Figura da Transparncia 4


1 @  0 @@@@  @@@  @@  @@@@  (

29 45 60 75 ) 50 52

h hhhh hhhh hhh hh

1 4 6 18

29 33

65 70

75 80

(b) Retirada do registro 9 em (a): a estrutura do ndice modicada

CEFET-MG/DECOM

AEDS II

Conceitos

10

Acesso Concorrente em rvores B


Acesso simultneo a banco de dados por mais de um usurio. Concorrncia aumenta a utilizao e melhora o tempo de resposta do sistema. O uso de rvores B nesses sistemas deve permitir o processamento simultneo de vrias solicitaes diferentes. Necessidade de criar mecanismos chamados protocolos para garantir a integridade tanto dos dados quanto da estrutura.

CEFET-MG/DECOM

AEDS II

Conceitos

11

Pginas Seguras Para Acesso Concorrente


Insero: pgina segura se o nmero de chaves igual a 2m Remoo: pgina segura se o nmero de chaves maior que m Os algoritmos para acesso concorrente fazem uso dessa propriedade para aumentar o nvel de concorrncia.

CEFET-MG/DECOM

AEDS II

Conceitos

12

Protocolos de Travamento
Quando uma pgina lida, a operao de recuperao a trava, assim, outros processos, no podem interferir com a pgina. A pesquisa continua em direo ao nvel seguinte e a trava liberada para que outros processos possam ler a pgina. Processo leitor executa uma operao de recuperao Processo modicador executa uma operao de insero ou retirada. Tipos de Travamento: Travamento para leitura permite um ou mais leitores acessarem os dados, mas no permite insero ou retirada. Travamento exclusivo nenhum outro processo pode operar na pgina e permite qualquer tipo de operao na pgina.

CEFET-MG/DECOM

AEDS II

Conceitos

13

Consideraes Prticas
Simples, fcil manuteno, eciente e verstil. Permite acesso seqencial eciente. Custo para recuperar, inserir e retirar registros do arquivo logaritmico. Espao utilizado , no mnimo 50% do espao reservado para o arquivo. Emprego onde o acesso concorrente ao banco de dados necessrio, vivel e relativamente simples de ser implementado. Insero e retirada de registros sempre deixam a rvore balanceada. Uma rvore B de ordem m com N registros contm no mximo cerca de logm+1 N pginas.

CEFET-MG/DECOM

AEDS II

Conceitos

14

Consideraes Prticas
Limites para a altura mxima e mnima de uma rvore B de ordem m com N registros: log2m+1(N + 1) h 1 + logm+1 N +1 2

Custo para processar uma operao de recuperao de um registro cresce com o logaritmo base m do tamanho do arquivo. Altura esperada: no conhecida analiticamente. H uma conjectura proposta a partir do clculo analtico do nmero esperado de pginas para os quatro primeiros nveis (das folha em direo raiz) de uma rvore 2-3 (rvore B de ordem m = 1). Conjetura: a altura esperada de uma rvore 2-3 randmica com N chaves h(N ) log7/3(N + 1)
CEFET-MG/DECOM AEDS II

Conceitos

15

Outras Medidas de Complexidade


A utilizao de memria cerca de ln 2: Pginas ocupam 69% da rea reservada aps N inseres randmicas em uma rvore B inicialmente vazia. No momento da insero, a operao mais cara a partio da pgina quando ela passa a ter mais do que 2m chaves. Envolve: Criao de nova pgina, rearranjo das chaves e insero da chave do meio na pgina pai localizada no nvel acima. Pr{j parties}: probabilidade de que j parties ocorram durante a N sima insero randmica. rvore 2-3: Pr{0 parties} = 4/7 e Pr{1 ou mais} = 3/7 rvore B de ordem m: Pr{0 parties} = 1 1/(2 ln 2)m + O(m2) e Pr{1 ou mais} = 1/(2 ln 2)m + O(m2) rvore B de ordem m = 70: 99% das vezes nada acontece em termos de parties durante uma insero.

CEFET-MG/DECOM

AEDS II

Conceitos

16

Acesso Concorrente (Continuao)


Foi proposta uma tcnica de aplicar um travamento na pgina segura mais profunda (Psmp) no caminho de insero. Uma pgina segura a mais profunda se no existir outra pgina segura abaixo dela. J que o travamento da pgina impede o acesso de outros processos, interessante saber qual a probabilidade de que a pgina segura mais profunda esteja no primeiro nvel: rvore 2-3: Pr{Psmp esteja no primeiro nvel} = 4/7 e Pr{Psmp esteja acima do primeiro nvel} = 3/7 rvore B de ordem m: Pr{Psmp esteja no primeiro nvel} = 1 1/(2 ln 2)m + O(m2) e Pr{Psmp esteja acima do primeiro nvel} = 1/(2 ln 2)m + O(m2)

CEFET-MG/DECOM

AEDS II

Conceitos

17

Acesso Concorrente (Continuao)


Novamente, em rvores B de ordem m = 70: 99% das vezes a Psmp est em uma folha. (Permite alto grau de concorrncia para processos modicadores.) Solues muito complicadas para permitir concorrncia de operaes em rvores B no trazem grandes benefcios. Na maioria das vezes, o travamento ocorrer em pginas folha. (Permite alto grau de concorrncia mesmo para os protocolos mais simples.)

CEFET-MG/DECOM

AEDS II

Conceitos

18

Tcnicas de Transbordamento
Assuma que um registro tenha de ser inserido em uma pgina cheia, com 2m registros. Em vez de particion-la, olhamos primeiro para a pgina irm direita. Se a pgina irm possui menos do que 2m registros, um simples rearranjo de chaves torna a partio desnecessria. Se a pgina direita tambm estiver cheia ou no existir, olhamos para a pgina irm esquerda. Se ambas estiverem cheias, ento a partio ter de ser realizada. Efeito da modicao: produzir uma rvore com melhor utilizao de memria e uma altura esperada menor. Produz uma utilizao de memria de cerca de 83% para uma rvore B randmica.
CEFET-MG/DECOM AEDS II

Conceitos

19

Inuncia do Sistema de Paginao


O nmero de nveis de uma rvore B muito pequeno (trs ou quatro) se comparado com o nmero de molduras de pginas. Assim, o sistema de paginao garante que a pgina raiz esteja sempre na memria principal (se for adotada a poltica LRU). O esquema LRU faz tambm com que as pginas a serem particionadas em uma insero estejam automaticamente disponveis na memria principal. A escolha do tamanho adequado da ordem m da rvore B geralmente feita levando em conta as caractersticas de cada computador. O tamanho ideal da pgina da rvore corresponde ao tamanho da pgina do sistema, e a transferncia de dados entre as memrias secundria e principal realizada pelo sistema operacional. Estes tamanhos variam entre 512 bytes e 4.096 bytes, em mltiplos de 512 bytes.
CEFET-MG/DECOM AEDS II

Conceitos

20

Você também pode gostar