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

Documentos relacionados
indexação e hashing Construção de Índices e Funções Hash Diego Gomes Tomé - MSc. Informática Orientador: Prof. Dr. Eduardo Almeida October 13, 2016

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

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

Modelo Relacional. Josino Rodrigues

Bases de Dados. Índices. Discos. transferência lenta. transferência rápida e em blocos (512B ~ 4KB) e aos bytes. memória.

ACH2024. Aula 22 Hashing Externo - Hashing estático e dinâmico (extensível) Prof Helton Hideraldo Bíscaro

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

Bases de Dados. Índices. Discos. transferência rápida e aos bytes. transferência lenta e em blocos (512B ~ 4KB) memória. disco BD / aplicação

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

Cap. 5 Indexação Baseada em Hashing

GBC053 Gerenciamento de Banco de Dados Índices baseados em Hash

INF 1010 Estruturas de Dados Avançadas

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

Organização de Arquivos

Chapter 11: Indexing and Hashing. José Alferes Sistemas de Bases de Dados - ISCTEM janeiro de 2017

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

Tabelas Hash. informação, a partir do conhecimento de sua chave. Hashing é uma maneira de organizar dados que:

Bit (Binary Digit) é a menor unidade de armazenamento de informação dentro do computador; Byte é a união de 8 bits capaz de representar 256

Métodos de Busca Parte 1

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

Árvores. Árvores M-Vias. Métodos de Pesquisa de Dados. de Pesquisa (ANP) VANTAGENS EXEMPLO

Tabelas de dispersão/hash

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

Hashing convencional...

HASHING HASHING 6/10/2008

Unidade 5 Armazenamento e Indexação

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

11/8/2010. Tópicos. Organização e Indexação de Dados em Memória Secundária

Estrutura de indexação de arquivos

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

HASHING Hashing Motivação - Acesso Direto:

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

Classificação e Pesquisa de Dados. Aula 23 Organização de Arquivos: Arquivos Indexados, Diretos e Arquivos Invertidos

Á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

ANÁLISE E PROJETO DE BANCO DE DADOS

Tabela Hash. Disciplina de Algoritmos e Estrutura de Dados III. Prof. Marcos Antonio Schreiner 15/05/2015

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

Introdução Métodos de Busca Parte 1

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

TAD dicionário. Métodos do TAD dicionário:

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

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 B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura

Dicionários. TAD Orientado a conteúdo

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

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

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

Árvores B. Árvore B (ou melhor B+)

Árvores - Conceitos. Roseli Ap. Francelin Romero

Sumário. Índices Ordenados: Nível Único. Índices Primários. Bancos de Dados Avançados Índices. Índices: Ordenados em nível único Multiníveis

Tabelas Hash O Que é uma Tabela Hash? O Que é uma Tabela Hash? O Que é uma Tabela Hash? Inserindo um Novo Registro. O Que é uma Tabela Hash?

Árvores Genéricas de Busca

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

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

BANCO DE DADOS Índices em BD Árvores B+

Aula 32: Encadeamento interior. Modelo de encadeamento interior. Algoritmo de busca por encadeamento interior

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

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

Algoritmos de pesquisa. Tabelas de dispersão/hash

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

TABELAS DE DISPERSÃO/HASH

Estrutura de Índices para Arquivos. Jhonata Rodrigo de Peder Marcelo Schuck

Árvores de Pesquisa (Parte I)

Matrizes esparsas: definição

Estrutura de Dados Listas

Banco de Dados I Módulo V: Indexação em Banco de Dados. (Aulas 1, 2 e 3) Clodis Boscarioli

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

Universidade de São Paulo

Tabelas Hash. Prof. Túlio Toffolo BCC202 Aulas 23 e 24 Algoritmos e Estruturas de Dados I

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

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

SCC0601 Introdução à Ciência da Computação II. Prof. Lucas Antiqueira

Dois parâmetros essenciais t T tempo de transferência de um bloco. assume-se igual para operações de leitura e escrita

SCC Capítulo 5 Métodos de Busca [3]

A inserção da chave 6 da árvore acima resulta na árvore abaixo.

Acesso Sequencial Indexado

ESTRUTURA DE DADOS E ALGORITMOS. Árvores Binárias de Busca. Cristina Boeres

Matemática Discreta 12

Árvore B. Uma Árvore B de ordem m éumaárvore,talque: Cada nó contém no máximo m

Aula 14 Listas Duplamente Encadeadas. prof Leticia Winkler

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

Estruturas de Dados II

i a[i]

Armazenamento em disco com uso de índices

TABELA HASH. Prof. André Backes. Princípio de funcionamento dos métodos de busca

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

Árvores Rubro-Negras. Árvores Rubro-Negras. (Vermelho-Preta) Estrutura da Árvore. Estrutura da Árvore

Métodos de Pesquisa de Dados (II) Árvore N-ária de Pesquisa

Prof. Daniela Barreiro Claro

TABELAS HASH. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

Teoria da Computação. Aula 9 Pesquisa em Memória Secundária 5COP096. Aula 9 Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr

Métodos de Busca Parte 2

UNIVERSIDADE DA BEIRA INTERIOR

Tabelas de hash Acabamos de estudar como implementar uma tabela hashing aberta e estudaremos agora como implementar uma tabela hashing fechada ou

Capítulo 8: Abstrações de dados

Transcrição:

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

Tópicos Introdução Árvores-B + Hashing Hashing Expansível

Introdução Índice Primário (ou índice de clustering): índice cuja chave especifica a ordem sequencial do arquivo índice denso: há uma entrada no índice para cada valor de chave que ocorre em um registro de dados a entrada aponta para o primeiro registro que contém aquele valor de chave índice esparso: há um entrada no índice apenas para alguns valores de chave a entrada aponta para o primeiro registro que contém aquele valor de chave para localizar um registro com chave K, procura-se a entrada E do índice com o maior valor de chave menor ou igual a K e pesquisa-se o arquivo a partir do registro apontado por E

Introdução Índice Secundário: índice cuja chave não é aquela da ordem sequencial do arquivo organização: há uma entrada no índice para cada valor de chave que ocorre em um registro de dados a entrada aponta para todos os registros que contém aquele valor de chave x

Árvores-B + Definição: árvore de busca de ordem n a raíz possui no mínimo 2 filhos cada folha possui no mínimo (n-1)/2ª valores de chave cada nó interior possui no mínimo n/2ª filhos todos os ramos tem o mesmo comprimento

Árvores-B + Árvore-B de ordem n=4 85 31 40 90 92 11 12 23 31 35 40 61 70 85 87 88 90 91 92 93 94 as folhas formam um índice denso para o arquivo: contém todos os valores de chave, em ordem ascendente o ponteiro precedendo um valor de chave k aponta para um bloco de ponteiros apontando para os registros com chave k o último ponteiro de uma folha aponta para a próxima folha os nós internos formam um índice esparso para as chaves contidas nas folhas

Árvores-B + Árvore-B de ordem n=4 85 31 40 90 92 11 12 23 31 35 40 61 70 85 87 88 90 91 92 93 94 11 85 31 23 70 35 93 87 61 90 94 91 12 92 88 40

Árvores-B + Árvore-B de ordem n=4 85 31 40 90 92 11 12 23 31 35 40 61 70 85 87 88 90 91 92 93 94 [31,85) é uma "assinatura" para o conjunto {31,35,40,61,70}

Árvores-B + Inserções novo valor = 15 85 31 40 90 92 31 35 40 61 70 85 87 88 90 91 92 93 94 11 12 15 23 insere-se o novo valor 15 na folha correta, que neste caso ficará grande demais

Árvores-B + Inserções novo valor = 15 85 31 40 90 92 31 35 40 61 70 85 87 88 90 91 92 93 94 11 12 15 23 a folha é então quebrada em duas

Árvores-B + Inserção novo valor = 15 85 15 31 40 90 92 85 87 88 90 91 92 93 94 11 12 15 23 31 35 40 61 70 o primeira valor da folha da direita, que por acaso é 15, é inserido no pai, que passa a ter 1 novo filho

Árvores-B + Remoção: valor removido = 90 85 31 40 92 11 12 23 31 35 40 61 70 85 87 88 91 92 93 94 90 remove-se o valor 90 da folha correta, que neste caso ficará pequena demais

Árvores-B + Remoção: valor removido = 90 85 31 40 88 92 11 12 23 31 35 40 61 70 85 87 88 91 92 93 94 o último valor da folha da esquerda, que neste caso é 88, é inserido na folha da direita, que passa a ter o tamanho correto

Hashing Definição: memória secundária dividida em B buckets (tipicamente, B=2 n ) função de hash h mapeia as chaves em inteiros no intervalo [0,B] buckets pode ficar "cheios" (bucket overflow): use o primeiro bucket com espaço vazio (linear probing), ou crie uma lista encadeada de buckets (overflow chaining) Exemplo: h(k) = últimos 2 bits da representação binária de K 0100 bucket 00 0100 1000 1000 0001 1101 0001 1101 bucket 01 1010 bucket de overflow 1111 1010 bucket 10 1111 bucket 11

Hashing Expansível Definição função de hash gera inteiros binários com b bits i bits são usados como índice para uma tabela auxiliar para endeçamento dos buckets o valor de i cresce ou decresce com o BD cada bucket j possui um inteiro i j associado que define quantas entradas da tabela auxiliar apontam para ele 2 1...00...01...02...04 i=2 i1=1 (para o bucket 1) logo, i- i1 = 1 e há 2 1 entradas da tabela auxiliar apontando para o bucket 1 2 2 bucket 1 bucket 2 bucket 3

Hashing Expansível Inserção...00 0 0 bucket 1 ->(Brighton,A-217,750) h(brighton)=0010...00 0 0 Brighton A-217 750 bucket 1 ->(Downtown,A-101,500) h(downtown)=1010...00 0 0 Brighton A-217 750 Downtown A-101 500 bucket 1

Hashing Expansível...00 0 0 Brighton A-217 750 Downtown A-101 500 bucket 1 ->(Downtown,A-110,600) h(downtown)=1010 h(brighton)=0...00 h(downtown)=1...01 1 1 Brighton A-217 750 bucket 1 como o bucket 1 está cheio e i=i1=0, aumenta-se o número de bits de 0 para 1, duplica-se o tamanho da tabela auxiliar, divide-se o bucket 1 em dois e realocam-se os registros de acordo com o primeiro bit da função de hash 1 Downtown A-101 500 Downtown A-110 600 bucket 2

Hashing Expansível h(brighton)=0...00 h(downtown)=1...01 1 1 Brighton A-217 750 bucket 1 1 Downtown A-101 500 Downtown A-110 600 bucket 2 ->(Mianus,A-215,700) h(mianus)=1100 h(brighton)=00...00...01 2 1 Brighton A-217 750 bucket 1 h(downtown)=10...10 h(mianus)=11...11 como o bucket 2 está cheio e i=i2=1, aumenta-se o número de bits de 1 para 2, duplica-se o tamanho da tabela auxiliar, divide-se o bucket 2 em dois e realocam-se os registros de acordo com os 2 primeiros bits da função de hash 2 Downtown A-101 500 Downtown A-110 600 2 Mianus A-215 700 bucket 2 bucket 3

Hashing Expansível ->(Perryridge,A102,400) h(perryridge)=1111 ->(Perryridge,A201,900) ->(Perryridge,A218,700).000 h(brighton)=001.001 3 1 Brighton A-217 750 bucket 1.010.011.100 h(downtown)=101.101 h(mianus)=110.110 h(perryridge)=111.111 2 Downtown A-101 500 Downtown A-110 600 3 Mianus A-215 700 bucket 2 bucket 3 o terceiro registro com chave Perryridge provoca a criação de um bucket de overflow já que, como os três tem a mesma chave, não adianta aumentar o número de bits 3 Perryridge A-102 400 Perryridge A-201 900 3 Perryridge A-218 700 bucket 4 bucket 5 (overflow)