Cap. 5 Indexação Baseada em Hashing
|
|
|
- Ana Laura Luna Prada Castilhos
- 9 Há anos
- Visualizações:
Transcrição
1 Cap. 5 Indexação Baseada em Hashing Not cahos-like, together crushed and bruised, But, as the world harmoniously confused: Where order in variety we see. -- Alexander Pope Abel J.P. Gomes Bibliography: 1. R. Ramakrishnan and J. Gehrke. Database Management Systems. Addison-Wesley, 003 (cap.11). 1
2 1. Objectivos Intuitivamente, o que é que está por detrás dos índices baseados em hashing? Porque é que são particularmente adequados para pesquisas por igualdade, mas inúteis para selecções por gama? O que é o hashing extensível? Como é que são feitas as operações de pesquisa, inserção e eliminação? O que é o hashing linear? Como é que são feitas as operações de pesquisa, inserção e eliminação? Quais são as semelhanças e diferenças entre hashing extensível e hashing linear?
3 . Introdução A ideia base é usar uma função de hashing. Esta função mapeia um valor da chave de pesquisa (atributo duma tabela) num registo ou balde (bucket) de registos. Como para qualquer índice, há 3 alternativas para os verbetes de dados k*: registo de dados real (chave com valor k) <k, rid do registo de dados respectivo> <k, lista de rids dos registos de dados respectivo > Índices baseados em hashing são melhores para pesquisas por igualdade. Não suportam pesquisas por gama. Existem técnicas estáticas e dinâmicas de hashing; compromissos similares aos de ISAM vs. árvores B+. 3
4 3. Hashing Estático Um balde (bucket) é uma unidade de armazenamento que contém um ou mais registos (um balde é tipicamente um bloco do disco). Numa organização de ficheiro em hashing, obtemos o balde dum registo a partir do valor da sua chave de pesquisa. Mais concretamente, o balde é obtido através do cálculo da função de hash para aquela chave de pesquisa. A função de hash h é uma função do conjunto de todos os valores da chave K para o conjunto dos endereços de todos os baldes B. A função de hash é usada para localizar registos para as operações de acesso, inserção, bem como eliminação. Registos com diferentes valores de chave podem ou não ser mapeados para o mesmo balde; daí que o balde inteiro tem de ser pesquisado sequencialmente para localizar um registo específico. 4
5 3. Hashing Estático (cont.1) #de páginas primárias é fixo; as páginas são alocadas sequencialmente e nunca são desalocadas; páginas de transbordo podem ser necessárias. h(key) mod B = balde ao qual o verbete de dados com chave key pertence. (B = #de baldes) key h N-1 primary bucket pages... overflow pages 5
6 3. Hashing Estático(cont.) Baldes contêm verbetes de dados. A função de hash actua sobre a chave de pesquisa respeitante a um dos atributos do registo r. Fornece valores na gama 0,...,B-1. l l h(key)=(a*key+b) funciona normalmente bem. a e b são constantes; muito se sabe sobre como afinar h. Longas cadeias de transbordo podem desenvolver-se e degradar o desempenho. Hashing extensível e hashing linear: técnicas dinâmicas para consertar este problema. 6
7 4. Exemplo: inserções e transbordos Assuma-se que temos registos/balde e 4 baldes numerados de 0 a 3. A inserção do verbete de dados e conduz à criação de uma página de transbordo para baldes, como se ilustra na figura em baixo: INSERT: h(a) = 1 h(b) = h(c) = 1 h(d) = 0 h(e) = d a c b e 7
8 4. Exemplo: eliminações A eliminação de um verbete de dados c após e e f conduz à eliminação do balde de transbordo que contém o verbete de dados d ; d é então transladado para o balde primário 1. DELETE: e f c 0 1 a b c d d e 3 f g maybe move g up 8
9 5. Regra de Ouro Tente manter a utilização do espaço entre 50% e 80%! Utilização = # chaves usadas total # chaves utilizáveis Se <50%, há espaço desperdiçado Se > 80%, transbordos tornam-se significativos; depende de quão boa é a função de hashing & do # chaves/balde 9
10 6 Como é que se lida com o crescimento? Transbordos e reorganizações Hashing dinâmico: l Extensível l Linear 10
11 7 Hashing Extensível Situação: balde (página primária) fica cheio. Porque não re-organizar o ficheiro duplicando o # de baldes? Ler e escrever todas as páginas é dispendioso! Ideia: use directoria de ponteiros para baldes, duplique # de baldes através da duplicação da directoria, particionando justamente o balde que transbordou! Uma directoria é muito mais pequena que um ficheiro, de modo que duplicá-la é muito menos dispendioso. Só uma página de verbetes de dados é particionada. Não há lugar a páginas de transbordo! O truque reside em como a função de hashing é ajustada! 11
12 7.1 Hashing extensível: exemplo Directoria é um array de tamanho 4. Para encontrar o balde de k, tomase a última global depth do # de bits de h(k). LOCAL DEPTH GLOBAL DEPTH * 1* 3* 16* 1* 5* 1* 13* Bucket A Bucket B Por exemplo: se h(k)=5 10 =101, o verbete está no balde apontado por DIRECTORY 10* 15* 7* 19* Bucket C Bucket D DATA PAGES 1
13 7. Hashing extensível: Inserting Inserção: se balde cheio, particione-o (crie nova página e re-distribua). Se necessário, duplique a directoria. (Como veremos, particionar um balde nem sempre requer duplicação; o que podemos dizer se compararmos a global depth com a local depth do balde dividido.) Por exemplo: insira h(k)=0 (provoca duplicação) LOCAL DEPTH GLOBAL DEPTH 3*16* Bucket A LOCAL DEPTH GLOBAL DEPTH 3 3* 16* Bucket A DIRECTORY 1* 5* 1*13* 10* 15* 7* 19* 4* 1* 0* Bucket B Bucket C Bucket D Bucket A (`split image' of Bucket A) DIRECTORY 1* 5* 1*13* 10* 15* 7* 3 19* 4* 1* 0* Bucket B Bucket C Bucket D Bucket A (`split 13 image' of Bucket A)
14 FIM DE CAPÍTULO Não foi ensinado o hashing linear! Sumário Índices baseados em hashing: são melhores para pesquisas por igualdade; não suportam pesquisas por gama. Hashing estático pode conduzir a longas cadeias de transbordo. Hashing extensível evita páginas de transbordo, o que se consegue através da partição dum balde cheio quando se tenta adicionar-lhe um novo verbete de dados. (Duplicados podem requerer páginas de transbordo.) l Directoria para registar baldes é duplicada periodicamente. l Pode tornar-se grande com dados enviezados ; I/O adicionais se estes dados não cabem na memória principal. 14
ACH2024. Aula 22 Hashing Externo - Hashing estático e dinâmico (extensível) Prof Helton Hideraldo Bíscaro
ACH04 Aula Hashing Externo - Hashing estático e dinâmico (extensível) Prof Helton Hideraldo Bíscaro 1 Tipos de organização de arquivos Sequencial Lista ligada (com ou sem tabela de alocação) Indexada Um
INF70 Gerenciamento de Banco de Dados 2 Índices baseados em Hash
INF70 Gerenciamento de Banco de Dados Índices baseados em Hash Ilmério Reis da Silva [email protected] www.facom.ufu.br/~ilmerio/gbd Roteiro Fundamentos Hash Estático Hash Extensível Hash Linear Considerações
GBC053 Gerenciamento de Banco de Dados Índices baseados em Hash
GBC053 Gerenciamento de Banco de Dados Índices baseados em Hash Ilmério Reis da Silva [email protected] www.facom.ufu.br/~ilmerio/gbd UFU/FACOM/BCC UFU/FACOM/BCC GBD Página: Roteiro Fundamentos Hash
Banco de Dados. Módulo 15 - Estruturas de Indexaçã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
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
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 Universidade Federal do Paraná indexação e hashing Índices
Cap. 4 Indexação Estruturada em Árvore
Cap. 4 Indexação Estruturada em Árvore If I had eight hours to chop down a tree, I d spent sharpening my ax. -- Abraham Lincoln Abel J.P. Gomes Bibliography: 1. R. Ramakrishnan and J. Gehrke. Database
Árvores B. Hashing. Estrutura de Dados II Jairo Francisco de Souza
Árvores B Hashing Estrutura de Dados II Jairo Francisco de Souza Hashing para arquivos extensíveis Todos os métodos anteriores previam tamanho fixo para alocação das chaves. Existem várias técnicas propostas
BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar
- Aula 2 - ÍNDICE 1. INTRODUÇÃO Quando criamos a estrutura de um banco de dados temos que usar artifícios que melhorem a performance na recuperação dos dados que lá serão armazenados. Dentre várias técnicas
Hashing externo (II) Graça Nunes. Fonte: Folk & Zoelick, File Structures
Hashing externo (II) Graça Nunes Fonte: Folk & Zoelick, File Structures 1 Hashing Extensível Espalhamento Extensível (Extendible Hashing): permite um auto-ajuste do espaço de endereçamento do espalhamento
Hashing Externo. SCC-503 Algoritmos e Estruturas de Dados II. Thiago A. S. Pardo M.C.F. de Oliveira Cristina Ciferri
Hashing Externo SCC-503 Algoritmos e Estruturas de Dados II Thiago A. S. Pardo M.C.F. de Oliveira Cristina Ciferri 1 Hashing 0 1 chave de busca K = LOWELL 2 h(k) endereço 4 (RRN 4) 3 4 5... LOWELL......
Organização de Arquivos
Construção de Sistemas de Gerência de Bancos de Dados DI PUC-Rio Prof: Sérgio Lifschitz Organização de Arquivos Organização de Arquivos Tipos básicos de arquivos: heap files (entry sequenced files) sorted
ANÁLISE E PROJETO DE BANCO DE DADOS
ANÁLISE E PROJETO DE BANCO DE DADOS ESTRUTURAS E INDEXAÇÃO FELIPE G. TORRES ARQUIVOS Um arquivo é uma sequência de registros. Em muitos casos do mesmo tipo. Se cada registro no arquivo tem exatamente o
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.
UNIVERSIDADE DE SÃO AULO - ICMC Departamento de Ciências da Computação SCC-203 Algoritmos e Estruturas de Dados 2-2 Sem /2012 rofa.: Maria Cristina 3 a ROVA (27 de junho) Aluno: N o US: Atenção: favor
Sistemas de Bases de Dados 1.º teste (com consulta limitada: 2 folhas identificadas) - Duração: 2 horas
DI-FCT/UNL 28 de abril de 2018 Sistemas de Bases de Dados 1.º teste (com consulta limitada: 2 folhas identificadas) - Duração: 2 horas N. º : Nome: Grupo 1 (7 valores) 1 a) Para cada uma das seguintes
Matemática Discreta 12
Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Matemática Discreta 12 Prof. Jorge Cavalcanti [email protected] - www.univasf.edu.br/~jorge.cavalcanti 1 Introdução
Cap. 3 Organização de Ficheiros e Indexação
Cap. 3 Organização de Ficheiros e Indexação If you don t find it in the index, look very carefully through the entire catalogue. -- Sears, Roebuck, and Co., Consumer s Guide, 1897 Abel J.P. Gomes Bibliografia:
Banco de Dados I 2007. Módulo V: Indexação em Banco de Dados. (Aulas 1, 2 e 3) Clodis Boscarioli
Banco de Dados I 2007 Módulo V: Indexação em Banco de Dados (Aulas 1, 2 e 3) Clodis Boscarioli Agenda: Estruturas de Índices; Conceitos; Tipos de Índices: Primários; Secundários; Clustering; Multiníveis;
Tipos de Índices. Profa. Dra. Cristina Dutra de Aguiar Ciferri
Tipos de Índices Cristina Dutra de Aguiar Ciferri Tipos de Índice Ordenados em um único nível primário agrupamento (cluster) secundário Estruturas de dados de árvores índices multiníveis árvores-b, árvores-b+
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?
UFU/FACOM/BCC Gerenciamento de Bancos de Dados 2018/2-2 a Lista de Exercícios Prof. Ilmério Reis da Silva 1. Em relação à organização de arquivos e índices, responda: (a) Dado um arquivo de dados, o que
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
ACH2025 Laboratório de Bases de Dados Aula 8 Indexação e Hashing Parte 1 Professora: Fátima L. S. Nunes Conceitos básicos Boa parte das consultas a BD referem-se a apenas uma parte pequena dos registros.
9 Sistemas de ficheiros
9 Sistemas de ficheiros Ficheiros Directórios Implementações de sistemas de ficheiros Exemplos de sistemas de ficheiros 1 Informação a longo-prazo 1. Deve guardar grandes quantidades de dados 2. A informação
Árvores B. Hashing. Estrutura de Dados II Jairo Francisco de Souza
Árvores B Hashing Estrutura de Dados II Jairo Francisco de Souza Resolução de colisões Endereçamento aberto Re-hashing Encadeamento Separado Coalescido Coalescido com porão Endereçamento em balde Endereçamento
Tabelas de dispersão/hash
Tabelas de dispersão/hash 1 Tabelas de dispersão/hash 1. Considere uma tabela de hash de tamanho m = 1000 e a função de hash h(k)= [m.(k.a % 1)], com A=( 5-1)/2. Calcule os valores de hash das chaves 61,
Estrutura de indexação de arquivos
Estrutura de indexação de arquivos Neste capítulo assume-se que um arquivo já existe e possui alguma organização primária desordenada ordenada ou hash Utiliza-se índices, que são estruturas de acesso adicionais
Etapa III - Implementação de Operadores da Álgebra Relacional; Etapa IV - Comparação experimental de varredura sequencial x acesso aleatório
UFU/FACOM/BCC GBC053 - Gerenciamento de Banco de Dados - 2018/2 Trabalho de Implementação Prof. Ilmério Reis da Silva O trabalho semestral da disciplina em epígrafe tem como objetivo a implementação de
Classificação e Pesquisa de Dados. Aula 23 Organização de Arquivos: Arquivos Indexados, Diretos e Arquivos Invertidos
Classificação e Pesquisa de Dados Aula 23 Organização de Arquivos: Arquivos Indexados, Diretos e Arquivos Invertidos UFRGS INF1124 Arquivo indexado - AI Indicação de uso Baixa freqüência de acessos seqüenciais
Profa. Dra. Cristina Dutra de Aguiar Ciferri. Estruturas de Indexação de Dados
Estruturas de Indexação de Dados Cristina Dutra de Aguiar Ciferri Índice Estrutura de acesso auxiliar usada para melhorar o desempenho na recuperação de registros Pesquisa restringida a um subconjunto
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
ACH2025 Laboratório de Bases de Dados Aula 9 Indexação e Hashing Parte 2 Professora: Fátima L. S. Nunes Índices: Até agora: primários denso esparso índices sequenciais (ordenados) secundários denso Índices:
Análise e otimização de queries no MySQL. Jeronimo Fagundes da Silva
Análise e otimização de queries no MySQL Jeronimo Fagundes da Silva Jeronimo Fagundes da Silva Líder de Desenvolvimento de Software para Web na KingHost Bacharel em Ciência da Computação pela UFRGS Trabalha
Hashing: conceitos. Hashing
Hashing: conceitos hashing é uma técnica conhecida como espalhamento, mapeamento ou randomização que tenta distribuir dados em posições aleatórias de uma tabela (array) associa cada objeto (de um determinado
Índices. SCE-203 Algoritmos e Estruturas de Dados II
Índices SCE-203 Algoritmos e Estruturas de Dados II Índice Em geral, um índice fornece mecanismos para localizar informações Índice de um livro ou catálogo de uma biblioteca Facilitam muito o trabalho
Sumário. Índices Ordenados: Nível Único. Índices Primários. Bancos de Dados Avançados Índices. Índices: Ordenados em nível único Multiníveis
Sumário Bancos de Dados Avançados Índices DCC030 - TCC: Bancos de Dados Avançados (Ciência Computação) DCC049 - TSI: Bancos de Dados Avançados (Sistemas Informação) DCC842 - Bancos de Dados (Pós-Graduação)
Sistemas de Arquivos. (Aula 23)
Sistemas de Arquivos (Aula 23) Funções de um SO Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção 2 Sistemas Operacionais 2008/1 Necessidade de Armazenamento
Matrizes esparsas: definição
Matrizes esparsas: definição o objetivo é mostrar os métodos de armazenamento e manipulação de matrizes esparsas esparsidade de uma matriz é a relação entre o número de elementos nulos de uma matriz e
GBC053 Gerenciamento de Banco de Dados. Plano de Curso e Introdução. Ilmério Reis da Silva UFU/FACOM/BCC
GBC053 Gerenciamento de Banco de Dados Plano de Curso e Introdução Ilmério Reis da Silva [email protected] www.facom.ufu.br/~ilmerio/gbd UFU/FACOM/BCC Plano de Curso Ementa Arquitetura de um Sistema de Gerenciamento
Árvores B. Árvores B. Estrutura de Dados II Jairo Francisco de Souza
Árvores B Árvores B Estrutura de Dados II Jairo Francisco de Souza Motivação Quando tabelas são muito grandes Armazenamento do conjunto de chaves não pode ser efetuado na memória principal Necessário uso
ÁRVORE B. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos
ÁRVORE B Vanessa Braganholo Estruturas de Dados e Seus Algoritmos INTRODUÇÃO 2 ARQUIVOS DE ACESSO DIRETO Basicamente, duas formas de acesso a um registro: Acesso via cálculo do endereço do registro (hashing)
Algoritmos de pesquisa. Tabelas de dispersão/hash
Algoritmos de pesquisa Tabelas de dispersão/hash Introdução Motivação: Considerar o problema de pesquisar um determinado valor num vetor. Se o vetor não está ordenado, a pesquisa requer O(n) de complexidade.
Introdução Métodos de Busca Parte 2 - Hashing
Introdução Métodos de Busca Parte - Hashing ICC Acesso seqüencial = O(n) Quanto mais as estruturas (tabelas, arquivos, etc.) crescem, mais acessos há Quando armazenamento é em disco, reduzir acessos é
Acesso Sequencial Indexado
Acesso Sequencial Indexado Utiliza o princípio da pesquisa seqüencial cada registro é lido seqüencialmente até encontrar uma chave maior ou igual a chave de pesquisa. Providências necessárias para aumentar
Sistemas de Ficheiros
Paulo Sérgio Almeida Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho 2005/2006 Ficheiro Ficheiros Unidade lógica de armazenamento Espaço de endereçamento lógico contíguo
Sistemas Operacionais. Sistema de Arquivos. Edeyson Andrade Gomes.
Sistemas Operacionais Sistema de Arquivos Edeyson Andrade Gomes www.edeyson.com.br Sistema de Arquivos Mecanismo que provê armazenamento e acesso a dados e programas do Sistema Operacional e do usuário;
Como criar utilizadores
Como criar utilizadores Existem três tipos de contas de Utilizadores, que contém toda a informação referente a um utilizador do domínio, nomeadamente: nome; password; grupos a que pertence no domínio,
Tabelas Hash. Aleardo Manacero Jr.
Tabelas Hash Aleardo Manacero Jr. Introdução O uso de listas ou árvores para organizar informações é interessante e produz resultados bastante bons Entretanto, em nenhuma dessa estruturas se obtém o acesso
Chapter 11: Indexing and Hashing. José Alferes Sistemas de Bases de Dados - ISCTEM janeiro de 2017
Chapter 11: Indexing and Hashing José Alferes Sistemas de Bases de Dados - ISCTEM janeiro de 2017 36 Chapter 11: Indexing and Hashing - Conceitos de base - Índices ordenados - B + -Tree Index B-Tree Index
MC3305 Algoritmos e Estruturas de Dados II. Aula 02 Hashing. Prof. Jesús P. Mena-Chalco.
MC3305 Algoritmos e Estruturas de Dados II Aula 02 Hashing Prof. Jesús P. Mena-Chalco [email protected] 2Q-2015 1 Sobre a busca de dados/chaves 2 Busca em tabelas (vetores/arrays) Para se resolver
Uso de Índices na Otimização e Processamento de Consultas. Otimização e Processamento de Consultas. Otimização e Processamento de Consultas
usuário processador de E/S gerador de respostas Uso de Índices na Otimização e Processamento de Consultas Profa. Dra. Cristina Dutra de Aguiar Ciferri analisador controle de autorização verificador de
Árvores B. Árvore B (ou melhor B+)
Motivação: pesquisa em disco Árvores B Tempo de acesso a disco determinante nas operações Com disco de 10 ms de tempo de acesso: 100 acessos por segundo em máquina de 25 MIPS, 1 acesso custa tanto como
ORGANIZAÇÃO DE ARQUIVOS INDEXADOS
ORGANIZAÇÃO DE ARQUIVOS INDEXADOS Um índice consiste numa coleção de entradas, uma para cada registro de dados, contendo o valor de uma chave de atribuição e um ponteiro de referência que acessa imediatamente
Algoritmos e Estruturas de Dados I
Algoritmos e Estruturas de Dados I Aula 09 Revisão + Simulado Prof. Jesús P. Mena-Chalco [email protected] 1Q-2019 1 Vetores 2 Vetores 3 Vetores vetor 4 Vetores... vetor... 5 Ponteiros 6 Processo
Tabelas Hash. informação, a partir do conhecimento de sua chave. Hashing é uma maneira de organizar dados que:
Tabelas Hash Tabelas Hash O uso de listas ou árvores para organizar informações é interessante e produz bons resultados. Porem, em nenhuma dessas estruturas se obtém o acesso direto a alguma informação,
Hashing Endereçamento Direto Tabelas Hash
Hashing Endereçamento Direto Tabelas Hash Professora: Fátima L. S. Nunes 1 1 1 Vimos até agora: Introdução Conceitos e técnicas de Orientação a Objetos Conceitos e aplicações de Complexidade Assintótica
Organização e Arquitetura de Computadores I
Organização e Arquitetura de Computadores I Slide 1 Memória Virtual os primeiros computadores (início dos anos 60) tinham memória principal muito reduzida O PDP-1 funcionava com uma memória de 4096 palavras
Há vários algoritmos para processar junções nested-loop join block nested-loop join indexed nested-loop join merge-join hash-join
Bases de Dados Algoritmos para junção Algoritmos para junções Há vários algoritmos para processar junções nested-loop join block nested-loop join indexed nested-loop join merge-join hash-join A escolha
Á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 (Parte I) SCC-503 Algoritmos e Estruturas de Dados II Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira Problema Cenário até então Acesso a disco é caro (lento) Pesquisa binária é útil
SCC0601 Introdução à Ciência da Computação II. Prof. Lucas Antiqueira
SCC0601 Introdução à Ciência da Computação II Prof. Lucas Antiqueira Acesso sequencial = O(n) Busca binária = O(log 2 n) Árvores binárias de busca = O(log 2 n) (melhor caso) Acesso em tempo constante Por
