SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Faculdade de Ciências Humanas, Saúde, Exatas
e Jurídicas de Teresina
Turma: Ciência da Computação
Período: 4º - Manhã
Disciplina: Pesquisa e Ordenação
Docente: Willame Pereira
Discentes: Igor Monteiro
Luis Fellipe
Marcelo Kelle
Copyright 2013.1
1. Overview;
2. Armazenamento Secundário;
3. Definição da Árvore-B.
Copyright 2013.1
 São árvores balanceadas, desenvolvidas para otimizar o acesso a
armazenamento secundário
 Os nós da árvore B podem ter muitos filhos. Esse fator de
ramificação é determinante para reduzir o número de acessos a
disco. Árvores B são balanceadas, ou seja, sua altura é O(lg(n))
 Árvores B são generalizações de árvores binárias balanceadas
3
 Atualmente o armazenamento estável é feito em discos
magnéticos, e o custo de cada acesso (da ordem de milisegundos)
é muito alto quando comparado ao acesso à memória RAM
(ordem de nano segundos)
 Toda vez que um acesso é feito, deve-se aproveita-lo da melhor
maneira possível, trazendo o máximo de informação relevante
 A quantidade de dados utilizados numa árvore B obviamente não
cabem na memória de uma só vez, por isso é necessário paginá-la
 Especializações são feitas de acordo com as necessidades da
aplicação. O fator de ramificação, por exemplo, pode variar de 3 a
2048 por exemplo (dependendo do buffer dos discos e do
tamanho das páginas de memória alocados pelo SO)
4
 Atualmente o armazenamento estável é feito em discos
magnéticos, e o custo de cada acesso (da ordem de
milissegundos) é muito alto quando comparado ao acesso à
memória RAM (ordem de nano segundos)
 Toda vez que um acesso é feito, deve-se aproveita-lo da melhor
maneira possível, trazendo o máximo de informação relevante
 A quantidade de dados utilizados numa árvore B obviamente não
cabem na memória de uma só vez, por isso é necessário paginá-la
 Especializações são feitas de acordo com as necessidades da
aplicação. O fator de ramificação, por exemplo, pode variar de 3 a
2048 por exemplo (dependendo do buffer dos discos e do
tamanho das páginas de memória alocados pelo SO)
5
 Na grande maioria dos sistemas, o tempo de execução de um
algoritmo de árvore B é determinado pelas leituras e escritas no
disco
 Um fator de ramificação alto reduz drasticamente a altura da
árvore. Tomemos o exemplo:
6
 Consideraremos que o os dados dos registros sejam guardados
junto com a chave da árvore. Se estivéssemos usando uma árvore
B+, os registros ficariam todos nas folhas:
7
8
9
10
4. Busca por Elemento;
5. Inserção de Elemento;
6. Separação de Nós.
Copyright 2013.1
 A busca em uma árvore-B é similar à busca em uma árvore
binária, só que ao invés de uma bifurcação em cada nó, temos
vários caminhos a seguir de acordo com o número de filhos do nó
 O algoritmo de busca na árvore é uma generalização da busca em
uma árvore binária
 A função B-TREE-SEARCH recebe o apontador para o nó raiz (x) e
a chave k sendo procurada
 Se a chave k pertencer à árvore o algoritmo retorna o nó ao qual
ela pertence e o índice dentro do nó correspondente à chave
procurada, caso contrário, retorna NIL
12
13
14
 A inserção nas árvores-B são relativamente mais complicadas,
pois precisamos inserir a nova chave no nó correto da árvore, sem
violar suas propriedades
 Como proceder se o nó estiver cheio?
 Caso o nó esteja cheio, devemos separar (split) o nó ao redor do
elemento mediano, criando 2 novos nós que não violam as
definições da árvore
 O elemento mediano é promovido, passando a fazer parte do nó
pai daquele nó
 A inserção é feita em um único percurso na árvore, a partir da raiz
até uma das folhas
15
16
17
7. Inserção com Split;
8. Remoção de Chaves;
9. Complexidade da remoção.
Copyright 2013.1
 Dessa maneira, em uma única passagem pela árvore, da raiz às
folhas, inserimos uma determinada chave, dividindo (splits)
cada nó da árvore que encontrarmos no caminho, caso o nó esteja
cheio
 O código a seguir faz uso de B-TREE-INSERT-NONFULL:
19
B-TREE-INSERT(T, k)
1. r ← root[T]
2. if n[r] = 2t−1 then
3. s ← ALLOCATE-NODE()
4. root[T] ← s
5. leaf [s] ← FALSE
6. n[s] ← 0
7. c1[s] ← r
8. B-TREE-SPLIT-CHILD(s, 1, r)
9. B-TREE-INSERT-NONFULL(s, k)
10. else B-TREE-INSERT-NONFULL(r, k)
 B-TREE-INSERT-NONFULL insere a chave k no nó x, caso este seja
uma folha, caso contrário, procura o filho adequado e desce à ele
recursivamente até encontrar a folha onde deve inserir k
20
21
22
 A remoção de uma chave é análoga à inserção, porém com alguns
complicadores, já que uma chave pode ser removida de qualquer
nó, seja ele raiz ou não
 Assim como na inserção, precisamos garantir que, ao removermos a
chave as propriedades da árvore-B não sejam violadas
 Da mesma maneira que tivemos de garantir que um nó não se
tornasse grande demais na inserção, devemos garantir que ele não
torne-se pequeno demais, ou seja, deve sempre ter pelo menos t-1
elementos
 Sendo assim, seguiremos para os casos de remoção de chaves
 Existem 6 casos possíveis para a remoção de uma chave de uma
árvore-B:
 Caso 1: Se a chave k estiver numa folha da árvore e a folha possui
pelo menos t chaves, remove-se a chave da árvore
23
 Caso 2: Se a chave k está num nó interno x o seguinte deve ser feito:
a) Se o filho y que precede k no nó x possui pelo menos t
chaves, encontre o predecessor k′ de k na sub-árvore com raiz
em y. Remova k′ do nó filho e substitua k por k′ no nó atual
b) Simetricamente, se o filho z que sucede k no nó x possui pelo
menos t chaves, encontre o sucessor k′ de k na sub-árvore com
raiz em z. Remova k′ do nó filho e substitua k por k′ no nó atual
Se a chave k está num nó interno x o seguinte deve ser feito:
c) Caso ambos y e z possuem somente t-1 chaves, copie todos os
elementos de z em y , libere a memória ocupada por z e remova
o apontador em x e remova k de x.
24
25
26
27
Faculdade de Ciências Humanas, Saúde, Exatas
e Jurídicas de Teresina
Referência:
CORMEN, Thomas H.; LEISERSON, Charles E.;
RIVEST, Ronald L.; STEIN, Clifford. Algoritmos: Teoria e
Prática. 2 ed. Editora Campus, São Paulo. 2002.
Discentes: Igor Monteiro kijigor@hotmail.com
Luis Fellipe fellipecastro13@hotmail.com
Marcelo Kelle marcelo_kcs@hotmail.com
Copyright 2013.1

Weitere ähnliche Inhalte

Was ist angesagt?

Árvores: Conceitos e binárias
Árvores:  Conceitos e bináriasÁrvores:  Conceitos e binárias
Árvores: Conceitos e binárias
Sérgio Souza Costa
 
Estrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasEstrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores Binárias
Adriano Teixeira de Souza
 
Arboles B y Arboles B+
Arboles B y Arboles B+Arboles B y Arboles B+
Arboles B y Arboles B+
neltherdaza
 
Ficha 5 - bastidores e cablagem estruturada
Ficha 5 - bastidores e cablagem estruturada Ficha 5 - bastidores e cablagem estruturada
Ficha 5 - bastidores e cablagem estruturada
nunesgilvicente
 

Was ist angesagt? (20)

Introdução à computação - Aula 11 - Banco de Dados (Definições gerais, SGBD)
Introdução à computação - Aula 11 - Banco de Dados (Definições gerais, SGBD)Introdução à computação - Aula 11 - Banco de Dados (Definições gerais, SGBD)
Introdução à computação - Aula 11 - Banco de Dados (Definições gerais, SGBD)
 
Árvores: Conceitos e binárias
Árvores:  Conceitos e bináriasÁrvores:  Conceitos e binárias
Árvores: Conceitos e binárias
 
Linux - Servidor Web Apache
Linux - Servidor Web ApacheLinux - Servidor Web Apache
Linux - Servidor Web Apache
 
Conceitos iniciais de Active Directory
Conceitos iniciais de Active DirectoryConceitos iniciais de Active Directory
Conceitos iniciais de Active Directory
 
Rocksdb vs boltdb
Rocksdb vs boltdbRocksdb vs boltdb
Rocksdb vs boltdb
 
Estrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores BináriasEstrutura de dados em Java - Árvores Binárias
Estrutura de dados em Java - Árvores Binárias
 
Árvore Binária
Árvore BináriaÁrvore Binária
Árvore Binária
 
Servidores Web
Servidores Web Servidores Web
Servidores Web
 
Arboles B y Arboles B+
Arboles B y Arboles B+Arboles B y Arboles B+
Arboles B y Arboles B+
 
Aula 4 - Sistemas Gerenciadores de Banco de Dados
Aula 4 - Sistemas Gerenciadores de Banco de DadosAula 4 - Sistemas Gerenciadores de Banco de Dados
Aula 4 - Sistemas Gerenciadores de Banco de Dados
 
Ficha 5 - bastidores e cablagem estruturada
Ficha 5 - bastidores e cablagem estruturada Ficha 5 - bastidores e cablagem estruturada
Ficha 5 - bastidores e cablagem estruturada
 
Introdução à Segurança de Redes
Introdução à Segurança de RedesIntrodução à Segurança de Redes
Introdução à Segurança de Redes
 
Árvores Rubro Negra
Árvores Rubro NegraÁrvores Rubro Negra
Árvores Rubro Negra
 
Dicas de como usar o winrar
Dicas de como usar o winrarDicas de como usar o winrar
Dicas de como usar o winrar
 
MODELOS DE DADOS - Parte 1 introdução
MODELOS DE DADOS - Parte 1 introduçãoMODELOS DE DADOS - Parte 1 introdução
MODELOS DE DADOS - Parte 1 introdução
 
Servidor apache
Servidor apacheServidor apache
Servidor apache
 
Árvores Balanceadas AVL
Árvores Balanceadas AVLÁrvores Balanceadas AVL
Árvores Balanceadas AVL
 
Arboles b
Arboles bArboles b
Arboles b
 
Árvores balanceadas - AVL
Árvores balanceadas - AVLÁrvores balanceadas - AVL
Árvores balanceadas - AVL
 
Redis
RedisRedis
Redis
 

Andere mochten auch

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
Leewan Meneses
 
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 dados
Filipe Simão Kembo
 
Aula 4 (tecnologias de armazenamento)
Aula 4 (tecnologias de armazenamento)Aula 4 (tecnologias de armazenamento)
Aula 4 (tecnologias de armazenamento)
Evandro Júnior
 
Dispositivos e Periféricos de Armazenamento: Pen Drives e Cartões de Memória
Dispositivos e Periféricos de Armazenamento: Pen Drives e Cartões de MemóriaDispositivos e Periféricos de Armazenamento: Pen Drives e Cartões de Memória
Dispositivos e Periféricos de Armazenamento: Pen Drives e Cartões de Memória
Sara Coelho
 

Andere mochten auch (18)

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
 
Arvores
ArvoresArvores
Arvores
 
Armazenamento de dados Sistema de Informacao
Armazenamento de dados   Sistema de InformacaoArmazenamento de dados   Sistema de Informacao
Armazenamento de dados Sistema de Informacao
 
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
 
Dispositivos de Armazenamento
Dispositivos de ArmazenamentoDispositivos de Armazenamento
Dispositivos de Armazenamento
 
Dispositivos de armazenamento
Dispositivos de armazenamentoDispositivos de armazenamento
Dispositivos de armazenamento
 
Aula 4 (tecnologias de armazenamento)
Aula 4 (tecnologias de armazenamento)Aula 4 (tecnologias de armazenamento)
Aula 4 (tecnologias de armazenamento)
 
Dispositivos e Periféricos de Armazenamento: Pen Drives e Cartões de Memória
Dispositivos e Periféricos de Armazenamento: Pen Drives e Cartões de MemóriaDispositivos e Periféricos de Armazenamento: Pen Drives e Cartões de Memória
Dispositivos e Periféricos de Armazenamento: Pen Drives e Cartões de Memória
 
Apostila 8 sistema de arquivos
Apostila 8   sistema de arquivosApostila 8   sistema de arquivos
Apostila 8 sistema de arquivos
 
Armazenamento
ArmazenamentoArmazenamento
Armazenamento
 

Mehr von Marcelo Carvalho (6)

Rede de Computadores - Cabo Coaxial
Rede de Computadores - Cabo CoaxialRede de Computadores - Cabo Coaxial
Rede de Computadores - Cabo Coaxial
 
O caixeiro viajante é np completo
O caixeiro viajante é np completoO caixeiro viajante é np completo
O caixeiro viajante é np completo
 
Ação de um campo magnético sobre cargas elétricas & fontes de campo magnético
Ação de um campo magnético sobre cargas elétricas & fontes de campo magnéticoAção de um campo magnético sobre cargas elétricas & fontes de campo magnético
Ação de um campo magnético sobre cargas elétricas & fontes de campo magnético
 
Reprojeto da organização com sistemas de informação
Reprojeto da organização com sistemas de informaçãoReprojeto da organização com sistemas de informação
Reprojeto da organização com sistemas de informação
 
Memória Primária
Memória PrimáriaMemória Primária
Memória Primária
 
A consciência mítica
A consciência míticaA consciência mítica
A consciência mítica
 

Kürzlich hochgeladen

Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
AntonioVieira539017
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
CleidianeCarvalhoPer
 
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptxSlide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
edelon1
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
WagnerCamposCEA
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
LeloIurk1
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
LeloIurk1
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
rosenilrucks
 

Kürzlich hochgeladen (20)

Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
Antero de Quental, sua vida e sua escrita
Antero de Quental, sua vida e sua escritaAntero de Quental, sua vida e sua escrita
Antero de Quental, sua vida e sua escrita
 
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptxSlide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
 
Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...
Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...
Modelo de Plano Plano semanal Educação Infantil 5 anossemanal Educação Infant...
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
 
Projeto Nós propomos! Sertã, 2024 - Chupetas Eletrónicas.pptx
Projeto Nós propomos! Sertã, 2024 - Chupetas Eletrónicas.pptxProjeto Nós propomos! Sertã, 2024 - Chupetas Eletrónicas.pptx
Projeto Nós propomos! Sertã, 2024 - Chupetas Eletrónicas.pptx
 

Árvore B

  • 1. Faculdade de Ciências Humanas, Saúde, Exatas e Jurídicas de Teresina Turma: Ciência da Computação Período: 4º - Manhã Disciplina: Pesquisa e Ordenação Docente: Willame Pereira Discentes: Igor Monteiro Luis Fellipe Marcelo Kelle Copyright 2013.1
  • 2. 1. Overview; 2. Armazenamento Secundário; 3. Definição da Árvore-B. Copyright 2013.1
  • 3.  São árvores balanceadas, desenvolvidas para otimizar o acesso a armazenamento secundário  Os nós da árvore B podem ter muitos filhos. Esse fator de ramificação é determinante para reduzir o número de acessos a disco. Árvores B são balanceadas, ou seja, sua altura é O(lg(n))  Árvores B são generalizações de árvores binárias balanceadas 3
  • 4.  Atualmente o armazenamento estável é feito em discos magnéticos, e o custo de cada acesso (da ordem de milisegundos) é muito alto quando comparado ao acesso à memória RAM (ordem de nano segundos)  Toda vez que um acesso é feito, deve-se aproveita-lo da melhor maneira possível, trazendo o máximo de informação relevante  A quantidade de dados utilizados numa árvore B obviamente não cabem na memória de uma só vez, por isso é necessário paginá-la  Especializações são feitas de acordo com as necessidades da aplicação. O fator de ramificação, por exemplo, pode variar de 3 a 2048 por exemplo (dependendo do buffer dos discos e do tamanho das páginas de memória alocados pelo SO) 4
  • 5.  Atualmente o armazenamento estável é feito em discos magnéticos, e o custo de cada acesso (da ordem de milissegundos) é muito alto quando comparado ao acesso à memória RAM (ordem de nano segundos)  Toda vez que um acesso é feito, deve-se aproveita-lo da melhor maneira possível, trazendo o máximo de informação relevante  A quantidade de dados utilizados numa árvore B obviamente não cabem na memória de uma só vez, por isso é necessário paginá-la  Especializações são feitas de acordo com as necessidades da aplicação. O fator de ramificação, por exemplo, pode variar de 3 a 2048 por exemplo (dependendo do buffer dos discos e do tamanho das páginas de memória alocados pelo SO) 5
  • 6.  Na grande maioria dos sistemas, o tempo de execução de um algoritmo de árvore B é determinado pelas leituras e escritas no disco  Um fator de ramificação alto reduz drasticamente a altura da árvore. Tomemos o exemplo: 6
  • 7.  Consideraremos que o os dados dos registros sejam guardados junto com a chave da árvore. Se estivéssemos usando uma árvore B+, os registros ficariam todos nas folhas: 7
  • 8. 8
  • 9. 9
  • 10. 10
  • 11. 4. Busca por Elemento; 5. Inserção de Elemento; 6. Separação de Nós. Copyright 2013.1
  • 12.  A busca em uma árvore-B é similar à busca em uma árvore binária, só que ao invés de uma bifurcação em cada nó, temos vários caminhos a seguir de acordo com o número de filhos do nó  O algoritmo de busca na árvore é uma generalização da busca em uma árvore binária  A função B-TREE-SEARCH recebe o apontador para o nó raiz (x) e a chave k sendo procurada  Se a chave k pertencer à árvore o algoritmo retorna o nó ao qual ela pertence e o índice dentro do nó correspondente à chave procurada, caso contrário, retorna NIL 12
  • 13. 13
  • 14. 14
  • 15.  A inserção nas árvores-B são relativamente mais complicadas, pois precisamos inserir a nova chave no nó correto da árvore, sem violar suas propriedades  Como proceder se o nó estiver cheio?  Caso o nó esteja cheio, devemos separar (split) o nó ao redor do elemento mediano, criando 2 novos nós que não violam as definições da árvore  O elemento mediano é promovido, passando a fazer parte do nó pai daquele nó  A inserção é feita em um único percurso na árvore, a partir da raiz até uma das folhas 15
  • 16. 16
  • 17. 17
  • 18. 7. Inserção com Split; 8. Remoção de Chaves; 9. Complexidade da remoção. Copyright 2013.1
  • 19.  Dessa maneira, em uma única passagem pela árvore, da raiz às folhas, inserimos uma determinada chave, dividindo (splits) cada nó da árvore que encontrarmos no caminho, caso o nó esteja cheio  O código a seguir faz uso de B-TREE-INSERT-NONFULL: 19
  • 20. B-TREE-INSERT(T, k) 1. r ← root[T] 2. if n[r] = 2t−1 then 3. s ← ALLOCATE-NODE() 4. root[T] ← s 5. leaf [s] ← FALSE 6. n[s] ← 0 7. c1[s] ← r 8. B-TREE-SPLIT-CHILD(s, 1, r) 9. B-TREE-INSERT-NONFULL(s, k) 10. else B-TREE-INSERT-NONFULL(r, k)  B-TREE-INSERT-NONFULL insere a chave k no nó x, caso este seja uma folha, caso contrário, procura o filho adequado e desce à ele recursivamente até encontrar a folha onde deve inserir k 20
  • 21. 21
  • 22. 22
  • 23.  A remoção de uma chave é análoga à inserção, porém com alguns complicadores, já que uma chave pode ser removida de qualquer nó, seja ele raiz ou não  Assim como na inserção, precisamos garantir que, ao removermos a chave as propriedades da árvore-B não sejam violadas  Da mesma maneira que tivemos de garantir que um nó não se tornasse grande demais na inserção, devemos garantir que ele não torne-se pequeno demais, ou seja, deve sempre ter pelo menos t-1 elementos  Sendo assim, seguiremos para os casos de remoção de chaves  Existem 6 casos possíveis para a remoção de uma chave de uma árvore-B:  Caso 1: Se a chave k estiver numa folha da árvore e a folha possui pelo menos t chaves, remove-se a chave da árvore 23
  • 24.  Caso 2: Se a chave k está num nó interno x o seguinte deve ser feito: a) Se o filho y que precede k no nó x possui pelo menos t chaves, encontre o predecessor k′ de k na sub-árvore com raiz em y. Remova k′ do nó filho e substitua k por k′ no nó atual b) Simetricamente, se o filho z que sucede k no nó x possui pelo menos t chaves, encontre o sucessor k′ de k na sub-árvore com raiz em z. Remova k′ do nó filho e substitua k por k′ no nó atual Se a chave k está num nó interno x o seguinte deve ser feito: c) Caso ambos y e z possuem somente t-1 chaves, copie todos os elementos de z em y , libere a memória ocupada por z e remova o apontador em x e remova k de x. 24
  • 25. 25
  • 26. 26
  • 27. 27
  • 28. Faculdade de Ciências Humanas, Saúde, Exatas e Jurídicas de Teresina Referência: CORMEN, Thomas H.; LEISERSON, Charles E.; RIVEST, Ronald L.; STEIN, Clifford. Algoritmos: Teoria e Prática. 2 ed. Editora Campus, São Paulo. 2002. Discentes: Igor Monteiro kijigor@hotmail.com Luis Fellipe fellipecastro13@hotmail.com Marcelo Kelle marcelo_kcs@hotmail.com Copyright 2013.1