Árvore-B + Profa. Dra. Cristina Dutra de Aguiar Ciferri

Documentos relacionados
Árvores-B + Profa. Dra. Cristina Dutra de Aguiar Ciferri. Algoritmos e Estruturas de Dados II Árvore-B +

Árvore-B* Profa. Dra. Cristina Dutra de Aguiar Ciferri

Árvores-B + SCC-203 Algoritmos e Estruturas de Dados II. Graça Nunes

Árvores-B + SCC-503 Algoritmos e Estruturas de Dados II. Thiago A. S. Pardo Cristina Dutra de Aguiar Ciferri

Acesso a Arquivos. Árvores B Parte VI. Acesso Seqüencial & Indexado. Questão. Foco 1. Uso de Blocos. Árvores B+ Alternativas (até o momento)

Lista de Exercícios. Av. Trabalhador São-carlense, 400. centro. São Carlos - SP cep Brasil.

SCC Algoritmos e Estruturas de Dados II. 6ª lista de exercícios

Árvores-B (Parte IV) Leandro C. Cintra M.C.F. de Oliveira Fonte: Folk & Zoelick, File Structures

Ordem. Árvores-B (Parte IV) Número mínimo de chaves por página. Definição formal das Propriedades de árvores-b /30 1

Árvore-B. Árvore B. Características Gerais. Sistemas de Banco de Dados. Características Gerais. Revisão

Árvore B, B* e B+ Slides: Profa. Dra. CrisAna Dutra de Aguiar Ciferri. Murilo Gleyson Gazzola. ICMC- USP - Base de Dados

Árvores-B: Remoção. Cristina Dutra de Aguiar Ciferri Thiago A. S. Pardo

Algoritmo: Split. Árvores B Parte IV. Algoritmo: Split. Algoritmo: Split. Algoritmo: Split. Procedimento inicial. Parâmetros

Árvores-B (Parte II) Leandro C. Cintra M.C.F. de Oliveira Fonte: Folk & Zoelick, File Structures

Árvores B Partes I e II

Definição. Árvores B Parte III. Propriedades Gerais. Propriedade (No. Mín. de Chaves) Leandro C. Cintra Maria Cristina F.

Árvores B. Árvores B. Estrutura de Dados II Jairo Francisco de Souza

Árvores B. Árvores B. Estrutura de Dados II Jairo Francisco de Souza

Árvores-B: Remoção. Cristina Dutra de Aguiar Ciferri Thiago A. S. Pardo

Árvores-B (Parte Ib) SCC-203 Algoritmos e Estruturas de Dados II. Graça Nunes

Construção de árvores-b. Árvores-B (Parte II) Características Gerais. Características Gerais. Leandro C. Cintra M.C.F. de Oliveira

Processamento Cosequencial: Ordenação Interna e Externa. Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira Cristina D. A.

Pesquisa em Memória Secundária. Prof. Jonas Potros

Árvores B. Prof. Leandro C. Fernandes. Estruturas de Dados. Adaptado de: Leandro C. Cintra e M.C.F. de Oliveira

Árvores-B (Parte I) SCC-503 Algoritmos e Estruturas de Dados II. Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira

Árvores B. Árvores B Parte II. Características. Características. Construção Bottom-Up. Leandro C. Cintra Maria Cristina F. de Oliveira.

Tipos de Índices. Profa. Dra. Cristina Dutra de Aguiar Ciferri

Árvores B Parte IV. Revisão de Inserção. Organização. Variantes. Leandro C. Cintra Maria Cristina F. de Oliveira

Árvores B Parte III. Propriedades, Remoção & Inserção Revisitada. Adaptado e Estendido dos Originais de:

Ordenação e Busca em Arquivos

UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO

Árvores-B (Parte Ia) SCC-203 Algoritmos e Estruturas de Dados II. Graça Nunes

Árvores B. Prof. Flávio Humberto Cabral Nunes

ÁRVORE B. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

Índice. Índices. Índice simples. Em geral, um índice fornece mecanismos para localizar informações

Trabalho Prático. Primeira Parte do Trabalho (Parte I): peso 40%

Profa. Dra. Cristina Dutra de Aguiar Ciferri. Estruturas de Indexação de Dados

Quinto Trabalho Prático. Este trabalho tem como objetivo indexar arquivos de dados usando um índice árvore-b.

SCC-503 Algoritmos e Estruturas de Dados II. Modificado por Moacir Ponti Jr, do original de:

Acesso Sequencial Indexado

Victor Hugo Andrade Soares monitor João Vitor dos Santos Tristão Primeiro Trabalho Prático

Armazenamento em disco com uso de índices

B-Árvores. Siang Wun Song - Universidade de São Paulo - IME/USP. MAC Estruturas de Dados

A Invenção da B-Tree. Árvores B Parte I. Problema. Problema. Árvores Binárias de Busca. Árvores Binárias de Busca. Introdução

Segunda Parte do Trabalho Prático (Parte II) Valor: 60% Descrição do índice

ORGANIZAÇÃO DE ARQUIVOS INDEXADOS

ÁRVORE B+ Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

Árvores B. Definição: Seja t a ordem da árvore B. Uma árvore B de ordem t é uma árvore ordenada que é vazia, ou que satisfaz as seguintes condições:

Árvores Genéricas de Busca

Árvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura

Busca em Memória Secundária. Busca em Memória Secundária

A Invenção da B-Tree. Árvores B Parte I. Problema. Problema. Introdução. Leandro C. Cintra Maria Cristina F. de Oliveira. Solução?

ACH2024. Aula 16 Árvores B Parte 1. Prof Helton Hideraldo Bíscaro

Índices. SCE-203 Algoritmos e Estruturas de Dados II

Estrutura de Dados. Estrutura de Dados Recursividade. Exemplo: 5! = 5 x 4! 4! = 4 x 3! 3! = 3 X 2! 2! = 2 x 1! 1! = 1 x 0!

Indexação de Arquivos III:

ACH2025. Laboratório de Bases de Dados Aula 8. Indexação e Hashing Parte 1. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO

INF70 Gerenciamento de Banco de Dados 2 Índices baseados em Hash

Hashing Externo. SCC-503 Algoritmos e Estruturas de Dados II. Thiago A. S. Pardo M.C.F. de Oliveira Cristina Ciferri

Árvores B (Parte III)

GBC053 Gerenciamento de Banco de Dados Índices baseados em Hash

Índices. SCC-503 Algoritmos e Estruturas de Dados II. Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira

Edital de Seleção 024/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Sistemas de Arquivos. (Aula 23)

1. Em relação à organização de arquivos e índices, responda: (a) Dado um arquivo de dados, o que é a chave de um índice para o arquivo?

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ACESSO, ATRIBUTOS E OPERAÇÕES COM ARQUIVOS PROFESSOR CARLOS MUNIZ

ANÁLISE E PROJETO DE BANCO DE DADOS

ÁRVORE B+ Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

INF 1010 Estruturas de Dados Avançadas

Uso de Índices na Otimização e Processamento de Consultas. Otimização e Processamento de Consultas. Otimização e Processamento de Consultas

Segunda Parte do Trabalho Prático (Parte II) Valor: 70%

Quarto Trabalho Prático. Este trabalho tem como objetivo indexar arquivos de dados usando um índice simples ou linear. Descrição de páginas de disco

Gerência do Sistema de Arquivos. Adão de Melo Neto

Hashing convencional...

Organização de Arquivos. Campos e Registros. Seqüência de Bytes (stream) Seqüência de Bytes (stream) Seqüência de Bytes (stream)

Arquivos Indexados. Vanessa Braganholo

Segundo Trabalho Prático Turma A

Universidade Estadual do Oeste do Parana - UNIOESTE Jhonata R.de Peder Marcelo Schuck

Etapa III - Implementação de Operadores da Álgebra Relacional; Etapa IV - Comparação experimental de varredura sequencial x acesso aleatório

Operações Coseqüenciais. Processamento Coseqüencial. Modelo para implementação de processos coseqüenciais

Gerência do Sistema de Arquivos. Adão de Melo Neto

Primeiro Trabalho Prático Turma A. Descrição do Trabalho. Considere os seguintes dados a respeito de um livro:

Capítulo 8: Abstrações de dados

Processamento Coseqüencial

Sistemas de arquivos

Conceitos gerais Terminologia Forma de Representação de Árvores Árvores Binárias

Organização de Arquivos. Leandro C. Cintra M.C.F. de Oliveira Thiago A. S. Pardo Cristina D. A. Ciferri

Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 4: Listas Estáticas e Dinâmicas

Trabalho Prático. Descrição Considere os seguintes dados a respeito de uma pessoa:

Organização de Arquivos

10.1. Aula 10: Pilhas. O conceito de pilha. Algoritmos de inserção e remoção. Exemplo: Notação Polonesa

Seja d um número natural. Uma árvore B de ordem d é uma árvore ordenada que é vazia, ou que satisfaz as seguintes condições:

BANCO DE DADOS Índices em BD Árvores B+

Métodos de Busca Parte 1

Algoritmos e Estruturas de Dados II IEC013

Gerenciamento de Memória

Hashing. Hashing. Hashing versus Indexação. Hashing. Hashing convencional... Exemplo de espalhamento. Revisão...

B-tree. B-Trees. Estrutura do nodo da B-tree. Balanceamento. Disposição dos elementos ordenados na B-tree. Exemplo de uma B-tree de ordem 3

Universidade Federal do Pará Instituto de Ciências Exatas e Naturais Faculdade de Computação. Árvores Balanceadas

Transcrição:

Árvore-B + Profa. Dra. Cristina Dutra de Aguiar Ciferri

Acesso Sequencial Indexado Alternativas (até o momento) acesso indexado o arquivo pode ser visto como um conjunto de registros que são indexados por uma chave acesso sequencial Ideia o arquivo pode ser acessado sequencialmente (i.e., registros fisicamente contínuos) arquivos devem permitir acesso indexado eficiente, e também acesso sequencial

Organização dos Registros Problema manter os registros ordenados fisicamente pela chave (sequence set) Solução organizar registros em blocos um bloco consiste na unidade básica de entrada e saída e deve ter seu tamanho determinado pelo tamanho do buffer-pool

Uso de Blocos Características o conteúdo de cada bloco está ordenado, e pode ser recuperado em um acesso cada bloco mantém um ponteiro para o bloco antecessor e um ponteiro para o bloco sucessor blocos logicamente adjacentes não estão (necessariamente) fisicamente adjacentes Garante acesso sequencial ao arquivo

Problema 1 Inserção de registros pode provocar overflow em um bloco Solução dividir o bloco, em um processo análogo ao realizado em árvores-b passos divide os registros entre os dois blocos rearranja os ponteiros não existe promoção!

Exemplo: Inserção de CARTER 0 1 ADAMS... BAIRD... BIXBY... BOONE... BYNUM... CART... COLE... DAVES... DENVER... ELLIS... 0 1 3 ADAMS... BAIRD... BIXBY... BOONE... BYNUM... CART... CARTER... DENVER... ELLIS... COLE... DAVIS...

Problema Remoção de registros pode provocar underflow em um bloco Solução concatenar o bloco com o seu antecessor ou sucessor na sequência lógica redistribuir os registros, movendo-os entre blocos logicamente adjacentes

Exemplo: Remoção de DAVIS 0 1 3 ADAMS... BAIRD... BIXBY... BOONE... BYNUM... CART... CARTER... DENVER... ELLIS... COLE... DAVIS... 0 1 3 ADAMS... BAIRD... BIXBY... BOONE... BYNUM... CART... CARTER... disponível para uso COLE... DENVER... ELLIS

Uso de Blocos Custos associados devido à fragmentação gerada pelas inserções, o arquivo pode ocupar mais espaço do que um arquivo ordenado comum melhorias incluem redistribuição antes do particionamento, split -to-3, etc a ordem física dos registros não é necessariamente sequencial ao longo do arquivo

Tamanho do Bloco Consideração 1 deve permitir que diversos blocos possam ser armazenados em RAM ao mesmo tempo Consideração deve permitir que um bloco possa ser acessado sem se pagar o custo de um seek com a operação de leitura ou escrita do bloco a leitura ou a escrita de um bloco não deve consumir muito tempo

Acesso aos Registros Característica os registros podem ser acessados em ordem, sequencialmente, pela chave Problema localizar eficientemente um bloco com um registro particular, dado a chave do registro Soluções índice simples para referenciar os blocos árvore-b+

Índice Simples (Tabela) ADAMS-BERNE BOLEN-CAGE CAMP-DUTTON EMBRY-EVANS FABER-FOLK FOLKS-GADIS 0 1 3 4 5 visão lógica chave bloco BERGE 0 CAGE 1 DUTTON EVANS 3 FOLK 4 GADIS 5 Índice de 1 nível registros de tamanho fixo contém a chave para o último registro no bloco

Acesso Sequencial Indexado Combina registros ordenados fisicamente pela chave (sequence set) índice simples para referenciar os blocos Restrição a organização em tabela implica que o índice cabe na memória principal busca binária no índice atualização do índice em RAM

Separadores Características são mantidos no índice, ao invés das chaves de busca possuem tamanho variável Exemplo BO CAM E F FOLKS ADAMS-BERNE BOLEN-CAGE CAMP-DUTTON EMBRY-EVANS FABER-FOLK FOLKS-GADIS 0 1 3 4 5

Separadores Desafio escolher o menor separador para utilizar no índice Tabela de decisão chave de busca x separador chave < separador chave = separador chave > separador decisão procure à esquerda procure à direita procure à direita

Árvore-B+ Pré-Fixada Estrutura híbrida chaves organizadas como árvore-b nós folhas consistem em blocos de sequence set Pré-fixada simples armazena na árvore as cadeias separadoras mínimas entre cada par de blocos

Árvore-B+ Pré-Fixada E árvore-b de ordem 3 0 1 BO CAM F FOLKS ADAMS-BERNE BOLEN-CAGE CAMP-DUTTON EMBRY-EVANS FABER-FOLK FOLKS-GADIS 0 1 3 4 5

Manutenção Cenários inserção remoção overflow underflow Efeitos colaterais sequence set árvore-b+

Remoção de EMBRY (1/3) E sem redistribuição ou concatenação 0 1 BO CAM F FOLKS ADAMS-BERNE BOLEN-CAGE CAMP-DUTTON EMBRY-EVANS FABER-FOLK FOLKS-GADIS 0 1 3 4 5

Remoção de EMBRY (/3) E sem redistribuição ou concatenação 0 1 BO CAM F FOLKS ADAMS-BERNE BOLEN-CAGE CAMP-DUTTON ERVIN-EVANS FABER-FOLK FOLKS-GADIS 0 1 3 4 5 Efeito no sequence set limitado a alterações no bloco 3

Remoção de EMBRY (3/3) E sem redistribuição ou concatenação 0 1 BO CAM F FOLKS ADAMS-BERNE BOLEN-CAGE CAMP-DUTTON ERVIN-EVANS FABER-FOLK FOLKS-GADIS 0 1 3 4 5 Efeito na árvore-b+ nenhum: E é uma boa chave separadora

Remoção de FOLKS (1/3) E sem redistribuição ou concatenação 0 1 BO CAM F FOLKS ADAMS-BERNE BOLEN-CAGE CAMP-DUTTON ERVIN-EVANS FABER-FOLK FOLKS-GADIS 0 1 3 4 5

Remoção de FOLKS (/3) E sem redistribuição ou concatenação 0 1 BO CAM F FOLKS ADAMS-BERNE BOLEN-CAGE CAMP-DUTTON ERVIN-EVANS FABER-FOLK FROST-GADIS 0 1 3 4 5 Efeito no sequence set limitado a alterações no bloco 5

Remoção de FOLKS (3/3) E sem redistribuição ou concatenação 0 1 BO CAM F FOLKS ADAMS-BERNE BOLEN-CAGE CAMP-DUTTON ERVIN-EVANS FABER-FOLK FROST-GADIS 0 1 3 4 5 Efeito na árvore-b+ nenhum: custos elevados

Inserção de EATON (1/3) E espaço disponível no bloco 0 1 BO CAM F FOLKS ADAMS-BERNE BOLEN-CAGE CAMP-DUTTON ERVIN-EVANS FABER-FOLK FROST-GADIS 0 1 3 4 5

Inserção de EATON (/3) E espaço disponível no bloco 0 1 BO CAM F FOLKS ADAMS-BERNE BOLEN-CAGE CAMP-DUTTON EATON-EVANS FABER-FOLK FROST-GADIS 0 1 3 4 5 Efeito no sequence set limitado a alterações no bloco 3

Inserção de EATON (3/3) E espaço disponível no bloco 0 1 BO CAM F FOLKS ADAMS-BERNE BOLEN-CAGE CAMP-DUTTON EATON-EVANS FABER-FOLK FROST-GADIS 0 1 3 4 5 Efeito na árvore-b+ nenhum: E é uma boa chave separadora

Inserção de AVERY (1/3) E split no sequence set 0 0 1 BO CAM F FOLKS ADAMS-BERNE BOLEN-CAGE CAMP-DUTTON EATON-EVANS FABER-FOLK FROST-GADIS 0 1 3 4 5

Inserção de AVERY (/3) BO E split no sequence set 0 0 3 1 AY CAM F FOLKS ADAMS- AVERY AYERS- BERNE BOLEN- CAGE CAMP-DUTTON EATON-EVANS FABER-FOLK FROST-GADIS 0 6 1 3 4 5 Efeito no sequence set dados do bloco 0 + AVERY distribuídos entre os blocos 0 e 6

Inserção de AVERY (3/3) BO E split no sequence set 0 0 3 1 AY CAM F FOLKS ADAMS- AVERY AYERS- BERNE BOLEN- CAGE CAMP-DUTTON EATON-EVANS FABER-FOLK FROST-GADIS 0 6 1 3 4 5 Efeito na árvore-b+ separador adicional AY + split + promoção de chave

Remoção de CAEL (1/3) BO E underflow no sequence set 1 0 3 1 AY CAM F FOLKS ADAMS- AVERY AYERS- BERNE BOLEN- CAGE CAMP-DUTTON EATON-EVANS FABER-FOLK FROST-GADIS 0 6 1 3 4 5

Remoção de CAEL (/3) E underflow no sequence set 1 0 AY BO 1 F FOLKS ADAMS-AVERY AYERS-BERNE BOLEN-DUTTON EATON-EVANS FABER-FOLK FROST-GADIS 0 6 1 3 4 5 Efeito no sequence set concatenação dos blocos 1 e

Remoção de CAEL (3/3) E underflow no sequence set 0 AY BO 1 F FOLKS ADAMS-AVERY AYERS-BERNE BOLEN-DUTTON EATON-EVANS FABER-FOLK FROST-GADIS 0 6 1 3 4 5 Efeito na árvore-b+ remoção de CAM e concatenação de nós

Pesquisa Passos primeiro: Árvore-B + segundo: Sequence Set Inserção e Remoção iniciam-se pela pesquisa buscas são sempre realizadas a partir do arquivo arquivo de índice!

Inserção e Remoção Primeiro passo: Sequence Set inserir ou remover o dado tratar split, concatenação e redistribuição (se necessário) Segundo passo: Árvore-B + se split no sequence set, inserir um novo separador no índice se concatenação no sequence set remover um separador do índice se distribuição no sequence set alterar o valor do separador no índice inserções e remoções são sempre realizadas a partir do arquivo de dados!

Observações Adicionais Tamanho físico de um nó no índice (i.e., árvore-b + ) = Tamanho físico de um bloco no sequence set Escolha direcionada pelos mesmos quesitos tamanho do bloco características do disco quantidade de memória disponível

Observações Adicionais Tamanho físico de um nó no índice (i.e., árvore-b + ) = Tamanho físico de um bloco no sequence set Facilidade para a implementação da árvore-b + virtual Uso de um mesmo arquivo para armazenar os blocos do índice e os blocos do sequence set evita seeks entre dois arquivos separados