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

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

Á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

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

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

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

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

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

Árvores B Partes I e II

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

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

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

Indexação de Arquivos III:

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

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

Indexação de Arquivos II:

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

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

Chaves. Acesso a Registros. Chaves Primária e Secundária. Chaves Primária e Secundária

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

Acesso a registros. Acesso a Registros. Acesso a registros. Chaves. Forma Canônica da Chave. Forma Canônica da Chave

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

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

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

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

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

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

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

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

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

Organização de arquivos para desempenho. Manutenção de Arquivos. Compressão de dados. Compressão. Notação diferenciada. Técnicas

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

Ordenação e Busca em Arquivos

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

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

Manutenção de Arquivos

Acesso Sequencial Indexado

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

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

Armazenamento em disco com uso de índices

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

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

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

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

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

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

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

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

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

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

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

Arquivos. Fundamentos de Arquivos. Discos X Memória Principal. Memória Secundária x Principal. Informação mantida em memória secundária (externa)

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

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

INF 1010 Estruturas de Dados Avançadas

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

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

Armazenamento Secundário

HDs. Armazenamento Secundário. HDs. Capacidade do Disco. Organização de Informação em Disco. Organização de Informação em Disco

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

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

Hashing convencional...

ORGANIZAÇÃO DE ARQUIVOS INDEXADOS

Métodos de Busca Parte 1

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

Algoritmos e Estruturas de Dados II. Ordenação Externa II. Ordenação Externa. Ordenação Externa. Ordenação Externa

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

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

Segundo Trabalho Prático

Árvores Genéricas de Busca

Dados espaciais Árvores R

Otimização de Consultas Baseada em Custo. Cristina Dutra de Aguiar Ciferri

Árvores B (Parte III)

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

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

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

Busca em Memória Primária Estrutura de Dados II

Busca em Memória Primária Estrutura de Dados II

Listas de Prioridade. Fonte de consulta: Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC.

Primeira Parte do Trabalho Prático (Parte I) Valor: 40% Descrição do arquivo de dados

Á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:

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!

ALGORITMOS DE ORDENAÇÃO

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

Aplicações de listas Outras estruturas

Introdução Métodos de Busca Parte 1

Organização de Arquivos

Á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

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

EAD ARVORE BINÁRIA - ARMAZENAMENTO NÃO SEQUENCIAL COM VETORES

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

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

Estrutura de Dados Listas

Banco de Dados. Módulo 15 - Estruturas de Indexação

Transcrição:

Algoritmos e struturas de Dados II Árvores B Parte VI Árvores B+ Adaptado dos Originais de: Prof. Debora Medeiros Ricardo J. G. B. Campello Cristina Dutra de Aguiar Ciferri Acesso a Arquivos Alternativas (até o momento) acesso indexado registros localizados por uma chave em um arquivo de índice auxiliar (p. ex. Árvore B) acesso seqüencial registros percorridos seqüencialmente ao longo do arquivo lógico. Pode ser de 2 tipos: ordenado: se arquivo for mantido ordenado não ordenado: caso contrário Acesso Seqüencial & Indexado m muitas aplicações, é desejável que se possa fazer ambos os acessos indexado e seqüencial ordenado Processamentos co-seqüenciais demandam arquivos ordenados Consultas por chave eficientes demandam arquivos indexados Por exemplo: Arquivo da Seção de Graduação Processamento das matrículas (acesso seqüencial ordenado) Consulta a histórico escolar de um aluno pelo No. USP (acesso indexado) Arquivo de Operadora de Cartão de Crédito Processamento das faturas (acesso seqüencial ordenado) Consulta ao status do cartão (acesso indexado) Questão Já sabemos que o custo de manter o arquivo principal ordenado registro a registro em função de uma chave é usualmente inaceitável Como então conseguir realizar acesso seqüencial & indexado??? Problema Foco 1 manter os registros ordenados logicamente em função da chave, de forma eficiente Solução organizar registros em blocos um bloco consiste na unidade básica de L/ e deve ter seu tamanho determinado de forma que leituras e escritas demandem um único acesso Características Uso de Blocos o conteúdo (conjunto de registros) de cada bloco está ordenado e pode ser recuperado em um acesso registros podem ser de tamanho fixo ou variável nesse curso discutiremos apenas o caso de tamanho fixo 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 seqüencial ao arquivo principal

xemplo de Uso de Blocos Por simplicidade apenas as chaves estão sendo mostradas Problema 1 Inserção de Registros: pode provocar overflow em um bloco Solução... Problema 1 xemplo: Inserção de CARTR Inserção de Registros: pode provocar overflow em um bloco Solução 1 (redistribuição): redistribuir registros, movendo-os entre blocos logicamente adjacentes desde que haja espaço disponível BYNUM... CART... COL... DAVS... DNVR... LLIS... VRIT... xemplo: Inserção de CARTR Problema 1 BYNUM... CART... COL... DAVS... DNVR... LLIS... VRIT... Inserção de Registros: pode provocar overflow em um bloco Solução 2... BYNUM... CART... CARTR... COL... DAVS... DNVR... LLIS... VRIT...

Problema 1 xemplo: Inserção de CAG Inserção de Registros: pode provocar overflow em um bloco Solução 2 (split): dividir o bloco processo similar ao realizado em Árvores B passos divide os registros entre os dois blocos rearranja os ponteiros não existe promoção! BYNUM... CART... CARTR... COL... DAVS... DNVR... LLIS... VRIT... xemplo: Inserção de CAG Problema 2 BYNUM... CART... CARTR... COL... DAVS... DNVR... LLIS... VRIT... Remoção de Registros: pode provocar underflow em um bloco Solução... BYNUM... CAG... CART... DAVS... DNVR... LLIS... VRIT... CARTR... COL... Problema 2 xemplo: Remoção de COL Remoção de Registros: pode provocar underflow em um bloco Solução 1 (concatenação) concatenar o bloco com o seu antecessor ou sucessor na seqüência lógica desde que um deles esteja com apenas ~metade da sua capacidade máxima BYNUM... CAG... CART... DAVS... DNVR... LLIS... VRIT... CARTR... COL...

xemplo: Remoção de COL Problema 2 BYNUM... CAG... CART... DAVS... DNVR... LLIS... VRIT... CARTR... COL... Remoção de Registros: pode provocar underflow em um bloco Solução 2... BYNUM... CAG... CART... CARTR... DAVS... DNVR... LLIS... VRIT... disponível para uso Problema 2 xemplo: Remoção de COL Remoção de Registros: pode provocar underflow em um bloco Solução 2 (redistribuição) redistribuir registros, movendo-os entre blocos logicamente adjacentes desde que haja registros adicionais disponíveis BYNUM... CAG... CART... DAVS... DNVR... LLIS... VRIT... CARTR... COL... xemplo: Remoção de COL Nota BYNUM... CAG... CART... DAVS... DNVR... LLIS... VRIT... CARTR... COL... Ao contrário do que ocorre nos arquivos de índice em Árvores B, aqui a concatenação pode ser preferida à redistribuição, porque libera espaço no arquivo principal BYNUM... CAG... CART... DNVR... LLIS... VRIT... CARTR... DAVS...

Foco 2 Situação os registros podem agora ser acessados seqüencialmente, em ordem (da chave) Problema como localizar eficientemente um bloco com um registro particular, dada a sua chave??? Soluções índice simples para referenciar os blocos Árvore-B+ Índice Simples (Tabela) visão lógica ADAMS-BRN BOLN-CAG CAMP-DUTTON MBRY-VANS FABR-FOLK Índice Simples (Tabela) Índice Simples ADAMS-BRN BOLN-CAG CAMP-DUTTON MBRY-VANS FABR-FOLK Chave RRN do Bloco BRN 1 CAG 2 DUTTON 3 VANS 4 FOLK 5 GADIS 6 Índice Linear: visão lógica registros de tamanho fixo contêm chave para o último registro do bloco (chave delimitadora) xercício: Apresente o índice para cada um dos exemplos vistos anteriormente, antes e depois de cada inserção ou remoção Acesso Seqüencial & Indexado Linearmente Combina registros ordenados pela chave, em blocos índice linear simples para indexar os blocos Restrição acesso indexado eficiente presume que o índice cabe todo em memória primária busca binária no índice em RAM atualização do índice em RAM Observação Cada chave delimitadora no índice não possui o papel tradicional de chave que indexa um registro específico mas apenas o papel de separação de blocos Logo, pode se utilizar separadores mais simples ao invés das chaves em si separadores mínimos

Separadores Mínimos Separadores Mínimos No. mínimo de caracteres que diferencia entre as chaves de dois blocos adjacentes xemplo: BO CAM F FOLKS ADAMS-BRN BOLN-CAG CAMP-DUTTON MBRY-VANS FABR-FOLK Tabela de decisão: chave de busca x separador chave < separador chave = separador chave > separador decisão procure à esquerda procure à direita procure à direita Separadores Mínimos No caso de índices simples o uso de separadores mínimos ao invés das chaves não traz benefícios sses separadores, no entanto, podem beneficiar índices paginados que operam com quantidades variáveis de itens por páginas separadores menores mais separadores nas páginas Árvores B+ são um exemplo desse tipo de índice no. de separadores nas páginas altura da árvore Apesar disso, para discutir os fundamentos dessas árvores, consideraremos no. fixo de itens por página Árvore B+ Pré-Fixada strutura Híbrida: arquivo principal blocos de registros ordenados por chave separadores organizados como Árvore-B Como ficaria exemplo anterior Árvore B+ Pré-Fixada Manutenção Árvore B+ Pré- Fixada de Ordem 3 Cenários inserção remoção overflow underflow feitos colaterais arquivo principal árvore-b+ ADAMS-BRN BOLN-CAG CAMP-DUTTON MBRY-VANS FABR-FOLK

Remoção de MBRY Remoção de MBRY ADAMS-BRN BOLN-CAG CAMP-DUTTON MBRY-VANS FABR-FOLK ADAMS-BRN BOLN-CAG CAMP-DUTTON RVIN-VANS FABR-FOLK feito no Arquivo Principal limitado a alterações internas ao Remoção de MBRY Remoção de FOLKS ADAMS-BRN BOLN-CAG CAMP-DUTTON RVIN-VANS FABR-FOLK ADAMS-BRN BOLN-CAG CAMP-DUTTON RVIN-VANS FABR-FOLK feito na Árvore B+ nenhum: permanece um bom separador Remoção de FOLKS Remoção de FOLKS ADAMS-BRN BOLN-CAG CAMP-DUTTON RVIN-VANS FABR-FOLK ADAMS-BRN BOLN-CAG CAMP-DUTTON RVIN-VANS FABR-FOLK feito no Arquivo Principal limitado a alterações internas ao bloco 6 feito na Árvore B+ nenhum: FOLKS permanece um bom separador

Inserção de ATON Inserção de ATON espaço disponível no bloco espaço disponível no bloco ADAMS-BRN BOLN-CAG CAMP-DUTTON RVIN-VANS FABR-FOLK ADAMS-BRN BOLN-CAG CAMP-DUTTON ATON-VANS FABR-FOLK feito no Arquivo Principal limitado a alterações internas ao Inserção de ATON Inserção de AVRY espaço disponível no bloco split no ADAMS-BRN BOLN-CAG CAMP-DUTTON ATON-VANS FABR-FOLK ADAMS-BRN BOLN-CAG CAMP-DUTTON ATON-VANS FABR-FOLK feito na Árvore B+ nenhum: permanece um bom separador Inserção de AVRY Inserção de AVRY BO split no BO split no AY CAM F FOLKS AY CAM F FOLKS ADAMS- AVRY AYRS- BRN BOLN- CAG CAMP-DUTTON ATON-VANS FABR-FOLK 1 7 2 3 4 5 6 feito no Arquivo Principal Registros do Bloco 1 + AVRY são distribuídos entre os blocos 1 e 7 ADAMS- AVRY AYRS- BRN BOLN- CAG CAMP-DUTTON ATON-VANS FABR-FOLK 1 7 2 3 4 5 6 feito na Árvore-B+ separador adicional AY inserido na Árvore

Remoção de CAL Remoção de CAL BO underflow no underflow no AY CAM F FOLKS AY BO F FOLKS ADAMS- AVRY AYRS- BRN BOLN- CAG CAMP-DUTTON ATON-VANS FABR-FOLK 1 7 2 3 4 5 6 ADAMS-AVRY AYRS-BRN BOLN-DUTTON ATON-VANS FABR-FOLK 1 7 2 4 5 6 feito no Arquivo Principal concatenação dos blocos 2 e 3 Remoção de CAL Inserção e Remoção AY BO F FOLKS underflow no Primeiro Passo: Arquivo Principal inserir ou remover o registro tratar, caso necessário ADAMS-AVRY AYRS-BRN BOLN-DUTTON ATON-VANS FABR-FOLK split 1 7 2 4 5 6 feito na Árvore B+ remoção de CAM e concatenação concatenação redistribuição Inserção e Remoção Segundo Passo: Árvore B+ se split no arquivo principal inserir um novo separador no índice se concatenação no arquivo principal remover um separador do índice se redistribuição no arquivo principal alterar o valor do separador no índice xercícios

xercícios 1. Quais os separadores dos blocos? Respostas 1. Quais os separadores dos blocos? BYNUM... CART... COL... DAVS... DNVR... LLIS... FOLK... FRANK... BYNUM... CART... COL... DAVS... 2. Construa a Árvore B+ correspondente 3. Realize as seguintes operações () a) inserção de CARTR b) inserção de DRAG c) remoção de BIXBY d) remoção de COL DNVR... LLIS... FOLK... FRANK... BY D Respostas Respostas 3. Inserção de CARTR BY D CO BY D BYNUM... CART... COL... DAVS... DNVR... LLIS... FOLK... FRANK... BYNUM... CART... CARTR... DNVR... LLIS... FOLK... FRANK... COL... DAVS... Respostas 3. Inserção de DRAG () CO BY D F Respostas 3. Remoção de BIXBY CO BY D F ADAMS... BAIRD... BOON... BYNUM... CART... CARTR... BYNUM... CART... CARTR... DNVR... DRAG... LLIS... DNVR... DRAG... LLIS... COL... DAVS... COL... DAVS... bloco 5 FOLK... FRANK... bloco 5 FOLK... FRANK...

Respostas 3. Remoção de COL () Bibliografia BY D F M. J. Folk and B. Zoellick, File Structures: A Conceptual Toolkit, Addison Wesley, 1987. ADAMS... BAIRD... BOON... BYNUM... CART... CARTR... DAVS... DNVR... DRAG... LLIS... bloco 5 FOLK... FRANK... 62