SlideShare une entreprise Scribd logo
1  sur  27
Árvores B

               Somos nós:
  Fernando Cerqueira, Jarbas Menezes Jr,
Jailson Brito, Rafael Ávila, Thiago Colares e
               Vagner Amaral.



                   Árvore B
Origem da Árvore B
• Criada por Bayer e McCreight, 1972;
• Desenvolvida no Boeing Scientific Research Labs;
• Origem do “B” é desconhecida. Hipóteses:
  – Boeing Scientific Research Labs;
  – Bayer-trees




                         Árvore B
Caracterização da Árvore B
• Árvores de pesquisa balanceadas;
• Projetadas para acessar dados em memória
  secundária;
  – Como discos ou outros dispositivos de
    armezenamento secundário de acesso direto.
• Muito utilizadas em SGBDs
  – relacionais ou não



                         Árvore B
Caracterização da Árvore B
• Objetivo: minimizar o número de acessos ao
  disco
• Como? Maximizando o número de filhos de
  um nó, que pode chegar aos milhares.
  – Número de filhos é determinada pela ordem da árvore




                          Árvore B
Exemplo de Aplicação:
 Acessar informações
   no disco rídigo.



         Árvore B
Discos
• Tecnologia barata;
• Alta capacidade
  armazenamento;
• Informações
  armazenadas em
  trilhas;
• Trilhas são divididas em
  em setores;
• Aplicações sempre
  acessam o disco em
  unidades de blocos:         (A) Trilha
    •   Exemplo: 1kb a 8kb;   (B) Setor geométrico
    •   Acesso ao disco é     (C) Setor de trilha
        muito custoso.        (D) Blocos de alocação

                                    Árvore B
Problemas
• Muito mais lentos do
  que a memória
  principal;
   •   Acesso fica custoso
• Quantidade de dados
  manipulados não cabe
  na memória principal;




                             (A) Trilha
                             (B) Setor geométrico
                             (C) Setor de trilha
                             (D) Blocos de alocação

                                   Árvore B
Solução com Árvore B
•    Uma árvore-B com grau 1001 e altura 2;
•    Pode armazenar mais de um bilhão de chaves;
•    O nó raiz permanentemente na memória principal;
•    No máximo dois acessos são necessários para ler qualquer chave!




    © 2001 Cormen et al.

                                 Árvore B
Solução com Árvore B
• Algoritmos só precisam um número constante
  de bloco na memória por vez;
• O tamanho da memória principal não afeta o
  tamanho da Árvore-B que pode ser tratada;
• O nó de uma Árvore-B é normalmente tão
  grande quando uma página de disco inteira;
  – Para evitar reads e writes do disco, que
    praticamente determinam o tempo de execução

                      Árvore B
Definição
• Em uma Árvore B de ordem m temos que:
  – Cada página contém:
     • No mínimo m registros e m+1 descendentes
     • No máximo 2m registros e 2m+1 descendentes
  – Exceto a página raiz:
     • No mínimo 1 registro e 2 descendentes




                            Árvore B
Exemplo




• Árvore B de ordem 2
• Cada página deve conter:
       • No mínimo 2 registros e 2+1 descendentes
       • No máximo 2 x 2 registros e 2 x 2 +1 descendentes
   – Exceto a página raiz:
       • No mínimo 1 registro e 2 descendentes

                                 Árvore B
Operações




   Árvore B
Inicialização
• Um nó vazio é alocado no disco;
• O nó é gravado no disco – não é executada
  nenhuma operação de leitura




                     Árvore B
Busca
• Semelhante ao da árvore de pesquisa binária;
  – Em cada nó interno
     • Se x = k[i], retorna
     • Se k[i-1] < x < k[i], procurar no filho f[i]
  – Folha
     • Se encontrou, retorna
  – Não encontrou? Retorna null
                                                      Árvore B de Ordem 2




                                   Árvore B
Inserção
• Encontrar a página ideal para inserir o registro
• Se número de registro da página < 2m
  – Processo de inserção limitado àquela página




                    Árvore B de Ordem 2
                         Árvore B
Inserção
• Se número de registro da página ≥ 2m
  – Após inserção, página é dividida
  – Registro do meio sobe para o nó pai
  – Demais registros são distribuídas igualmente entre
    os nós resultantes da divisão




                    Árvore B de Ordem 2
                         Árvore B
Inserção
• Se número de registro da página escolhida e
  do pai foram ambos ≥ 2m




                      Árvore B
Remoção
• Registro pode ser removido de qualquer nó;
• A remoção deve assegurar que nenhum nó
  ficará com menos que m – 1 registros
• O algoritimo desce a árvore B uma única vez
  (sem subir de volta)
  – Exceção: quando não envolver leitura e escrita em
    disco
• A remoção de um registro interno (não-folha)
  é recursiva.

                        Árvore B
Remoção: Exemplo de Casos




• Ordem m = 3 (“grau mínimo”)
• Máximo de registros por nó: 5 (2m – 1)
• Mínimo de registros por nó: 2 (m – 1)
Cormen at al.
http://homepages.ius.edu/rwisman/C455/html/notes/Chapter18/BT-Ops.htm

                                                   Árvore B
Remoção: Caso 1
 • A chave está em um nó folha que contém pelo menos m registros.




• Caso mais simples, eliminação de uma folha




                                 Árvore B
Remoção: Caso 2a / 2b
•   Chave está em nó interno. Nó do predecessor tem pelo menos m registros.




• O predecessor L de M é movido para cima, no lugar de M.




                                     Árvore B
Remoção: Caso 2c
• Chave está em nó interno e filhos tem apenas m-1 registros.




• G é empurrado para baixo, forma-se D E G J K
• Então G é eliminado recursivamente da folha;




                                  Árvore B
Remoção: Caso 3b
• Chave que contém D é folha;
• Mas a recursão não pode descer até D, pois o nó C L só tem dois registros;
    – Mínimo
• Logo, o nó C Lprecisa ser reorganizado.




                                    Árvore B
Remoção: Caso 3b
•   Então P é empurrado para baixo, e intercalado com C L e T X;
•   Forma-se C L P T X. D é eliminado (como no Caso 1);
•   Em seguida, a raiz é eliminada e a árvore encolhe uma unidade em altura.




                                      Árvore B
Remoção: Caso 3a
• O nó que contém o registro só tem m – 1 registros, mas possui um irmão
  com pelo menos m registros:




• C é movido para preencher a posição de B.
• E é movido para preencher a posição de C.




                                  Árvore B
Exercício




   Árvore B
Exercícios
• Escolher um campo do registro Music e
  implementar um outro índice, mantendo o
  índice atual;
• Deve ser possível fazer Pesquisa e Remoção
  usando qualquer um dos índices.
• Extra: Escolher o novo índice em tempo de
  execução


                     Árvore B

Contenu connexe

Tendances

EDII14 [2012.1] Árvores B e B+
EDII14 [2012.1]   Árvores B e B+EDII14 [2012.1]   Árvores B e B+
EDII14 [2012.1] Árvores B e B+KianeLedok
 
Aula 5 encapsulamento, associação, polimorfismo, interfaces
Aula 5   encapsulamento, associação, polimorfismo, interfacesAula 5   encapsulamento, associação, polimorfismo, interfaces
Aula 5 encapsulamento, associação, polimorfismo, interfacesRafael Pinheiro
 
13 Java Script - Validação de formulário
13 Java Script  - Validação de formulário13 Java Script  - Validação de formulário
13 Java Script - Validação de formulárioCentro Paula Souza
 
3 - Modelo Entidade Relacionamento
3 - Modelo Entidade Relacionamento3 - Modelo Entidade Relacionamento
3 - Modelo Entidade RelacionamentoCris Fidelix
 
02 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.502 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.5César Augusto Pessôa
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)Armando Daniel
 
HTML+&+CSS++Fundamentos.pdf
HTML+&+CSS++Fundamentos.pdfHTML+&+CSS++Fundamentos.pdf
HTML+&+CSS++Fundamentos.pdfCesar Braz
 
Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01   Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01 Léo Dias
 
Estrutura de Dados - Aula de revisão de C na prática
Estrutura de Dados - Aula de revisão de C na práticaEstrutura de Dados - Aula de revisão de C na prática
Estrutura de Dados - Aula de revisão de C na práticaLeinylson Fontinele
 
POO - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
POO   - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)POO   - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
POO - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)Marcello Thiry
 
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...Leinylson Fontinele
 
Estrutura de Dados - Aula 12 - Listas Duplamente Encadeadas
Estrutura de Dados  - Aula 12 - Listas Duplamente EncadeadasEstrutura de Dados  - Aula 12 - Listas Duplamente Encadeadas
Estrutura de Dados - Aula 12 - Listas Duplamente EncadeadasLeinylson Fontinele
 
Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Daniel Brandão
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01thomasdacosta
 
Estrutura de Dados Aula 07 - Alocação dinâmica de memória
Estrutura de Dados Aula 07 - Alocação dinâmica de memóriaEstrutura de Dados Aula 07 - Alocação dinâmica de memória
Estrutura de Dados Aula 07 - Alocação dinâmica de memóriaLeinylson Fontinele
 

Tendances (20)

EDII14 [2012.1] Árvores B e B+
EDII14 [2012.1]   Árvores B e B+EDII14 [2012.1]   Árvores B e B+
EDII14 [2012.1] Árvores B e B+
 
Aula 5 encapsulamento, associação, polimorfismo, interfaces
Aula 5   encapsulamento, associação, polimorfismo, interfacesAula 5   encapsulamento, associação, polimorfismo, interfaces
Aula 5 encapsulamento, associação, polimorfismo, interfaces
 
13 Java Script - Validação de formulário
13 Java Script  - Validação de formulário13 Java Script  - Validação de formulário
13 Java Script - Validação de formulário
 
Estrutura de dados em Java - Pilhas
Estrutura de dados em Java - PilhasEstrutura de dados em Java - Pilhas
Estrutura de dados em Java - Pilhas
 
3 - Modelo Entidade Relacionamento
3 - Modelo Entidade Relacionamento3 - Modelo Entidade Relacionamento
3 - Modelo Entidade Relacionamento
 
02 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.502 - Orientação a objetos e revisão de C# v1.5
02 - Orientação a objetos e revisão de C# v1.5
 
Aula 09 - introducao oo
Aula 09 - introducao ooAula 09 - introducao oo
Aula 09 - introducao oo
 
O que é um Banco de Dados Relacional?
O que é um Banco de Dados Relacional?O que é um Banco de Dados Relacional?
O que é um Banco de Dados Relacional?
 
Java orientação a objetos (associacao, composicao, agregacao)
Java   orientação a objetos (associacao, composicao, agregacao)Java   orientação a objetos (associacao, composicao, agregacao)
Java orientação a objetos (associacao, composicao, agregacao)
 
HTML+&+CSS++Fundamentos.pdf
HTML+&+CSS++Fundamentos.pdfHTML+&+CSS++Fundamentos.pdf
HTML+&+CSS++Fundamentos.pdf
 
Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01   Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01
 
Estrutura de Dados - Aula de revisão de C na prática
Estrutura de Dados - Aula de revisão de C na práticaEstrutura de Dados - Aula de revisão de C na prática
Estrutura de Dados - Aula de revisão de C na prática
 
POO - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
POO   - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)POO   - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
POO - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
 
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
 
Estrutura de Dados - Aula 12 - Listas Duplamente Encadeadas
Estrutura de Dados  - Aula 12 - Listas Duplamente EncadeadasEstrutura de Dados  - Aula 12 - Listas Duplamente Encadeadas
Estrutura de Dados - Aula 12 - Listas Duplamente Encadeadas
 
Estrutura de dados - Árvores Binárias
Estrutura de dados - Árvores BináriasEstrutura de dados - Árvores Binárias
Estrutura de dados - Árvores Binárias
 
Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)
 
POO - Aula 10 - Polimorfismo
POO - Aula 10 - PolimorfismoPOO - Aula 10 - Polimorfismo
POO - Aula 10 - Polimorfismo
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01
 
Estrutura de Dados Aula 07 - Alocação dinâmica de memória
Estrutura de Dados Aula 07 - Alocação dinâmica de memóriaEstrutura de Dados Aula 07 - Alocação dinâmica de memória
Estrutura de Dados Aula 07 - Alocação dinâmica de memória
 

En vedette

Sistema de arquivos
Sistema de arquivosSistema de arquivos
Sistema de arquivosVirgínia
 
Aula 07 disco rígido e mídias de armazenamento
Aula 07   disco rígido e mídias de armazenamentoAula 07   disco rígido e mídias de armazenamento
Aula 07 disco rígido e mídias de armazenamentoLeewan Meneses
 
Armazenamento de dados Sistema de Informacao
Armazenamento de dados   Sistema de InformacaoArmazenamento de dados   Sistema de Informacao
Armazenamento de dados Sistema de InformacaoJefferson Martins
 
Revolução Socialista na China e a Guerra do Vietnã
Revolução Socialista na China e a Guerra do VietnãRevolução Socialista na China e a Guerra do Vietnã
Revolução Socialista na China e a Guerra do VietnãDouglas Barraqui
 
Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)Faculdade Mater Christi
 
Dispositivo de armazenamento de dados
Dispositivo de armazenamento de dadosDispositivo de armazenamento de dados
Dispositivo de armazenamento de dadosFilipe Simão Kembo
 
A evolução dos dispositivos de armazenamento
A evolução dos dispositivos de armazenamentoA evolução dos dispositivos de armazenamento
A evolução dos dispositivos de armazenamentoNuno Pereira
 
Dispositivos de armazenamento
Dispositivos de armazenamentoDispositivos de armazenamento
Dispositivos de armazenamentofelipefaleiro
 
TECNOLOGIAS DE ARMAZENAMENTO DE INFORMAÇÃO
TECNOLOGIAS DE ARMAZENAMENTO DE INFORMAÇÃOTECNOLOGIAS DE ARMAZENAMENTO DE INFORMAÇÃO
TECNOLOGIAS DE ARMAZENAMENTO DE INFORMAÇÃORenan Souza Daniel
 
MC - Aula 05 - Memória e Dispositivos de Armazenamento
MC - Aula 05 - Memória e Dispositivos de ArmazenamentoMC - Aula 05 - Memória e Dispositivos de Armazenamento
MC - Aula 05 - Memória e Dispositivos de ArmazenamentoFelipe J. R. Vieira
 

En vedette (20)

Dia da árvore 1
Dia da árvore 1Dia da árvore 1
Dia da árvore 1
 
Arvores
ArvoresArvores
Arvores
 
Os impactos da complexidade sobre os projetos e programas x seminário.pptx
Os impactos da complexidade sobre os projetos e programas x seminário.pptxOs impactos da complexidade sobre os projetos e programas x seminário.pptx
Os impactos da complexidade sobre os projetos e programas x seminário.pptx
 
Hash e Btree
Hash e BtreeHash e Btree
Hash e Btree
 
Dia da árvore 2
Dia da árvore 2Dia da árvore 2
Dia da árvore 2
 
Dia da árvore
Dia da árvoreDia da árvore
Dia da árvore
 
Sistema de arquivos
Sistema de arquivosSistema de arquivos
Sistema de arquivos
 
Sd01 (si) sistemas de arquivos
Sd01 (si)   sistemas de arquivosSd01 (si)   sistemas de arquivos
Sd01 (si) sistemas de arquivos
 
Aula 07 disco rígido e mídias de armazenamento
Aula 07   disco rígido e mídias de armazenamentoAula 07   disco rígido e mídias de armazenamento
Aula 07 disco rígido e mídias de armazenamento
 
Armazenamento de dados Sistema de Informacao
Armazenamento de dados   Sistema de InformacaoArmazenamento de dados   Sistema de Informacao
Armazenamento de dados Sistema de Informacao
 
Optimizing Search
Optimizing SearchOptimizing Search
Optimizing Search
 
Revolução Socialista na China e a Guerra do Vietnã
Revolução Socialista na China e a Guerra do VietnãRevolução Socialista na China e a Guerra do Vietnã
Revolução Socialista na China e a Guerra do Vietnã
 
Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)Sistemas de arquivos cap 04 (iii unidade)
Sistemas de arquivos cap 04 (iii unidade)
 
Dispositivo de armazenamento de dados
Dispositivo de armazenamento de dadosDispositivo de armazenamento de dados
Dispositivo de armazenamento de dados
 
A evolução dos dispositivos de armazenamento
A evolução dos dispositivos de armazenamentoA evolução dos dispositivos de armazenamento
A evolução dos dispositivos de armazenamento
 
Dispositivos de armazenamento
Dispositivos de armazenamentoDispositivos de armazenamento
Dispositivos de armazenamento
 
Meios de armazenamento
Meios de armazenamentoMeios de armazenamento
Meios de armazenamento
 
TECNOLOGIAS DE ARMAZENAMENTO DE INFORMAÇÃO
TECNOLOGIAS DE ARMAZENAMENTO DE INFORMAÇÃOTECNOLOGIAS DE ARMAZENAMENTO DE INFORMAÇÃO
TECNOLOGIAS DE ARMAZENAMENTO DE INFORMAÇÃO
 
MC - Aula 05 - Memória e Dispositivos de Armazenamento
MC - Aula 05 - Memória e Dispositivos de ArmazenamentoMC - Aula 05 - Memória e Dispositivos de Armazenamento
MC - Aula 05 - Memória e Dispositivos de Armazenamento
 
Dia da Árvore
Dia da ÁrvoreDia da Árvore
Dia da Árvore
 

Plus de Thiago Colares

O básico que ainda deveríamos entender sobre Unicode e encondings
O básico que ainda deveríamos entender sobre Unicode e encondingsO básico que ainda deveríamos entender sobre Unicode e encondings
O básico que ainda deveríamos entender sobre Unicode e encondingsThiago Colares
 
The Pragmatic Agilist: estimating, improving quality, and communication with...
The Pragmatic Agilist: estimating, improving quality, and communication  with...The Pragmatic Agilist: estimating, improving quality, and communication  with...
The Pragmatic Agilist: estimating, improving quality, and communication with...Thiago Colares
 
Getting started with GraphQL
Getting started with GraphQLGetting started with GraphQL
Getting started with GraphQLThiago Colares
 
Domain-Driven Design com PHP
Domain-Driven Design com PHPDomain-Driven Design com PHP
Domain-Driven Design com PHPThiago Colares
 
Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap
Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGapAplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap
Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGapThiago Colares
 
eBook: Como abrir uma empresa em Salvador, Bahia?
eBook: Como abrir uma empresa em Salvador, Bahia?eBook: Como abrir uma empresa em Salvador, Bahia?
eBook: Como abrir uma empresa em Salvador, Bahia?Thiago Colares
 
Processos de Negócio e Colaboração
Processos de Negócio e ColaboraçãoProcessos de Negócio e Colaboração
Processos de Negócio e ColaboraçãoThiago Colares
 
Como NÃO transformar sua startup em uma tragédia
Como NÃO transformar sua startup em uma tragédiaComo NÃO transformar sua startup em uma tragédia
Como NÃO transformar sua startup em uma tragédiaThiago Colares
 
Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperl...
Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperl...Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperl...
Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperl...Thiago Colares
 
Colaboração em Projetos FLOSS: CakePHP
Colaboração em Projetos FLOSS: CakePHPColaboração em Projetos FLOSS: CakePHP
Colaboração em Projetos FLOSS: CakePHPThiago Colares
 
Usability (and some thoughts on mobile)
Usability (and some thoughts on mobile)Usability (and some thoughts on mobile)
Usability (and some thoughts on mobile)Thiago Colares
 
API Evolution and Usability
API Evolution and UsabilityAPI Evolution and Usability
API Evolution and UsabilityThiago Colares
 
O não e o empreendedor
O não e o empreendedorO não e o empreendedor
O não e o empreendedorThiago Colares
 
Startups como meio de inovação
Startups como meio de inovaçãoStartups como meio de inovação
Startups como meio de inovaçãoThiago Colares
 

Plus de Thiago Colares (16)

O básico que ainda deveríamos entender sobre Unicode e encondings
O básico que ainda deveríamos entender sobre Unicode e encondingsO básico que ainda deveríamos entender sobre Unicode e encondings
O básico que ainda deveríamos entender sobre Unicode e encondings
 
The Pragmatic Agilist: estimating, improving quality, and communication with...
The Pragmatic Agilist: estimating, improving quality, and communication  with...The Pragmatic Agilist: estimating, improving quality, and communication  with...
The Pragmatic Agilist: estimating, improving quality, and communication with...
 
Getting started with GraphQL
Getting started with GraphQLGetting started with GraphQL
Getting started with GraphQL
 
The Pragmatic Agilist
The Pragmatic AgilistThe Pragmatic Agilist
The Pragmatic Agilist
 
Domain-Driven Design com PHP
Domain-Driven Design com PHPDomain-Driven Design com PHP
Domain-Driven Design com PHP
 
Mobile Usability
Mobile UsabilityMobile Usability
Mobile Usability
 
Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap
Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGapAplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap
Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap
 
eBook: Como abrir uma empresa em Salvador, Bahia?
eBook: Como abrir uma empresa em Salvador, Bahia?eBook: Como abrir uma empresa em Salvador, Bahia?
eBook: Como abrir uma empresa em Salvador, Bahia?
 
Processos de Negócio e Colaboração
Processos de Negócio e ColaboraçãoProcessos de Negócio e Colaboração
Processos de Negócio e Colaboração
 
Como NÃO transformar sua startup em uma tragédia
Como NÃO transformar sua startup em uma tragédiaComo NÃO transformar sua startup em uma tragédia
Como NÃO transformar sua startup em uma tragédia
 
Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperl...
Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperl...Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperl...
Aplicação da Teoria dos Grafos e Algoritmos na Engenharia de Software: Hyperl...
 
Colaboração em Projetos FLOSS: CakePHP
Colaboração em Projetos FLOSS: CakePHPColaboração em Projetos FLOSS: CakePHP
Colaboração em Projetos FLOSS: CakePHP
 
Usability (and some thoughts on mobile)
Usability (and some thoughts on mobile)Usability (and some thoughts on mobile)
Usability (and some thoughts on mobile)
 
API Evolution and Usability
API Evolution and UsabilityAPI Evolution and Usability
API Evolution and Usability
 
O não e o empreendedor
O não e o empreendedorO não e o empreendedor
O não e o empreendedor
 
Startups como meio de inovação
Startups como meio de inovaçãoStartups como meio de inovação
Startups como meio de inovação
 

Apresentação sobre Árvores B

  • 1. Árvores B Somos nós: Fernando Cerqueira, Jarbas Menezes Jr, Jailson Brito, Rafael Ávila, Thiago Colares e Vagner Amaral. Árvore B
  • 2. Origem da Árvore B • Criada por Bayer e McCreight, 1972; • Desenvolvida no Boeing Scientific Research Labs; • Origem do “B” é desconhecida. Hipóteses: – Boeing Scientific Research Labs; – Bayer-trees Árvore B
  • 3. Caracterização da Árvore B • Árvores de pesquisa balanceadas; • Projetadas para acessar dados em memória secundária; – Como discos ou outros dispositivos de armezenamento secundário de acesso direto. • Muito utilizadas em SGBDs – relacionais ou não Árvore B
  • 4. Caracterização da Árvore B • Objetivo: minimizar o número de acessos ao disco • Como? Maximizando o número de filhos de um nó, que pode chegar aos milhares. – Número de filhos é determinada pela ordem da árvore Árvore B
  • 5. Exemplo de Aplicação: Acessar informações no disco rídigo. Árvore B
  • 6. Discos • Tecnologia barata; • Alta capacidade armazenamento; • Informações armazenadas em trilhas; • Trilhas são divididas em em setores; • Aplicações sempre acessam o disco em unidades de blocos: (A) Trilha • Exemplo: 1kb a 8kb; (B) Setor geométrico • Acesso ao disco é (C) Setor de trilha muito custoso. (D) Blocos de alocação Árvore B
  • 7. Problemas • Muito mais lentos do que a memória principal; • Acesso fica custoso • Quantidade de dados manipulados não cabe na memória principal; (A) Trilha (B) Setor geométrico (C) Setor de trilha (D) Blocos de alocação Árvore B
  • 8. Solução com Árvore B • Uma árvore-B com grau 1001 e altura 2; • Pode armazenar mais de um bilhão de chaves; • O nó raiz permanentemente na memória principal; • No máximo dois acessos são necessários para ler qualquer chave! © 2001 Cormen et al. Árvore B
  • 9. Solução com Árvore B • Algoritmos só precisam um número constante de bloco na memória por vez; • O tamanho da memória principal não afeta o tamanho da Árvore-B que pode ser tratada; • O nó de uma Árvore-B é normalmente tão grande quando uma página de disco inteira; – Para evitar reads e writes do disco, que praticamente determinam o tempo de execução Árvore B
  • 10. Definição • Em uma Árvore B de ordem m temos que: – Cada página contém: • No mínimo m registros e m+1 descendentes • No máximo 2m registros e 2m+1 descendentes – Exceto a página raiz: • No mínimo 1 registro e 2 descendentes Árvore B
  • 11. Exemplo • Árvore B de ordem 2 • Cada página deve conter: • No mínimo 2 registros e 2+1 descendentes • No máximo 2 x 2 registros e 2 x 2 +1 descendentes – Exceto a página raiz: • No mínimo 1 registro e 2 descendentes Árvore B
  • 12. Operações Árvore B
  • 13. Inicialização • Um nó vazio é alocado no disco; • O nó é gravado no disco – não é executada nenhuma operação de leitura Árvore B
  • 14. Busca • Semelhante ao da árvore de pesquisa binária; – Em cada nó interno • Se x = k[i], retorna • Se k[i-1] < x < k[i], procurar no filho f[i] – Folha • Se encontrou, retorna – Não encontrou? Retorna null Árvore B de Ordem 2 Árvore B
  • 15. Inserção • Encontrar a página ideal para inserir o registro • Se número de registro da página < 2m – Processo de inserção limitado àquela página Árvore B de Ordem 2 Árvore B
  • 16. Inserção • Se número de registro da página ≥ 2m – Após inserção, página é dividida – Registro do meio sobe para o nó pai – Demais registros são distribuídas igualmente entre os nós resultantes da divisão Árvore B de Ordem 2 Árvore B
  • 17. Inserção • Se número de registro da página escolhida e do pai foram ambos ≥ 2m Árvore B
  • 18. Remoção • Registro pode ser removido de qualquer nó; • A remoção deve assegurar que nenhum nó ficará com menos que m – 1 registros • O algoritimo desce a árvore B uma única vez (sem subir de volta) – Exceção: quando não envolver leitura e escrita em disco • A remoção de um registro interno (não-folha) é recursiva. Árvore B
  • 19. Remoção: Exemplo de Casos • Ordem m = 3 (“grau mínimo”) • Máximo de registros por nó: 5 (2m – 1) • Mínimo de registros por nó: 2 (m – 1) Cormen at al. http://homepages.ius.edu/rwisman/C455/html/notes/Chapter18/BT-Ops.htm Árvore B
  • 20. Remoção: Caso 1 • A chave está em um nó folha que contém pelo menos m registros. • Caso mais simples, eliminação de uma folha Árvore B
  • 21. Remoção: Caso 2a / 2b • Chave está em nó interno. Nó do predecessor tem pelo menos m registros. • O predecessor L de M é movido para cima, no lugar de M. Árvore B
  • 22. Remoção: Caso 2c • Chave está em nó interno e filhos tem apenas m-1 registros. • G é empurrado para baixo, forma-se D E G J K • Então G é eliminado recursivamente da folha; Árvore B
  • 23. Remoção: Caso 3b • Chave que contém D é folha; • Mas a recursão não pode descer até D, pois o nó C L só tem dois registros; – Mínimo • Logo, o nó C Lprecisa ser reorganizado. Árvore B
  • 24. Remoção: Caso 3b • Então P é empurrado para baixo, e intercalado com C L e T X; • Forma-se C L P T X. D é eliminado (como no Caso 1); • Em seguida, a raiz é eliminada e a árvore encolhe uma unidade em altura. Árvore B
  • 25. Remoção: Caso 3a • O nó que contém o registro só tem m – 1 registros, mas possui um irmão com pelo menos m registros: • C é movido para preencher a posição de B. • E é movido para preencher a posição de C. Árvore B
  • 26. Exercício Árvore B
  • 27. Exercícios • Escolher um campo do registro Music e implementar um outro índice, mantendo o índice atual; • Deve ser possível fazer Pesquisa e Remoção usando qualquer um dos índices. • Extra: Escolher o novo índice em tempo de execução Árvore B

Notes de l'éditeur

  1. Antes de formalizarmos o conceito de árvores-B, vamos examinar porque estruturas de dadosarmazenadas em disco possuem característicasdiferentes das armazenadas na memóriaprincipal.
  2. Exemplo de árvore tree. Note que
  3. Muitasvezesdemoramais tempoparaacessarumapágina de informações e ler a leitura do disco que o tempo necessáriopara o computadorexaminar as informaçõesObservamostambémque o tempo de acessoao disco nãoéconstante – depende da distância entre a trilhaatual e a trilhadesejada
  4. Explicação do pq: https://docs.google.com/viewer?a=v&amp;q=cache:Y_pOhDF4fOUJ:www.dsc.ufcg.edu.br/~baptista/cursos/EDados/Unidade4Btree.doc+&amp;hl=pt-BR&amp;gl=br&amp;pid=bl&amp;srcid=ADGEESgx1CTemnjsTCeKPsdCJSnnDF4d9THiO7k8nyMSGVkQoPhpOVPhWZvrRWFJ_fXryolYlxDFxP9TCXIsb6lZWmM4-QMqGGsUqJ2-7qTjhmlYpZgZ9tPHFZYJYqCtuhmczF2Obsn0&amp;sig=AHIEtbTbPsYggPwj4runBcv5Z58TyCTxVg•Já que os algoritmos de manipulação deárvores-B só precisam de um número constantede blocos na memória de cada vez, o tamanhoda memória principal não afeta o tamanho daárvore-B que pode ser tratada
  5. Algoritmos de manipulação de Árvores-B só precisam de um número constante de blocos na memória de cada vez;
  6. Algunsautores,comoZiviani, nãoregistrigem m ≥ 2, mas utilizamoslimitessubtraídos de 1
  7. Nemsempreépossívelrespeitarestaregra?
  8. Binária: toma-sedecisão de remificaçãobináriaÁrvore-b: toma-se decisão de ramificação número-de-registros-do-nó+1
  9. Paiédivididoemdois, e registro do meiovaipara um nóacima.
  10. Deleting from an internal node is recursive, meaning that child nodes must be adjusted down to a leaf node since there is one less key.
  11. Encontre o predecessor (valor anterior) da registro (númeromais alto nasubárvoreàesquerda)Substitua o precedessorpelachaveque se quer remover (façaistorecursivamente) (Necessary since one less key in predecessor node. (mm?))Pare nafolha
  12. Merge G com todososregistros dos filhos. Géempurradoparabaixo, forma-se D E G J K.NóperdeG e o ponteiropara um dos filhosO filho restante(D E G J K) contém 2m – 1 registros.Então G éeliminadorecursivamente da folha;
  13. CASO 3 GERAL:http://homepages.ius.edu/rwisman/C455/html/notes/Chapter18/BT-Ops.htm (baseado no Cormen)If he key k is not present in internal node x, determine root x.ci of the appopriate child subtree that must contain k, if k is in the tree at all.Ifx.ci has only t-1 keys, execute steps 3a or 3b as necessary to guarantee descent to a node with at least t keys.Then finish by recursing on the appropriate x.c
  14. O nóquecontém o registrosó tem m – 1 chaves, mas possui um irmão com pelomenosmregistros:Give x.ci an extra key by moving a key from x down into x.ciMoving a key from x.ci immediate left or right sibling up into x and moving the appropriate child pointer from the sibling into x.ci.