Anda di halaman 1dari 14

ndice 1. 2. Introduo ............................................................................................................................... 3 Objectivos ............................................................................................................................... 3 2.1. 2.2. 3. 4. Gerais ............................................................................................................................... 3 Especficos .......................................................................................................................

Metodologias........................................................................................................................... 4 rvore ..................................................................................................................................... 5 4.1. Tipos de rvores ............................................................................................................... 5

5.

rvores B+ .............................................................................................................................. 6 5.1. 5.2. 5.3. 5.4. 5.5. Definio .......................................................................................................................... 6 Caractersticas .................................................................................................................. 7 Altura................................................................................................................................ 7 Ordem e capacidade ......................................................................................................... 8 Operaes ......................................................................................................................... 8

Criao .................................................................................................................................... 8 Busca ....................................................................................................................................... 9 Insero ................................................................................................................................... 9 Remoo ............................................................................................................................... 10 5.6. 6. 7. Vantagens ....................................................................................................................... 12

Concluso.............................................................................................................................. 13 Referncias ............................................................................................................................ 14

ndice de figuras

1: Estrutura da rvore ...................................................................................................................... 5 2: Exemplo da insero de duas chaves ........................................................................................ 10 3: Remoo simples ...................................................................................................................... 11 4: Remoo da chave 37 com reajuste (emprstimo a direita) ..................................................... 11 5: Remoo da chave 87 com fuso de nos adjacentes ................................................................. 11 6: Remoo da chave 45 com fuso de ns filhos adjacentes....................................................... 12

ndice de Equaes

1: Altura da rvore .......................................................................................................................... 7 2: Ordem e capacidade de uma rvore ............................................................................................ 8

1. Introduo
rvore B ou rvore binria so estruturas de dados muito utilizados em base de dados e sistema de arquivos. Para inserir ou remover variveis de um n, o n no poder ultrapassar sua ordem e nem ser menor que sua ordem dividida por dois. rvores B no precisam ser rebalanceadas como so frequentemente as rvores de busca binria com rvore AVL. rvores B tm vantagens substanciais em relao a outros tipos de implementaes quanto ao tempo de acesso e pesquisa aos ns. Visto que as rvores binrias so estruturas de dados utilizadas tradicionalmente para a realizao de pesquisa de forma eficiente sobre um conjunto de dados. Uma rvore pode atingir grandes dimenses, bem como ser utilizada para armazenar dados em memria secundria ou distribudos pelos ns de uma rede de computadores.

2. Objectivos
2.1. 2.2. Gerais Especficos

1. Desenvolver uma aplicao com o uso da estrutura de dados B+.

1. Estudar a rvore B+ 2. Conhecer as operaes mais importantes 3. Manipular os dados gravados na rvore B+

4. Metodologias
Para a execuo deste trabalho o grupo usou os seguintes recursos:

Tecnologias: as tecnologias usadas foram computadores, varias pesquisas a internet.

IDE: foi usado o eclipse Helios (verso 3.5).

Mtodo de implementao: foi baseada na programao orientada a objectos. Optou-se por usar a ideia do trabalho prtico 1, mas mudamos de estrutura e foram feitas algumas correces.

5. rvore
Uma rvore composta por um conjunto de ns. Existe um n r, denominado raiz, que contm zero ou mais sub-rvores, cujas razes so ligadas directamente a r. Esses ns razes das sub-rvores so ditos filhos do n pai, r. Ns com filhos so normalmente chamados de ns internos e ns que no tm filhos so chamados de folhas, ou ns externos. tradicional desenhar as rvores com a raiz para cima e folhas para baixo, ao contrrio do que seria de se esperar. A figura 1 exemplifica a estrutura de uma rvore.

Figura 1: Estrutura da rvore

5.1.

Tipos de rvores

Existem variedades de rvores que so: rvore simples Binria AVL B B+

6. rvores B+
Das variaes das rvores B, existe a rvore B+, cuja utilizao est associado necessidade de realizar buscas sequenciais na base de dados. Devido dificuldade e alto custo devido ao nmero excessivo de acessos a disco em uma busca sequencial quando os dados esto distribudos em pginas (blocos) diferentes da memria, uma das modificaes na rvore B original foi a de introduzir um duplo encadeamento entre as diferentes pginas da rea de dados, de modo a permitir a leitura sequencial dos dados das folhas, outra modificao a de replicar os ndices nas folhas, assim garantindo que todos os dados podem ser acedidos de forma sequencial.

6.1.

Definio

Uma rvore B+ formada por ns dimensionados conforme os sectores do disco duro usado. Todas as folhas esto no mesmo nvel, ou seja altura da rvore B+. O grau mnimo t maior que um, e cada n interno possui no mnimo (t-1) chaves e no mximo (2t-1) chaves, uma rvore no vazia possui pelo menos uma chave na raiz.

A maioria das implementaes de ndices multinveis dinmicos usa a variante rvore B+. Na rvore binria, uma chave somente entrada uma vez em algum nvel da rvore, em conjunto com o dado associado em contrapartida na rvore B+, todos os dados s so armazenados nas folhas. Desta maneira, a estrutura conceitual das folhas difere da estrutura dos ns internos. As folhas da rvore B+ esto ligadas em sequncia, tornando possvel o acesso ordenado a seus campos.

6.2.

Caractersticas

N interno: 1. 2. 3. 4. n[x] chaves, armazenadas em ordem crescente: chave1[x] , chave2[x] ... chave n[x]. p[x] ponteiros para ns descendentes associados s n[x] chaves. Cada n interno tem, no mximo, 2t ponteiros. Cada n interno, excepto a raiz, tem pelo menos t ponteiros. A raiz tem pelo menos 2 ponteiros, caso seja um n interno.

N folha: 1. 2. n[x] chaves, armazenadas em ordem crescente: chave1[x] , chave2[x] ... chave n[x]. d[x] dados (ou ponteiros para outra estrutura onde est o dado em si, acrescentando mais um nvel de indireo) associados s n[x] chaves. 3. 4. 5. P, ponteiro para o prximo n folha. Cada folha possui pelo menos t valores. Todas as folhas se encontram no mesmo nvel de profundidade.

6.3.

Altura

A altura da rvore B+ um factor importante, pois define o nmero de acessos ao disco. Desta forma uma rvore com n elementos tem sua altura h definida em relao do grau mnimo t e o nmero de chaves:

Equao 1: Altura da rvore

6.4.

Ordem e capacidade

Para melhor aproveitamento, a capacidade deve ser a maior possvel, calculada baseado no tamanho de uma pgina, ou sector fsico do disco duro, tendo em vista o tamanho dos dados armazenados e os elementos bsicos de um n como ponteiros, etc. Ordem m o nmero mximo de filhos de cada n de uma rvore. Capacidade b o nmero mximo de dados armazenados em uma folha. Dado um nmero total de elementos n, existe uma altura h tal que:

Equao 2: Ordem e capacidade de uma rvore

6.5.

Operaes

Para a implementao de uma base de dados baseada em uma rvore B+ so necessrias operaes bsicas tais como: Criao Busca Insero Remoo

Criao A operao de criao de uma rvore B+ vazia feita pela alocao de uma posio de memria para a raiz da rvore, e pela inicializao dos valores de folha, grau e sua gravao em disco. A complexidade da operao de O (1) e 1 acesso memria secundria.

Busca O algoritmo de busca de uma rvore B+ uma simples generalizao do algoritmo de busca em rvores binrias. De maneira recursiva uma chave c comparada com a primeira chave da raiz, caso seja menor chamado recursivamente a mesma funo para o n filho mais esquerda, caso contrrio compara com as chaves seguintes, at encontrar uma que seja maior ou caso no encontre buscar o filho mais direita recursivamente, at encontrar a chave em uma folha, ou encontrar uma chave maior ou ser maior que as demais chaves folha. A Busca em uma rvore B+ de uma complexidade de O(n) passos por nvel da rvore, realizando um acesso memria secundaria. Uma busca em uma rvore B+ realiza O(h) = O(logt n) acessos a memria secundria e O(ht) = O (t logt n) operaes.

Insero A realizao de uma insero em uma rvore B+ no to simples quanto em rvores binrias, pois devido existncia de mais de uma chave por n, pode ocorrer o fato de o n no qual a chave deveria ser inserida estar cheio, e para isso ser necessrio dividir o n em dois.

Para realizar a insero primeiro necessria uma busca recursiva pela posio onde deve ser inserida a chave. Uma das possibilidades insero na raiz, estando ela cheia, neste caso a altura da rvore ser alterada conforme operao de diviso, abaixo citada, seguida da insero da nova chave. A insero pode ser feita em um n folha ou no corpo da rvore. No primeiro caso localizado o n folha e feita uma busca sequencial do final do vector at encontrar a posio onde deve ser inserida a chave, neste processo a chaves existentes so deslocadas uma posio para criar o espao para a nova chave. Aps realizada a insero o n gravado. Se for um n interno, ser realizada uma busca pela subrvore onde deve ser inserida a chave, no caso de n cheio ser realizada a diviso figura 2.

Figura 2: Exemplo da insero de duas chaves: da chave 40 em n com espao (1) e insero da chave 10 em no cheio (2)

No pior caso de uma insero ela se dar numa folha, necessitando O(n) chamadas recursivas do procedimento de insero, cada uma com O(1) acessos a memria secundria e O(t) operaes. A complexidade total de O(logt n) acessos a memria secundria e O(t logt n) operaes.

Diviso Quando um n e atinge 2t-1 chaves ele considerado cheio, no podendo receber mais nenhuma chave, mas no entanto pode ser necessria a alocao de uma nova chave nesta posio, para isso feita a operao de diviso de n cheio, inserindo a chave central no nvel superior e transformando o n cheio em dois novos ns. A operao de diviso realiza 3 acessos escritos na memria secundria e O(n) operaes.

Remoo O caso inverso da insero, desta vez necessrio verificar o nmero mnimo de chaves no n resultante (t-1), caso o n resultante no cumpra esta definio, deve-se realizar a fuso. Um pouco mais delicada de a operao simtrica (insero), para a remoo necessrio alguns passos para garantir a estrutura de uma rvore B+. 10

1. Remoo simples e directa, quando o n possui no mnimo t chaves;

Figura 3: Remoo simples

2. Remoo de chave quando o n possui t-1 chaves e o n adjacente pelo menos t chaves; a) Pode ser realizado emprstimo do vizinho da direita; b) Pode ser realizado emprstimo do vizinho da esquerda;

Figura 4: Remoo da chave 37 com reajuste (emprstimo a direita)

3. Na excluso de uma chave pode ocorrer de dois ns adjacentes possurem t-1 chaves, neste caso ocorrer a fuso dos dois ns adjacentes;

Figura 5: Remoo da chave 87 com fuso de nos adjacentes

11

4. Na excluso de uma chave de um n intermedirio, pode ocorrer de dois ns filhos possurem t-1 chaves cada, neste caso ocorrer a fuso dos dois ns filhos adjacentes.

Figura 6: Remoo da chave 45 com fuso de ns filhos adjacentes

O custo das operaes idntico aos de insero, no pior caso a remoo se dar numa folha, necessitando O (h) chamadas recursivas do procedimento de remoo, cada uma com O (1) acessos a memria secundria e O (t) operaes. A complexidade total de O (logt n) acessos a memria secundria e O (t logt n) operaes.

Fuso Quando um n do qual deve-se remover uma chave possui (t-1) chaves, ele j est com o tamanho mnimo admissvel, a remoo de uma chave faz necessria a fuso deste n com um n vizinho. No caso de dois ns adjacentes possurem (t-1) chaves pode-se realizar a fuso dos dois ns onde a chave do n pai que divide os dois ns adjacentes ser reposicionado no n resultante juntamente com as chaves dos adjacentes. A operao de diviso realiza 3 acessos escritos na memria secundria e O (t) operaes.

6.6.

Vantagens

Mecanismo para percorrer sequencialmente o arquivo de registos de dados sem que seja necessrio visitar toda a rvore. Mecanismo para percorrer sequencialmente o arquivo de registos de dados sem que seja necessrio ordenar o arquivo de registo de dados.

12

7. Concluso
Aps o estudo de diferentes tipos de rvores, e sua comparao com rvores B+, nota-se que alm de ser uma estrutura que aproveita as caractersticas fsicas dos computadores para um melhor desempenho, as rvores em geral tm um ganho em relao s outras estruturas por sua altura reduzida em relao a rvores binrias, mais uma vez reduzindo o tempo de operao com um menor nmero de acessos ao disco. O ganho ainda pode ser maior se for estruturado como uma rvore B+ Virtual, colocando uma boa parte da rvore na memria principal, e com um controle de memria virtual do tipo menos recentemente utilizada (LRU) ter as pginas mais recentes disponveis, o que facilita a insero e excluso de chaves.

13

8. Referncias
CORMEN, Thomas H.; LEISERSON, Charles E.; RIVEST, Ronald L. Introduction to Algorithms. McGraw Hill, 1990.

Projecto de Algoritmos. Disponvel em <http://www.cs.ust.hk/faculty/dimitris/ COMP530/notes/l6.pdf> acesso em Dezembro de 2004.

Today's Lecture. Disponvel em <http://www.soe.ucsc.edu/classes/cmps180/Winter03/ Lectures/B+-Trees.pdf> acesso em Dezembro de 2004.

ZIVIANI, N. Projecto de Algoritmos com Implementaes em Pascal e C. So Paulo, Livraria Pioneira Editora, 1993.

14