Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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
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.
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
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
29 45 60 75 ) 50 52
1 4 6 18
29 33
65 70
75 80
CEFET-MG/DECOM
AEDS II
Conceitos
10
CEFET-MG/DECOM
AEDS II
Conceitos
11
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
CEFET-MG/DECOM
AEDS II
Conceitos
16
CEFET-MG/DECOM
AEDS II
Conceitos
17
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
Conceitos
20