A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

B-tree Árvores Equilibradas Sumário Splay B-tree Vermelho-Preto AA e BB Multidimensionais quaternárias k-d Pesquisa Lexicográfica tries multivia tries.

Apresentações semelhantes


Apresentação em tema: "B-tree Árvores Equilibradas Sumário Splay B-tree Vermelho-Preto AA e BB Multidimensionais quaternárias k-d Pesquisa Lexicográfica tries multivia tries."— Transcrição da apresentação:

1 B-tree Árvores Equilibradas Sumário Splay B-tree Vermelho-Preto AA e BB Multidimensionais quaternárias k-d Pesquisa Lexicográfica tries multivia tries binárias PATRICIA

2 B-tree Árvores B  Motivação: pesquisa em disco Tempo de acesso a disco determinante nas operações  Com disco de 10 ms de tempo de acesso: 100 acessos por segundo em máquina de 25 MIPS, 1 acesso custa tanto como 250 000 instruções... e velocidade de cálculo tem aumentado mais que velocidade de disco  Podemos gastar muito cálculo para evitar 1 acesso a disco Exemplo: registo dos cidadãos portugueses guardado em árvore binária  10 milhões de registos, chave de 32 bytes e registo de 256 bytes  1 de 20 utilizadores: num segundo pode fazer 5 acessos ou 1 milhão de instruções  Pior caso: acesso em tempo linear, 10 milhões de acessos a disco  Médio: 1.38 logN acessos, 32 acessos a disco ou 6 segundos  Nó a profundidade tripla:  100 acessos a disco ou 16 segundos

3 B-tree Árvore B  Árvore equilibrada multivia Objectivo: pesquisa externa, minimizar acessos a disco Utilização: construir índices auxiliares em Bases de Dados  nos nós existem referências a blocos do disco  escolha da ordem da árvore depende do número de registos do índice que cabem num único bloco (unidade básica de acesso a disco) Uma árvore-B de ordem M é uma árvore de M vias em que 1. Os dados estão guardados nas folhas 2. Os nós internos guardam até M-1 chaves; a chave i representa a menor chave na subárvore i+1 3. A raiz é uma folha ou tem entre 2 e M filhos 4. Todos os nós internos excepto a raiz têm entre  M/2  e M filhos não vazios. 5. Todas as folhas estão à mesma profundidade e têm entre  L/2  e L filhos Uma árvore-B de ordem M é uma árvore de M vias em que 1. Os dados estão guardados nas folhas 2. Os nós internos guardam até M-1 chaves; a chave i representa a menor chave na subárvore i+1 3. A raiz é uma folha ou tem entre 2 e M filhos 4. Todos os nós internos excepto a raiz têm entre  M/2  e M filhos não vazios. 5. Todas as folhas estão à mesma profundidade e têm entre  L/2  e L filhos

4 B-tree Árvore B para exemplo do ficheiro  Cada nó deve caber em 1 bloco de disco Assumir bloco de disco de 8 192 bytes Em cada nó interior:  M-1 chaves de 32 bytes e M ramos com 4 bytes (endereço de novo bloco)  32 ( M -1) + 4 M  8192  M = 228, M/2 = 114 Nos nós folha:  256 bytes para cada registo  bloco comporta 32 registos  L = 32 No ficheiro de 10 000 000 de registos  no máximo 10 000 000 /16 = 625 000 folhas  no máximo  log 114 625 000  = 3 níveis acima das folhas

5 B-tree 214872 1215253141598491 1,4,8,1112,1315,18,1921,2425,2631,3841,43,4648,49,5059,6872,7884,8891,92,99 até 3 chaves em cada nó interno até ponteiros em cada nó interno (mínimo é 2) L = 4 (mas poderia ter outro valor) Árvore-B de ordem 4 M= 4

6 B-tree 22 : - 16 : -41 : 58 8,11,1216, 1722,23,3141, 5258,59,61 22 : - 16 : -41 : 58 8,11,1216,17,1822,23,3141, 5258,59,61 1 22 : - 11 : 1641 : 58 11, 1216, 17,1822,23,3141, 5258,59,61 19 18 1, 8 22 : - 11 : 1641 : 58 11, 1216, 1722,23,3141, 5258,59,611, 818, 19 Inserção em Árvore-B 2-3

7 B-tree 16 : 22 11 : -41 : 58 11, 1216, 1722,23,3141, 5258,59,611, 818, 19 18 : - 28 16 : 22 11 : -41 : 58 11, 1216, 1722, 2341, 5258,59,611, 818, 19 18 : - 28, 31 Inserção em Árvore-B 2-3

8 B-tree 16 : 22 11 : -58 : - 11, 1216, 1722, 2341, 5258,59,611, 818, 19 18 : - 28, 31 28 : - 22 : - 11 : -58 : - 11, 1216, 1722, 2341, 5258,59,611, 818, 19 18 : - 28, 31 28 : - 16 : -41 : - Árvore-B cresce para a raiz Inserção em Árvore-B 2-3

9 B-tree Apagamento em Árvore B  Pesquisa da chave a apagar e apagamento na folha respectiva Se a folha fica com número de chaves não abaixo do mínimo: terminar Se folha fica com número de chaves abaixo do mínimo: reparar árvore  Se a folha do lado tiver número de chaves acima do mínimo: pedir chave emprestada  Se a folha do lado não tiver número de chaves acima do mínimo: fundir folhas e propagar Havendo fusão de nós, a reparação prossegue nos níveis superiores da árvore Se a fusão de nós resulta em a raiz ter apenas 1 filho: raiz passa para o filho e árvore desce  Árvore-B cresce e diminui na raiz altura da árvore aumenta quando se tem de partir a raiz (e criar novo nó raiz) altura da árvore diminui quando a raiz tem 2 filhos e estes se fundem

10 B-tree a b f g f a bg k f a b dg h k m f j a b dg hk m f j a b d eg h ik m r s a, b, f, gkd, h, m je, s, i, r Árvore-B para pesquisa em memória

11 B-tree f j r a b d eg h ik m x s x c f j r a bg h ik l m n c, l, n, t, u s t u x d e Inserção em árvore-B 3-5

12 B-tree c f a bg h ik l p s t u x d en p m r j Nesta representação: chaves estão organizadas na árvore à maneira das árvores de pesquisa nós internos e folhas são da mesma natureza Apropriado para estruturas em memória central Inserção em árvore-B 3-5


Carregar ppt "B-tree Árvores Equilibradas Sumário Splay B-tree Vermelho-Preto AA e BB Multidimensionais quaternárias k-d Pesquisa Lexicográfica tries multivia tries."

Apresentações semelhantes


Anúncios Google