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

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

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

Á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

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

Á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

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

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

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

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

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

Á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

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

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

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

Árvores B Partes I e II

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

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

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

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

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

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

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

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

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

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

Acesso Sequencial Indexado

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

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

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

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:

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

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

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

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

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

Organização de Arquivos

Organização de Arquivos

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

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

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

Árvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral

Armazenamento em disco com uso de índices

UNIVERSIDADE DE SÃO PAULO - ICMC Departamento de Ciências da Computação SCC-203 Algoritmos e Estruturas de Dados 2-2 Sem /2012 Profa.

Árvores Genéricas de Busca

Hashing externo. Graça Nunes. Fonte: Folk & Zoelick, File Structures

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

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

Ordenação e Busca em Arquivos

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

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

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

ORGANIZAÇÃO DE ARQUIVOS INDEXADOS

Introdução Métodos de Busca Parte 1

Sistemas de Arquivos. (Aula 23)

Organização de Arquivos

Hashing convencional...

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

Organização de Arquivos. SCE-183 Algoritmos e Estruturas de Dados II

Sistemas Operacionais. Prof. André Y. Kusumoto

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?

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

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

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

Estruturas de Dados. Profº Carlos Alberto Teixeira Batista

Arquivos Indexados. Vanessa Braganholo

Aplicações de listas Outras estruturas

Capítulo 11: Implementação de Sistemas de Arquivos. Operating System Concepts 8th Edition

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

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

GBC053 Gerenciamento de Banco de Dados Índices baseados em Hash

Métodos de Busca Parte 1

Implementação de Diretórios (1)

Aplicações de listas e outras estruturas

Bases de Dados. Remoções em árvores B + Remoção em árvores B +

heapsort (int *x, int n) { int i, e, s, f, aux; /*fase de pré-processamento - cria heap inicial*/ for (i=1; i<n; i++) { e = x[i]; s = i; f = (s-1)/2;

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

ANÁLISE E PROJETO DE BANCO DE DADOS

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

Organização de Arquivos. Campos e Registros. Seqüência de Bytes (stream) Seqüência de Bytes (stream) Leandro C. Cintra Maria Cristina F.

Sumário. Sumário. Algoritmos e Estruturas de Dados II Organização de Arquivos. Organização de Arquivos. Seqüência de bytes (stream)

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

BANCO DE DADOS Índices em BD Árvores B+

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

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas

Ordenação Externa. Profa. Graça Nunes

Manutenção de Arquivos

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

Capítulo 8: Abstrações de dados

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

Aula 16. Tópicos Especiais II Banco de Dados. Prof. Dr. Dilermando Piva Jr.

Sistemas de arquivos

Árvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira

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

Transcrição:

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

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

Exemplo Arquivo indexado por um índice árvore-b acesso indexado pela chave: desempenho excelente J - ordem logarítmica acesso sequencial aos registros ordenados pela chave: desempenho péssimo L - ordem linear Arquivo com registros ordenados pela chave processamento sequencial (acessar todos regsitros): apropriado J (buferização) processamento randômico: inapropriado L - logarítimico (ordem 2)

Um Modelo Híbrido Objetivo: Organizar um arquivo de modo que seja eficiente tanto para processamento sequencial quanto aleatório

Um Modelo Híbrido Arquivo de dados é organizado em blocos de tamanho fixo, de registros sequenciais, ordenados pelas chaves, e encadeados (Sequence Set) Privilegiando o acesso sequencial bloco 1 bloco 2 bloco 3 ADAMS... BAIRD... BIXBY... BOONE... BYNUM... CART... COLE... DAVES... DENVER... ELLIS...

Um Modelo Híbrido Arquivo de índices é organizado como uma Árvore-B, cujas folhas são os blocos de registros sequenciais Privilegiando busca aleatória Páginas não folhas contêm chaves ou partes de chaves separadoras para os filhos

Árvore-B+ de prefixos simples Árvore- B E árvore-b de ordem 3 BO CAM F FOLKS ADAMS-BERNE BOLEN-CAGE CAMP-DUTTON EMBRY-EVANS FABER-FOLK FOLKS-GADIS 1 2 3 4 5 6 Blocos de registros de dados, ordenados pelas chaves

Árvores-B + Todas as chaves estão apenas nas páginas folhas; As páginas não folhas abrigam apenas separadores de chaves (prefixos mínimos de tamanhos variáveis, para economizar espaço); As páginas folhas consistem de blocos sequenciais e ordenados dos registros de dados As páginas folhas são encadeadas de modo que possam ser acessadas independentemente da árvore

Índice Simples (Tabela) Se todos os índices couberem na RAM, uma tabela poderia substituir a Árvore-B: Busca binária para encontrar a chave ADAMS-BERNE BOLEN-CAGE CAMP-DUTTON EMBRY-EVANS FABER-FOLK FOLKS-GADIS 1 2 3 4 5 6 chave bloco BERNE 1 CAGE 2 DUTTON 3 EVANS 4 FOLK 5 GADIS 6 Índice de 1 nível registros de tamanho fixo contém a chave para o último registro no bloco

Sequence Set Registros ordenados fisicamente pela chave (sequence set) Organizados como blocos de registros 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!

Problema 2 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: Inserção de CARTER bloco 1 bloco 2 bloco 3 ADAMS... BAIRD... BIXBY... BOONE... BYNUM... CART... COLE... DAVES... DENVER... ELLIS... bloco 1 bloco 2 bloco 3 bloco 4 ADAMS... BAIRD... BIXBY... BOONE... BYNUM... CART... CARTER... DENVER... ELLIS... COLE... DAVIS...

Exemplo: Remoção de DAVIS bloco 1 bloco 2 bloco 3 bloco 4 ADAMS... BAIRD... BIXBY... BOONE... BYNUM... CART... CARTER... DENVER... ELLIS... COLE... DAVIS... bloco 1 bloco 2 bloco 3 bloco 4 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 2-to-3, etc a ordem física dos registros não é necessariamente sequencial ao longo do arquivo

Index Set (Árvore-B) Para localizar eficientemente um bloco com um registro particular, dada a chave do registro Ao invés de chaves, prefixos de chaves (de tamanho variável) compõem as páginas não folhas das árvore-b

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 1 2 3 4 5 6

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

Separadores Programa para gerar separadores mínimos find_sep(char key1[], char key2[], char sep[]) { while ( (*sep++ = *key2++) == *key1++); *sep= \0 ; } Pode acontecer de o separador mínimo ser uma chave inteira

Árvore-B+ Estrutura híbrida chaves organizadas como árvore-b (i.e., index set) nós folhas consistem em blocos de sequence set Árvores-B+ de prefixos simples armazena na árvore as cadeias separadoras mínimas entre cada par de blocos usar separadores mínimos faz com que os nós possam ser maiores Necessidade de maior controle do tamanho do nó e de onde começa e termina cada cadeia separadora

Árvore-B+ de prefixos simples E árvore-b de ordem 3 BO CAM F FOLKS ADAMS-BERNE BOLEN-CAGE CAMP-DUTTON EMBRY-EVANS FABER-FOLK FOLKS-GADIS 1 2 3 4 5 6

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Inserção e Remoção Primeiro passo: Sequence Set inserir ou remover o dado tratar, caso necessário split concatenação redistribuição alterações são sempre realizadas a partir do arquivo de dados

Inserção e Remoção 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

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 Várias páginas em RAM

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

Exercícios de Árvore-B+

Características Árvore-B + (index set) ordem: 3 Blocos (sequence set) número máximo de registros: 4 número mínimo de registros: 2 underflow: 1 registro

Exercícios 1. Quais os separadores dos sequence sets? bloco 1 ADAMS... BAIRD... BIXBY... BOONE... bloco 2 bloco 3 BYNUM... CART... COLE... DAVES... DENVER... ELLIS... FOLK... FRANK... 2. Construa a árvore-b + 3. Realize as seguintes operações a) inserção de CARTER b) inserção de DRAG c) remoção de BIXBY d) remoção de COLE

Resposta 1. Quais os separadores dos sequence sets? bloco 1 bloco 2 bloco 3 ADAMS... BAIRD... BIXBY... BOONE... BYNUM... CART... COLE... DAVES... DENVER... ELLIS... FOLK... FRANK... BY DE

Resposta 2. Construa a árvore-b + BY DE bloco 1 bloco 2 bloco 3 ADAMS... BAIRD... BIXBY... BOONE... BYNUM... CART... COLE... DAVES... DENVER... ELLIS... FOLK... FRANK...

Resposta 3. inserção de CARTER CO BY DE bloco 1 bloco 2 bloco 3 bloco 4 ADAMS... BAIRD... BIXBY... BOONE... BYNUM... CART... CARTER... DENVER... ELLIS... FOLK... FRANK... COLE... DAVES...

3. inserção de DRAG Resposta CO BY DE F bloco 1 bloco 2 bloco 3 bloco 4 bloco 5 ADAMS... BAIRD... BIXBY... BOONE... BYNUM... CART... CARTER... DENVER... DRAG... ELLIS... COLE... DAVES... FOLK... FRANK...

Resposta 3. remoção de BIXBY CO BY DE F bloco 1 bloco 2 bloco 3 bloco 4 bloco 5 ADAMS... BAIRD... BOONE... BYNUM... CART... CARTER... DENVER... DRAG... ELLIS... COLE... DAVES... FOLK... FRANK...

3. remoção de COLE Resposta DE BY F bloco 1 bloco 2 bloco 3 ADAMS... BAIRD... BOONE... BYNUM... CART... CARTER... DAVES... DENVER... DRAG... ELLIS... bloco 4 bloco 5 FOLK... FRANK...