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

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

Árvores B Motivação: pesquisa em disco

Apresentações semelhantes


Apresentação em tema: "Árvores B Motivação: pesquisa em disco"— Transcrição da apresentação:

1 Á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 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 N=10M de registos, chave de 32 bytes e total de registo de 256 bytes (BD 2.5GB) Blocos de 8KB  blocos Pior caso: acesso em tempo linear, acessos a disco (52 min) (ou 10M !) Médio: 1.38 log N acessos, 32 acessos a disco ou 0.3s Nó a profundidade tripla: 100 acessos a disco ou 1s

2 Á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 registos de dados

3 Árvore B para exemplo do ficheiro
Cada nó deve caber em 1 bloco de disco Assumir bloco de disco de 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 de registos no máximo /16 = folhas no máximo  log  = 3 níveis acima das folhas

4 Árvore-B de ordem 4 M= 4 até 3 chaves em cada nó interno
21 48 72 12 15 25 31 41 59 84 91 1,4,8,11 12,13 15,18,19 21,24 25,26 31,38 41,43,46 48,49,50 59,68 72,78 84,88 91,92,99 até 3 chaves em cada nó interno até 4 ponteiros em cada nó interno (mínimo é 2) L = 4 (mas poderia ter outro valor)

5 Inserção em Árvore-B 2-3 1 18 19 2-3 (número de filhos) Mínimo: 2
22 : - 16 : - 41 : 58 8,11,12 16, 17 22,23,31 41, 52 58,59,61 22 : - 16 : - 41 : 58 8,11,12 16,17,18 22,23,31 41, 52 58,59,61 1 18 22 : - 11 : 16 41 : 58 11, 12 16, 17,18 22,23,31 41, 52 58,59,61 1, 8 19 2-3 (número de filhos) Mínimo: 2 Máximo: 3

6 Inserção em Árvore-B 2-3 28 22 : - 11 : 16 41 : 58 16 : 22 11 : -
11, 12 16, 17 22,23,31 41, 52 58,59,61 1, 8 18, 19 16 : 22 11 : - 41 : 58 11, 12 16, 17 22,23,31 41, 52 58,59,61 1, 8 18, 19 18 : - 28

7 Inserção em Árvore-B 2-3 16 : 22 11 : - 41 : 58 18 : - 16 : 22 11 : -
11, 12 16, 17 22, 23 41, 52 58,59,61 1, 8 18, 19 18 : - 28, 31 16 : 22 11 : - 58 : - 11, 12 16, 17 22, 23 41, 52 58,59,61 1, 8 18, 19 18 : - 28, 31 28 : -

8 Inserção em Árvore-B 2-3 (repetida) Árvore-B cresce para a raiz
16 : 22 11 : - 58 : - 11, 12 16, 17 22, 23 41, 52 58,59,61 1, 8 18, 19 18 : - 28, 31 28 : - (repetida) 22 : - 11 : - 58 : - 11, 12 16, 17 22, 23 41, 52 58,59,61 1, 8 18, 19 18 : - 28, 31 28 : - 16 : - 41 : - Árvore-B cresce para a raiz

9 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 a 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 “do lado” significa com o mesmo pai, para não complicar excessivamente a manutenção dos nós interiores 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 altura da árvore diminui Á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 Árvore-B para pesquisa em memória
Árvore de ordem 5 ou B 3-5 a, b, f, g k d, h, m a b f g f a b g k f a b d g h k m j e, s, i, r f j a b d g h k m f j a b d e g h i k m r s

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

12 Inserção em árvore-B 3-5 c f a b g h i k l s t u x d e n 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

13 Exercício M= 4 a) Inserir a chave 40 13 7 23 31 43 2 3 5 13 17 19 31
37 41 43 47 7 11 23 29

14 Exercício (cont.) M= 4 13 7 23 31 43 2 3 5 13 17 19 31 37 43 47 7 11 23 29 40 41

15 Exercício (cont.) M= 4 b) Apagar a chave 7 13 40 7 23 31 43 2 3 5 13
17 19 31 37 43 47 7 11 23 29 40 41

16 Exercício (cont.) M= 4 b) Apagar a chave 11 13 40 5 23 31 43 2 3 13 17
19 31 37 43 47 5 11 23 29 40 41

17 Exercício (cont.) M= 4 13 40 23 31 43 2 3 5 13 17 19 31 37 43 47 23 29 40 41

18 Exercício (fim) M= 4 23 40 13 31 43 2 3 5 13 17 19 31 37 43 47 23 29 40 41


Carregar ppt "Árvores B Motivação: pesquisa em disco"

Apresentações semelhantes


Anúncios Google