• Nenhum resultado encontrado

Dicionários: B-Trees

N/A
N/A
Protected

Academic year: 2021

Share "Dicionários: B-Trees"

Copied!
19
0
0

Texto

(1)

E Essttrr u uttuurraass ddee D D

Dicionários: B-Trees

Dicionários: B-Trees

Estruturas de Dados

2003/04

Aula teórica de 2003.11.12 (T9)

©2003 Salvador Abreu

(2)

E Essttrr u uttuurraass ddee D D

Motivação

Motivação

Grandes quantidades de informação

Grandes quantidades de informação

Requer armazenamento externo (disco)Requer armazenamento externo (disco)Acesso a disco lento (várias ordens de Acesso a disco lento (várias ordens de

grandeza pior que memória) grandeza pior que memória)

Procurar organização que minimize acessos Procurar organização que minimize acessos a disco talvez desprezando quantidade de a disco talvez desprezando quantidade de processamento?

processamento?

Organização em árvore

Organização em árvore

Árvore de grau KÁrvore de grau K

(3)

E Essttrr u uttuurraass ddee D D

Exemplo

Exemplo

Registo Civil

Registo Civil

Bilhetes de IdentidadeBilhetes de Identidade

Cerca de 10.000.000 registos diferentesCerca de 10.000.000 registos diferentesCada registo:Cada registo:

Nomes (próprio, pai, mãe): 128 bytes cadaNomes (próprio, pai, mãe): 128 bytes cada

Datas, locais, etc.: 128 bytesDatas, locais, etc.: 128 bytes

=> Total => Total 1K byte por registo1K byte por registo

Servidor

Servidor

1 IPC @ 2GHz, 1000 APS1 IPC @ 2GHz, 1000 APS

100 utilizadores simultâneos100 utilizadores simultâneos

(4)

E Essttrr u uttuurraass ddee D D

Exemplo: árvore binária

Exemplo: árvore binária

Supondo AVL (ou outra binária

Supondo AVL (ou outra binária

equilibrada)

equilibrada)

Profundidade: logProfundidade: log22(10(1077) ~ ) ~ 2727

Pesquisa feita em média em 27 acesso, a 10 Pesquisa feita em média em 27 acesso, a 10 APS = 2.7s

APS = 2.7s

Se variarmos o grau (N) da árvore

Se variarmos o grau (N) da árvore

N=5N=5: P=log: P=log55(10(1077) ~ ) ~ 1111; GD = ; GD = 60%60%N=10N=10: P=log: P=log1010(10(1077) ~ 7) ~ 7; GD = 75%; GD = 75%

(5)

E Essttrr u uttuurraass ddee D D

Exemplo

Exemplo

Grau suficientemente alto:

Grau suficientemente alto:

Limite superior sobre o número de acessos a disco: Limite superior sobre o número de acessos a disco: objectivo valor pequeno (3-5 acessos.)

objectivo valor pequeno (3-5 acessos.)

Resta saber como fazer...

Resta saber como fazer...

Ideia geral: árvore N-ária.Ideia geral: árvore N-ária.

Cada nó contém K=O(N) chaves.Cada nó contém K=O(N) chaves.

Busca envolve fazer uma pesquisa (p/ex binária) Busca envolve fazer uma pesquisa (p/ex binária) sobre cada nó.

sobre cada nó.

(6)

E Essttrr u uttuurraass ddee D D

B-Tree: Esquema

B-Tree: Esquema

k1 k2 k3 ki <k1 k1<k<k2 k>ki

(7)

E Essttrr u uttuurraass ddee D D

O que são: B-Trees

O que são: B-Trees

Definição (“Propriedade BT”):

Definição (“Propriedade BT”):

B-Tree de ordem MB-Tree de ordem M

Nós interiores:Nós interiores:

Entre ceil(M/2) e M filhosEntre ceil(M/2) e M filhos

Se tiver N<=M filhos, terá exactamente N-1 chavesSe tiver N<=M filhos, terá exactamente N-1 chaves

Folhas: todas à mesma profundidadeFolhas: todas à mesma profundidade

Por construçãoPor construção

Têm entre 1 e M-1 chavesTêm entre 1 e M-1 chaves

Raíz: folha ou tem no máximo M filhosRaíz: folha ou tem no máximo M filhos

Nós interiores:Nós interiores:

Referências aos filhos (F[i], i=1..M)Referências aos filhos (F[i], i=1..M)

Chaves contidas (K[i], i=1..M-1)Chaves contidas (K[i], i=1..M-1)

FolhasFolhas

(8)

E Essttrr u uttuurraass ddee D D

Exemplos simples

Exemplos simples

Ex: B-tree de ordem 3, tb designada por árvore

Ex: B-tree de ordem 3, tb designada por árvore

2-3

2-3

3: grau máximo dos nós3: grau máximo dos nós

2: número máximo de chaves nos nós2: número máximo de chaves nos nós

(9)

E Essttrr u uttuurraass ddee D D

B-Tree: Exemplo

B-Tree: Exemplo

15 0 7, 8 12, 13 17, 18 2, 5 10 3

(10)

E Essttrr u uttuurraass ddee D D

B-Tree: Pesquisa

B-Tree: Pesquisa

Simples, semelhante a pesquisa binária

Simples, semelhante a pesquisa binária

em cada nó interiorem cada nó interior

Se X=K[i], encontramosSe X=K[i], encontramos

Se K[i-1]<X<K[i], procurar no filho F[i]Se K[i-1]<X<K[i], procurar no filho F[i]

nas folhasnas folhas

(11)

E Essttrr u uttuurraass ddee D D

B-Tree: Inserção

B-Tree: Inserção

Inicialmente igual à pesquisa, obtemos a

Inicialmente igual à pesquisa, obtemos a

folha onde seria para inserir

folha onde seria para inserir

Forçosamente numa folhaForçosamente numa folha

Caso não haja violação da propriedade

Caso não haja violação da propriedade

BT (i.e. há menos que M valores na

BT (i.e. há menos que M valores na

folha):

folha):

Inserimos e pronto.Inserimos e pronto.

Possivelmente há que ajustar os valores de Possivelmente há que ajustar os valores de mj nos no caminho até à folha

mj nos no caminho até à folha

Caso não caiba: temos de repor a

Caso não caiba: temos de repor a

"legalidade"...

"legalidade"...

(12)

E Essttrr u uttuurraass ddee D D

B-Tree: Re-equilibrar (insersão)

B-Tree: Re-equilibrar (insersão)

Dá-se mais um irmão à folha onde se iria

Dá-se mais um irmão à folha onde se iria

inserir:

inserir:

Transita-se uma chave Km (mediana) da antiga folha Transita-se uma chave Km (mediana) da antiga folha

(aumentada com a chave a inserir) para o pai (aumentada com a chave a inserir) para o pai

Divide-se os valores (<Km, >Km) entre as novas folhasDivide-se os valores (<Km, >Km) entre as novas folhas

Caso não seja possível (pai já tem M filhos)

Caso não seja possível (pai já tem M filhos)

Dividir o pai em dois:Dividir o pai em dois:

cada um com a metade dos filhos (que ficam na mesma)cada um com a metade dos filhos (que ficam na mesma)

Transitando uma chave (mediana) do antigo pai para o Transitando uma chave (mediana) do antigo pai para o

avô avô

Caso não seja possível, repetir operação ao

Caso não seja possível, repetir operação ao

nível do avô, etc... até à raíz

nível do avô, etc... até à raíz

(13)

E Essttrr u uttuurraass ddee D D

B-Tree: Re-equilibrar (insersão)

B-Tree: Re-equilibrar (insersão)

Chegando à raíz, e esta estando cheia…

Chegando à raíz, e esta estando cheia…

Cria-se uma Cria-se uma nova raíznova raíz..

Com a mediana (Km) da antigaCom a mediana (Km) da antiga

Parte-se a antiga raíz em doisParte-se a antiga raíz em dois

Dividindo os valores da raíz anterior (<Km, >Km)Dividindo os valores da raíz anterior (<Km, >Km)

Mantém-se os filhos e fica-se com uma árvore

Mantém-se os filhos e fica-se com uma árvore

mais profunda

mais profunda

(14)

E Essttrr u uttuurraass ddee D D

B-Tree: Exemplo (1)

B-Tree: Exemplo (1)

Inserção dos inteiros

Inserção dos inteiros

0, 5, 10, 15, 2, 7, 12, 17, 3, 8, 13, 18 0, 5, 10, 15, 2, 7, 12, 17, 3, 8, 13, 18 0 0,5 0,5,10 5 0 10 5 0 10, 15 5 0, 2 10, 15 5 0, 2 7, 10, 15 5, 10 0, 2 7 15

(15)

E Essttrr u uttuurraass ddee D D

B-Tree: Exemplo (2)

B-Tree: Exemplo (2)

5, 10 0, 2 7 12, 15 5, 10 0, 2 7 12, 15, 17 5, 10, 15 0, 2 7 12 17 15 5 10

(16)

E Essttrr u uttuurraass ddee D D

B-Tree: Exemplo (3)

B-Tree: Exemplo (3)

15 0 7, 8 12, 13 17, 18 2, 5 10 3

(17)

E Essttrr u uttuurraass ddee D D

B-Tree: remoção

B-Tree: remoção

• Semelhante à inserção

Semelhante à inserção

• Se número de elementos da folha resultante

Se número de elementos da folha resultante

>1, não precisa fazer mais nada.

>1, não precisa fazer mais nada.

• Se número de elementos da folha = 1

Se número de elementos da folha = 1

– Combinar elemento restante com um irmãoCombinar elemento restante com um irmão

– Se passou a ser filho único, repetir operação ao Se passou a ser filho único, repetir operação ao nível superior

nível superior

– Se se chegar à raíz, toma-se como nova raíz o seu Se se chegar à raíz, toma-se como nova raíz o seu filho único

(18)

E Essttrr u uttuurraass ddee D D

B-Tree: análise

B-Tree: análise

• Profundidade máx. duma B-Tree de ordem M

Profundidade máx. duma B-Tree de ordem M

– ceil(logceil(logfloor(M/2)floor(M/2) N) N)

• Pesquisa

Pesquisa

– Em cada nó, fazemos O(log M) trabalho para Em cada nó, fazemos O(log M) trabalho para

determinar por onde vamos (c/ pesquisa binária) determinar por onde vamos (c/ pesquisa binária)

– pior caso: O(log N)pior caso: O(log N)

• Inserção e remoção

Inserção e remoção

– Como pesquisa, mas podemos ter de fazer O(M) Como pesquisa, mas podemos ter de fazer O(M) para repor as condições

para repor as condições

(19)

E Essttrr u uttuurraass ddee D D

B-Tree: usos

B-Tree: usos

• Uso principal: Bases de dados

Uso principal: Bases de dados

– Árvore mantida em disco, não em memóriaÁrvore mantida em disco, não em memória

– Número de acessos a nós = número de acessos a Número de acessos a nós = número de acessos a disco

disco

• Operação sempre muito lentaOperação sempre muito lenta

• Convem que sejam poucos (e grandes)Convem que sejam poucos (e grandes)

• O(logO(logMM N) N)

– Na prática, usam-se valores de M que:Na prática, usam-se valores de M que:

• sejam “grandes”sejam “grandes”

• permitam que um nó inteiro caiba num permitam que um nó inteiro caiba num blocobloco de disco de disco (p/ex uma página de VM, tipicamente 8K)

(p/ex uma página de VM, tipicamente 8K)

Referências

Documentos relacionados

Para saber como o amostrador Headspace 7697A da Agilent pode ajudar a alcançar os resultados esperados, visite www.agilent.com/chem/7697A Abund.. Nenhum outro software

Art. 22 ' ertencem ao autor os direitos morais e patrimoniais sobre a obra que criou' +?rios outros dispositivos da ei de Direitos Autorais comprovam a especial proteção que

A análise dos dados meteorológicos foi dividida em três etapas a partir de um esquema de decomposição temporal-cronológica, iniciando pela série de dados de longo

A partir da análise dos depoimentos, verificou-se que a importância da participação nas ações de Hackathon promovida pela Embrapa para as instituições de ensino superior situadas em

O Ministério do Trabalho aprova o quadro das atividades e operações insalubres e adota normas sobre os critérios de caracterização da insalubridade, os limites de tolerância

Por mais que esta modalidade seja proibida pelo ministério do trabalho, ainda há um grande número de profissionais contratados como PJ (pessoa jurídica), este resultado ficou

- os termos contratuais do ativo financeiro dão origem, em datas específicas, aos fluxos de caixa que são apenas pagamentos de principal e de juros sobre o valor principal em

res de Tridax procumbens submetidos a diferentes concentrações de 2,4-D, AIB ou ANA acrescidos de BAP.. FIGURA 5 – Peso da matéria seca dos calos formados a partir de segmentos