Bases de Dados. Índices. Discos. transferência lenta. transferência rápida e em blocos (512B ~ 4KB) e aos bytes. memória.
|
|
- João Lucas Sá Alencastre
- 7 Há anos
- Visualizações:
Transcrição
1 Bases de Dados Índices Discos transferência lenta transferência rápida e em blocos (512B ~ 4KB) e aos bytes memória disco aplicação 2 1
2 Discos 7200rpm = 120 rot/s 1 5 platters Ø 8.9 cm ~ tracks per platter sector = 512 B ~ 500 sectors per (inner) track ~ 1000 sectors per (outer) track 3 Acesso aos dados Os dados são transferidos entre o disco e a memória em blocos um bloco abrange vários sectores contíguos É objectivo de qualquer SGBD minimizar o número de transferências de blocos entre disco e memória 4 2
3 Índices Índices permitem acelerar o acesso aos dados p.ex. índice de um livro assunto é a chave de procura (search key) nº da página é o apontador Um ficheiro de índices contém registos na forma search key apontador em geral é muito mais pequeno que o ficheiro de dados 5 Índices Dois tipos básicos de índices índices ordenados (p.ex. árvore B + ) valores da chave de procura armazenados por ordem índices do tipo "hash" valores da chave de procura distribuídos uniformemente por vários "contentores" (buckets) de acordo com uma função de "hash" 6 3
4 Escolha de índices Critérios para a escolha de índices possibilidade de acesso eficiente aos dados registos com o valor dado para o atributo registos com o valor do atributo numa gama de valores tempo de inserção tempo de remoção espaço ocupado 7 Índices ordenados Num ficheiro de dados sequencial podem haver 2 tipos de índices índice primário é o índice cuja chave de procura especifica a ordem dos dados no ficheiro normalmente a chave de procura é a chave primária índice secundário um índice que especifica uma ordem diferente da do ficheiro i Se houver índice primário, o ficheiro é "sequencial indexado" 8 4
5 Índices primários (clustered) índice índice 9 Índices secundários (non-clustered) índice índice índice 10 5
6 Índices densos Um índice é denso se refere todos os valores possíveis da chave de procura 11 Índices esparsos Um índice é esparso se contém entradas para apenas alguns dos valores da chave de procura Aplicável quando os registos estão ordenados por essa chave (índice primário) para localizar o registo com valor K encontrar a entrada no índice com o maior valor < K pesquisar o ficheiro sequencialmente a partir daí 12 6
7 Índices esparsos Menos espaço e manobras de inserção/remoção Mais lento a localizar os registos pretendidos Melhor compromisso é um índice esparso com uma entrada para cada bloco no ficheiro, correspondente ao menor valor da chave de procura nesse bloco 13 Índices multi-nível Se um índice primário não couber todo na memória, o acesso complica-se para reduzir o número de acessos ao disco, trata-se o índice como um ficheiro sequencial e cria-se um índice esparso para o índice primário se este for demasiado grande para caber em memória, cria-se ainda outro nível Os índices têm que ser mantidos actualizados em todos os níveis 14 7
8 Índices multi-nível 15 Actualização de índices Remoção ao remover o único registo com um dado valor, remove-se a respectiva entrada do índice Inserção pesquisar o valor do registo no índice índices densos se o valor não estiver indexado, inserir nova entrada no índice índices esparsos só é necessário criar uma nova entrada se a inserção der origem a um novo bloco 16 8
9 Índices secundários Um índice secundário pode ser necessário para fazer pesquisas por outro critério se a relação account estiver armazenada por account_number encontrar todas as contas de uma dada agência encontrar todas as contas de uma agência e com saldo numa dada gama de valores É possível ter um índice secundário para cada uma destas chaves de procura o índice aponta para um contentor de apontadores para registos 17 Índices secundários Índices secundários têm de ser densos (porquê?) Também têm que ser mantidos actualizados Menos eficiente que um índice primário cada registo pode implicar o acesso a um bloco diferente 18 9
10 Bases de Dados Índices em árvore B + Árvore B + exemplo 1 árvore B + com n=
11 Árvore B + exemplo 2 árvore B + com n=5 21 Árvore B + nós Cada nó da árvore contém K i são os valores da chave de procura ordenados K 1 < K 2 < K 3 <... < K n 1 P i são apontadores para outros nós (se o nó não é folha) ou apontadores para contentores de registos (se é folha) 22 11
12 Árvore B + nós folha Se o nó é folha P i aponta para um registo com valor K i ou P i aponta para um contentor de registos com K i necessário se a chave de procura não for chave primária P n aponta para a folha seguinte (mesmo nível) 23 Árvore B + nós não folha Se o nó não é folha forma um índice esparso multi-nível para as folhas todas as chaves na sub-árvore de P 1 são menores que K 1 em geral, todas as chaves na sub-árvore de P i são K i 1 e < K i as chaves K n 1 estão na sub-árvore apontada por P P n 24 12
13 Árvore B + propriedades Todos os caminhos da raiz a qualquer folha têm o mesmo comprimento Cada nó tem entre n/2 e n descendentes excepto a raiz, que pode ter menos Cada folha tem n apontadores e (n-1) valores apenas alguns podem estar preenchidos mas tem que ter no mínimo (n-1)/2 valores Casos especiais: se a raiz não é uma folha, tem pelo menos 2 descendentes se a raiz é folha (e a árvore só tem esse nó) pode ter entre 0 e (n 1) valores 25 Árvore B + eficiência Como as ligações são feitas por apontadores, não é necessário que os blocos estejam fisicamente juntos Uma árvore B + contém relativamente poucos níveis as pesquisas são eficientes Inserções e remoções também podem ser tratadas eficientemente a árvore pode ser reestruturada em tempo logarítmico 26 13
14 Árvore B + vantagens Em ficheiros sequenciais indexados, o desempenho degrada-se à medida que o ficheiro cresce e é necessário reorganizar todo o ficheiro de vez em quando Em árvores B + apenas pequenas alterações locais são necessárias perante inserções e remoções à custa de mais algum processamento e espaço mas as vantagens compensam as desvantagens 27 Procura em árvores B + Encontrar todos os registos com chave de procura k 1. começa pela raiz a) procurar na raiz o menor valor K i tal que K i > k b) se existir, seguir P i para o nó descendente c) senão, seguir P n 2. repetir o passo anterior até chegar a uma folha 3. assim que chegarmos a uma folha a) procurar na folha o valor K i tal que K i = k b) se existir, seguir P i para o registo ou contentor c) senão, conclui-se que o registo não existe 28 14
15 Procura em árvores B + Se houver K valores da chave de procura na árvore, nenhum caminho é mais comprido do que log n/2 (K) Geralmente um nó é do tamanho de um bloco, tipicamente 4 KB para isso escolhe-se n 100 com 40 bytes para cada entrada com 1 milhão de valores de chave e n=100 acedese a apenas log 50 ( ) = 4 nós se a árvore fosse binária seriam precisos 20 nós cada nó exige um acesso ao disco (20ms) 29 Modificações em árvores B + As modificações em árvores B+ seguem os seguintes passos: 1. pesquisar o valor pretendido na árvore, desde a raíz até chegar à folha respectiva (top-down) 2. fazer as alterações pretendidas ao nível das folhas 3. repercutir os efeitos de forma bottom-up, isto é, depois de alterar nós a um nível, verificar se o nó ascendente fica coerente, senão propagar p os efeitos recursivamente (até à raiz, se necessário) 30 15
16 Propriedades Propriedades gerais que devem ser mantidas: A. à esquerda de um valor está uma sub-árvore com valores sempre menores B. à direita de um valor está uma sub-árvore com valores maiores ou iguais C. cada nó deve ter sempre pelo menos (n-1)/2 valores (ou n/2 apontadores) preenchidos, caso contrário é necessário redistribuir valores (e apontadores) pelos nós vizinhos 31 Inserção em árvores B + Inserção procurar a folha em que esteja presente a chave dada se existir, adicionar registo ao ficheiro e inserir apontador no contentor senão, adicionar registo e criar novo contentor inserir a entrada (valor, apontador) na folha se a folha ultrapassar o máximo de n 1 valores separar os n valores em 2 nós 32 16
17 Inserção em árvores B + Separação de n valores em 2 nós deixar os primeiros n/2 valores no nó original, o resto passa um segundo, novo nó inserir a entrada (k,p) no nó ascendente, em que k é a menor chave do novo nó p é um apontador para o novo nó se o nó ascendente excedeu o tamanho máximo, parti-lo segundo o mesmo procedimento se a divisão se propagar até à raiz a raiz é partida em 2 nós é criada uma nova raiz como ascendente destes 2 nós 33 Inserção em árvores B + exemplo 34 17
18 Bases de Dados Remoções em árvores B + Remoção em árvores B + Remoção procurar o registo e removê-lo do ficheiro se o apontador ou contentor ficar vazio, remover a entrada (valor, apontador) da folha se a folha ficou abaixo do mínimo de (n-1)/2 valores se for possível, passar estes valores para o nó da esquerda, remover a folha, e remover a entrada respectiva no nó ascendente se isso não for possível, redistribuir os apontadores pelos nós vizinhos e ajustar o valor da chave no nó ascendente 36 18
19 Remoção em árvores B + Se ao modificar o nó ascendente, este ficar com um número de apontadores abaixo de n/2 repetir o procedimento recursivamente Estes efeitos "sobem" pela árvore até chegar a um nó que fique com pelo menos n/2 apontadores Se a raiz ficar só com um descendente depois da remoção, então o descendente passa a ser a nova raiz 37 Remoção em árvores B + exemplo
20 Remoção em árvores B + exemplo 2 39 Remoção em árvores B + exemplo
21 Remoção em árvores B + exemplo 3 Neste exemplo a sequência da remoção é a seguinte: 1. desaparece uma folha 2. no nó ascendente, desaparece o apontador para essa folha 3. pela propriedade p (C) o nó ascendente fica abaixo do limite de n/2 apontadores, logo é necessário redistribuir 4. só há um nó vizinho à esquerda, redistribuir com esse 5. só são necessários 4 apontadores (porque só há 4 folhas), logo ficam 2 apontadores em cada nó 6. se ficam 2 apontadores, fica apenas 1 valor em cada nó 7. pela propriedade (B) o valor que fica em cada um desses nós é o menor valor da sub-árvore direita 8. depois de mexer no 2º nível é necessário verificar a coerência do nó ascendente (raiz) 9. pela propriedade (B) o valor que fica na raiz é o menor valor da sub-árvore direita, ou seja, Mianus 41 Exercício Considere uma árvore B + com n=3 a) A partir de uma árvore vazia, desenhe a árvore após a inserção sucessiva dos seguintes valores: 1, 9, 5, 3, 6, 8, 4 b) Remova os mesmos elementos pela mesma ordem até chegar a uma arvore vazia 42 21
22 Exercício a) Exercício 1 b)
23 Bases de Dados Índices do tipo hash Hashing estático Um contentor armazena um conjunto de registos tipicamente um contentor ocupa um bloco em disco Ficheiros com organização do tipo hash função de hash determina contentor de um registo recebe como parâmetro o valor da chave de procura e devolve um apontador para o contentor Num mesmo contentor t pode haver registos com diferentes valores de chave de procura os contentores são pesquisados sequencialmente 46 23
24 Hashing estático exemplo 47 Funções de hash A função de hash ideal devia ser uniforme todos os contentores ficam com o mesmo número de valores de chave de procura devia ser aleatória todos os contentores ficam com o mesmo número de registos Tipicamente, as funções de hash trabalham com a representação binária do valor da chave de procura p.ex. somar todos os caracteres da string e fazer o resto da divisão pelo número de contentores 48 24
25 Overflow de contentores Pode ocorrer overflow de contentores devido a número insuficiente de contentores desequilíbrio na distribuição dos registos múltiplos registos com a mesma chave de procura função de hash não uniforme A probabilidade de overflow de um contentor não pode ser eliminada é normalmente resolvida com contentores extra (overflow buckets) 49 Overflow de contentores Encadeamento de contentores 50 25
26 Índices do tipo hash Pode ser usado hashing para organização de ficheiros e para criação de índices os índices do tipo hash são normalmente usados como índices secundários 51 Índices do tipo hash exemplo 52 26
27 Problemas na utilização de hashing estático A função de hash mapeia valores da chave de procura para um número fixo de contentores se a BD crescer, desempenho sofre com excesso de contentores extra mesmo que o tamanho possa ser previsto, desperdício de espaço inicialmente se a BD diminuir, espaço desperdiçado reorganização periódica é dispendiosa Solução: fazer variar o número de contentores dinamicamente 53 Hashing dinâmico Permite modificar a função de hash dinamicamente Hashing extensível a função de hash gera valores numa gama alargada tipicamente inteiros com 32 bits a ideia é usar em cada momento apenas um prefixo para endereçar um conjunto de contentores seja i o comprimento do prefixo, com 0 i 32 número máximo de contentores endereçáveis: 2 i o valor de i varia conforme o tamanho da BD 54 27
28 Hashing dinâmico exemplo comprimento do prefixo ( i ) comprimento do prefixo para cada contentor ( i j i ) 55 Hashing dinâmico procura O prefixo com i bits permite localizar a entrada correcta no índice mas o mesmo contentor pode ser usado em várias entradas significa que o prefixo do contentor (i j ) é i Para encontrar o contentor com chave K j 1. calcular funcao_hash(k j ) = X 2. usar os primeiros i bits de X para localizar a entrada no índice 3. seguir o apontador respectivo para o contentor 56 28
29 Hashing dinâmico inserção Para inserir um registo com chave K j encontrar o contentor para essa chave se houver espaço no contentor, inserir o registo senão, separar o contentor em 2 e redistribuir os registos eventualmente será necessário aumentar i 57 Hashing dinâmico inserção (caso i j = i ) Como separar em 2 um contentor para a chave K j se i j = i (só há um apontador para o contentor j ) incrementar o valor de i, o que duplica o tamanho do índice substituir cada entrada no índice por 2 entradas que apontam para o mesmo contentor alocar novo contentor z e fazer i j = i z = i colocar o segundo apontador de j a apontar para z remover e re-inserir cada registo em j (agora com novo i j ) alguns registos vão parar a j, outros a z inserir o novo registo com chave K j 58 29
30 Hashing dinâmico inserção (caso i j < i ) Como separar em 2 um contentor para a chave K j se i j < i (mais do que um apontador para j ) alocar novo contentor z e fazer i j = i z = i j + 1 a segunda metade das entradas que apontam para j passam a apontar para z remover e re-inserir cada registo em j (agora com novo i j ) alguns registos vão parar a j, outros a z inserir o novo registo com chave K j se o contentor t ainda estiver cheio, repetir recursivamente um dos casos i j = i ou i j < i, como apropriado se o contentor permanecer cheio, usar um contentor extra (i atingiu o máximo e há overflow) 59 Hashing dinâmico inserção 60 30
31 Hashing dinâmico inserção 61 Hashing dinâmico inserção 62 31
32 Hashing dinâmico inserção 63 Hashing dinâmico inserção 64 32
33 Hashing dinâmico remoção Para apagar um valor de chave localizar o registo dentro do seu contentor e removê-lo se o contentor ficar vazio, removê-lo e actualizar o índice é possível juntar contentores que tenham o mesmo número i j e o mesmo prefixo nos primeiros i j -1 bits é possível diminuir o tamanho do índice operação dispendiosa, só feita quando o número de contentores é muito menor que o número de entradas no índice 65 Bases de Dados Índices e SQL 33
34 Definição de índices em SQL Criação de um índice create index index_name on relation_name(attribute_list) exemplo create index branch_index on branch(branch_name) é possível escolher o tipo de índice com using btree ou using hash Para eliminar um índice: drop index index_name 67 Índices com múltiplas chaves de procura Certas perguntas exigem múltiplos índices select account_number from account where branch_name = Perryridge and balance = 1000 estratégias possíveis usar índice para branch_ name e testar valor de balance usar índice para balance e testar valor de branch_name usar índice para branch_name e outro para balance e intersectar os resultados 68 34
35 Chaves de procura compostas Chaves de procura compostas chaves de procura com mais de um atributo p.ex. (branch_name, balance) Ordem lexicográfica (a 1, a 2 ) < (b 1, b 2 ) se (a 1 < b 1 ) ou (a 1 = b 1 )e(a 2 <b) 2 69 Chaves de procura compostas where branch_name = "Perryridge" and balance = 1000 O mesmo índice pode ser usado para obter os registos que satisfazem as duas condições mais eficiente que usar índices separados também é eficiente noutros casos where branch_name = "Perryridge" and balance < 1000 não é eficiente em where branch_name < "Perryridge" and balance = 1000 obtém registos que satisfazem a primeira mas não a segunda condição 70 35
Bases de Dados. Remoções em árvores B + Remoção em árvores B +
Bases de Dados Remoções em árvores B + Remoção em árvores B + Remoção procurar o registo e removê-lo do ficheiro se o apontador ou contentor ficar vazio, remover a entrada (valor, apontador) da folha se
Leia maisBases 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
Bases de Dados Índices Discos transferência lenta e em blocos (512B ~ 4KB) transferência rápida e aos bytes memória disco BD / aplicação 2 1 Discos 7200rpm = 120 rot/s 1 5 platters Ø 8.9 cm 50000 ~ 100000
Leia maisSistemas de Informação e Bases de Dados 2012/2013. Índices. Alberto Sardinha
Sistemas de Informação e Bases de Dados 2012/2013 Índices Alberto Sardinha Sumário Índices Criação de Índices em SQL Exemplos 2012 Ins)tuto Superior Técnico 1 Bibliografia Raghu Ramakrishnan, Database
Leia maisDois parâmetros essenciais t T tempo de transferência de um bloco. assume-se igual para operações de leitura e escrita
Bases de Dados Algoritmos de processamento Custo de operação Dois parâmetros essenciais t T tempo de transferência de um bloco assume-se igual para operações de leitura e escrita t S tempo de localização
Leia maisModelo Relacional. Josino Rodrigues
Modelo Relacional Josino Rodrigues Modelo Relacional Chave Primária Atributos PILOTO Num-cad Nome CPF Endereço 0101 João 123456 Recife Tuplas 0035 José 234567 São Paulo... 0987 Pedro 567890 Recife 2 Chave
Leia maisBanco 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
Leia maisChapter 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
Leia maisBases de Dados. Algoritmos. Custo de operação. Algoritmos de selecção. Algoritmo de ordenação. Algoritmos de junção.
Bases de Dados Algoritmos Custo de operação Algoritmos de selecção Algoritmo de ordenação Algoritmos de junção Outras operações Materialização e pipelining 2 1 Bases de Dados Algoritmos de selecção Algoritmos
Leia maisBases de Dados. Parte VIII. Organização Física dos Dados
Bases de Dados Parte VIII Organização Física dos Dados Ricardo Rocha DCC-FCUP 1 Unidades de Medida da Informação A unidade fundamental é o byte. 1 byte corresponde a 8 bits e cada bit permite representar
Leia maisBANCO 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
Leia maisindexaçã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
Leia maisACH2025. 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.
Leia maisACH2024. 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
Leia maisBANCO DE DADOS Índices em BD Árvores B+
BANCO DE DADOS Índices em BD Árvores B+ Bacharelado em Ciência da Computação IFCE - Campus Aracati - Semestre 2018.2 Prof. Érica Gallindo - erica.gallindo@ifce.edu.br Arquivos de banco de dados Um arquivo
Leia maisINF70 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 ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/gbd Roteiro Fundamentos Hash Estático Hash Extensível Hash Linear Considerações
Leia maisPesquisa em Memória Secundária. Prof. Jonas Potros
Pesquisa em Memória Secundária Prof. Jonas Potros Árvores de Pesquisa São estruturas de dados muito eficientes quando deseja-se trabalhar com tabelas que caibam inteiramente na memória principal do computador.
Leia maisOrganizaçã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
Leia maisGBC053 Gerenciamento de Banco de Dados Índices baseados em Hash
GBC053 Gerenciamento de Banco de Dados Índices baseados em Hash Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/gbd UFU/FACOM/BCC UFU/FACOM/BCC GBD Página: Roteiro Fundamentos Hash
Leia maisACH2025. 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:
Leia maisAlgoritmos 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.
Leia maisSumá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)
Leia maisUniversidade Estadual do Oeste do Parana - UNIOESTE Jhonata R.de Peder Marcelo Schuck
Universidade Estadual do Oeste do Parana - UNIOESTE Jhonata R.de Peder Marcelo Schuck Banco dedados I Estruturas de Índices para Arquivos Cascavel - Pr 2009 Sumário Introdução; Índices Ordenados de nível
Leia maisB-Árvores. Siang Wun Song - Universidade de São Paulo - IME/USP. MAC Estruturas de Dados
MAC 5710 - Estruturas de Dados - 2008 Referência bibliográfica Os slides sobre este assunto são parcialmente baseados nos artigos Bayer, R. and E. McCreight. Organization and maintenance of large ordered
Leia maisÁrvores. Árvores M-Vias. Métodos de Pesquisa de Dados. de Pesquisa (ANP) VANTAGENS EXEMPLO
Métodos de Pesquisa de Dados Árvores M-Vias Encontrar um dado em um conjunto de dados de forma eficiente Baseia-se na noção de uma chave (índice) de pesquisa Aplicação típica: SGBD Busca de dados em disco
Leia maisÁ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
Leia maisÁ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
Leia maisTABELAS DE DISPERSÃO/HASH
1/47 TABELAS DE DISPERSÃO/HASH Introdução 2/47 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
Leia maisTabela Hash. Disciplina de Algoritmos e Estrutura de Dados III. Prof. Marcos Antonio Schreiner 15/05/2015
Tabela Hash Disciplina de Algoritmos e Estrutura de Dados III Prof. Marcos Antonio Schreiner 15/05/2015 Introdução Seja um conjunto de chaves armazenadas em um vetor e em uma árvore AVL. Qual a complexidade
Leia maisÁrvores B. Prof. Márcio Bueno. / Fonte: Material da Prof a Ana Eliza Lopes Moura
Árvores B Prof. Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Fonte: Material da Prof a Ana Eliza Lopes Moura Situação Problema Memória Principal Volátil e limitada Aplicações Grandes
Leia maisTipos 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+
Leia maisHashing 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......
Leia maisUNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO
UNIVERSIAE E SÃO AULO INSTITUTO E CIÊNCIAS MATEMÁTICAS E E COMUTAÇÃO SCC-20 ALGORITMOS E ESTRUTURAS E AOS II rofa. Graça Nunes 2º. Sem. 2012 Nome: Nro. US Gabarito rova (27/6/2012) 1) (1.5) Associar características
Leia maisCap. 5 Indexação Baseada em Hashing
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:
Leia maisÍndices. 1. Introdução. Universidade Federal de Pelotas Departamento de Informática Bacharelado em Ciência da Computação Banco de Dados I
Universidade Federal de Pelotas Departamento de Informática Bacharelado em Ciência da Computação Banco de Dados I Prof. Paulo Ferreira Atividade para Sala de Aula: 25/11/2008 1. Introdução Índices Os índices
Leia maisBases de Dados. Parte VIII Organização Física dos Dados
Bases de Dados Parte VIII Organização Física dos Dados (Estes slides são a continuidade evolutiva dos slides de Ricardo Rocha (2005-2014) e de Fernando Silva (1995-2000), e são baseados no livro de Elmasri
Leia maisSistemas 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
Leia maisClassificaçã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
Leia maisHashing 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
Leia maisÍndice. Índices. Índice simples. Em geral, um índice fornece mecanismos para localizar informações
Índice Índices Leandro C. Cintra M.C.F. de Oliveira Fonte: Folk & Zoelick, File Structures Em geral, um índice fornece mecanismos para localizar informações No caso de arquivos, permite localizar registros
Leia maisMC3305 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 jesus.mena@ufabc.edu.br 2Q-2015 1 Sobre a busca de dados/chaves 2 Busca em tabelas (vetores/arrays) Para se resolver
Leia maisÁ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
Leia maisÁrvores B. Prof. Leandro C. Fernandes. Estruturas de Dados. Adaptado de: Leandro C. Cintra e M.C.F. de Oliveira
Árvores B Prof. Leandro C. Fernandes Estruturas de Dados Adaptado de: Leandro C. Cintra e M.C.F. de Oliveira A invenção da árvore-b Bayer and McGreight, 1972, publicaram o artigo: "Organization and Maintenance
Leia maisSumário. Definição do Plano de Execução
Sumário 1 Introdução ao Processamento de Consultas 2 Otimização de Consultas 3 Plano de Execução de Consultas Introdução a Transações 5 Recuperação de Falhas 6 Controle de Concorrência 7 Fundamentos de
Leia mais3 Plano de Execução de Consultas
Sumário 1 Introdução ao Processamento de Consultas 2 Otimização de Consultas 3 Plano de Execução de Consultas 4 Introdução a Transações 5 Recuperação de Falhas 6 Controle de Concorrência 7 Fundamentos
Leia maisTabelas 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,
Leia maisHashing convencional...
Hashing M.C.F. de Oliveira & Cristina Ciferri 2006/2007 Fonte: Folk & Zoelick, File Structures 1 Hashing convencional... Revisão... 2 1 Hashing 0 chave de busca K = LOWELL h(k) endereço 4 1 2 3 4 5...
Leia maisÍ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
Leia maisSistemas 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
Leia maisSistemas 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
Leia maisProfa. 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
Leia maisÁrvores B Partes I e II
Estruturas de Dados Prof. Ricardo J. G. B. Campello Árvores B Partes I e II Motivação & Construção Bottom-Up Adaptado e Estendido dos Originais de: Leandro C. Cintra Maria Cristina F. de Oliveira A Invenção
Leia maisHashing. Hashing. Hashing versus Indexação. Hashing. Hashing convencional... Exemplo de espalhamento. Revisão...
Algoritmos e Estruturas de Dados II Hashing Prof Debora Medeiros Hashing convencional Revisão Adaptado dos Originais de: Maria Cristina F de Oliveira Cristina Ciferri Hashing Exemplo de espalhamento 0
Leia maisÁ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
Leia maisEdital de Seleção 024/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões
Edital de Seleção 024/2017 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: «Nome» INSCRIÇÃO: «Inscrição» Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome
Leia maisConceitos gerais Terminologia Forma de Representação de Árvores Árvores Binárias
Conceitos gerais Terminologia Forma de Representação de Árvores Árvores Binárias Conceitos gerais Representação por Contiguidade Física Representação por Encadeamento Operações 2 Conceitos gerais Uma árvore
Leia maisO acesso aos elementos é aleatório, isto é, qualquer elemento numa colecção pode ser acedido realizando uma pesquisa pela chave.
DICIONÁRIOS São assim designadas as colecções de elementos em que cada elemento tem um campo chamado chave e não existem valores de chaves repetidos. As operações características que permitem a sua manipulação
Leia mais11/8/2010. Tópicos. Organização e Indexação de Dados em Memória Secundária
/8/00 Tópicos Organização e Indexação de Dados em Memória Secundária Disciplina Bancos de Dados II Prof Renato Fileto INE/CTC/UF Bancos de dados e acesso a memória secundária Noções de organização de dados
Leia maisÁ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)
Leia maisMétodos de Busca Parte 2
Métodos de Busca Parte 2 SCC-214 Projeto de Algoritmos Prof. Thiago A. S. Pardo Baseado no material do Prof. Rudinei Goularte 1 Introdução Acesso seqüencial = O(n) Quanto mais as estruturas (tabelas, arquivos,
Leia maisTabelas de Hash MBB. Novembro de Algoritmos e Complexidade LEI-LCC
Tabelas de Hash Algoritmos e Complexidade LEI-LCC 2010-2011 MBB Novembro de 2010 Tabelas e Acesso a Informação As estruturas de dados apresentadas anteriormente têm como objectivo o armazenamento de informação,
Leia maisÁrvores-B + SCC-203 Algoritmos e Estruturas de Dados II. Graça Nunes
Á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
Leia maisChapter 12: Query Processing. José Alferes Sistemas de Bases de Dados - ISCTEM janeiro de 2017
Chapter 12: Query Processing José Alferes Sistemas de Bases de Dados - ISCTEM janeiro de 2017 107 Chapter 12: Query Processing - Visão geral de processamento e otimização de perguntas - Medidas de custo
Leia maisMatrizes 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
Leia maisDicionários: B-Trees
Dicionários: 2003/04 Aula teórica de 2003.11.12 (T9) 2003 Salvador Abreu 2003/04 9-1 Motivação Grandes quantidades de informação Grandes quantidades de informação Requer armazenamento externo (disco) Acesso
Leia maisPrincípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language)
Bases de Dados Introdução à linguagem SQL História Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R Renomeada para SQL (Structured Query Language) Standards ISO e ANSI SQL-86, SQL-89,
Leia maisTabelas 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,
Leia maisÁrvores-B (Parte Ib) SCC-203 Algoritmos e Estruturas de Dados II. Graça Nunes
Árvores-B (Parte Ib) SCC-203 Algoritmos e Estruturas de Dados II Graça Nunes Árvores Binárias Paginadas (Paged Binary Trees) 8 páginas-filhas 7 registros por página (por seek); Árvore de altura 2 e ordem
Leia maisA Invenção da B-Tree. Árvores B Parte I. Problema. Problema. Introdução. Leandro C. Cintra Maria Cristina F. de Oliveira. Solução?
Algoritmos e Estruturas de Dados II Prof. Ricardo J. G. B. Campello Árvores B Parte I Introdução Adaptado e Estendido dos Originais de: Leandro C. Cintra Maria Cristina F. de Oliveira A Invenção da B-Tree
Leia maisÁrvore-B. Árvore B. Características Gerais. Sistemas de Banco de Dados. Características Gerais. Revisão
Árvore B Profa. Dra. Cristina Dutra de Aguiar Ciferri Método genérico para o armazenamento e a recuperação de dados voltado para arquivos volumosos proporciona rápido acesso aos dados possui custo mínimo
Leia maisÁrvores-B (Parte Ia) SCC-203 Algoritmos e Estruturas de Dados II. Graça Nunes
Árvores-B (Parte Ia) SCC-203 Algoritmos e Estruturas de Dados II Graça Nunes Problema Cenário até então Acesso a disco é caro (lento) Pesquisa binária é útil em índices ordenados... mas com índice grande
Leia maisGBC053 Gerenciamento de Banco de Dados Introdução à Organização de Arquivos (Métodos de Acesso/Índices)
GBC053 Gerenciamento de Banco de Dados Introdução à Organização de Arquivos (Métodos de Acesso/Índices) Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/gbd UFU/FACOM/BCC Organização
Leia maisMétodos de Busca Parte 1
Métodos de Busca Parte 1 Introdução à Ciência da Computação II Prof. Diego Raphael Amancio Baseado no material do Prof. Rudinei Goularte e do Prof. Thiago A. S. Pardo Introdução Importância em estudar
Leia maisÍndices. SCC-503 Algoritmos e Estruturas de Dados II. Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira
Índices SCC-503 Algoritmos e Estruturas de Dados II Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira Índice Em geral, um índice fornece mecanismos para localizar informações Índice de um livro ou
Leia maisA Invenção da B-Tree. Árvores B Parte I. Problema. Problema. Árvores Binárias de Busca. Árvores Binárias de Busca. Introdução
Algoritmos e Estruturas de Dados II Árvores B Parte I Introdução Adaptado dos Originais de: Profa. Debora Medeiros Ricardo J. G. B. Campello Leandro C. Cintra Maria Cristina F. de Oliveira A Invenção da
Leia maisOrdenação e Busca em Arquivos
Ordenação e Busca em Arquivos Cristina D. A. Ciferri Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira Moacir Ponti Jr. Exemplos de Busca Registros de tamanho fixo M A R I A R U A b 1 S A O b C A
Leia maisPrincípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language)
Bases de Dados Introdução à linguagem SQL História Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R Renomeada para SQL (Structured Query Language) Standards ISO e ANSI SQL-86, SQL-89,
Leia maisConstruçã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) Construção de árvores-b Leandro C. Cintra M.C.F. de Oliveira Fonte: Folk & Zoelick, File Structures Características Gerais Organizar e manter um índice para um arquivo de acesso aleatório
Leia maisTabelas de Dispersão. Algoritmos e Estruturas de Dados Verão Cátia Vaz 1
Tabelas de Dispersão Algoritmos e Estruturas de Dados Verão 2012 1 Tabelas de endereçamento directo Endereçamento directo é usado quando o universo de chaves é pequeno e todas as chaves são distintas:
Leia maisHashing: 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
Leia maisEstruturas de Dados Tabelas de Espalhamento
Estruturas de Dados Tabelas de Espalhamento Prof. Eduardo Alchieri (introdução) Uma estrutura como, as árvores binárias de busca, que trabalhe na ordem de log n é muito eficiente, mas em algumas situações
Leia maisAplicações de listas Outras estruturas
Aplicações de listas Outras estruturas SCC-22 Algoritmos e Estruturas de Dados I Lucas Antiqueira Grandes números 2 Grandes números Problema: lidar com números muito grandes Em C, inteiros (mesmo long
Leia maisTabelas de hash Acabamos de estudar como implementar uma tabela hashing aberta e estudaremos agora como implementar uma tabela hashing fechada ou
Tabelas de hash Acabamos de estudar como implementar uma tabela hashing aberta e estudaremos agora como implementar uma tabela hashing fechada ou também denominada de tabela hashing com endereçamento aberto.
Leia maisOrdenação de tuplos order by
Bases de Dados Elementos da linguagem SQL Ordenação de tuplos order by A cláusula order by permite ordenar tuplos exemplo: listar por ordem alfabética os nomes dos clientes com empréstimo na agência de
Leia maisB-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
B-tree B-Trees Material da Prof. Denise Bandeira, aula de Christian Hofsetz B-Trees são árvores balanceadas. Diferente das árvores binárias, os nós de uma B-tree podem ter um número variável de nodos filho.
Leia maisÁrvores-B (Parte II) Leandro C. Cintra M.C.F. de Oliveira Fonte: Folk & Zoelick, File Structures
Árvores-B (Parte II) Leandro C. Cintra M.C.F. de Oliveira 2004 Fonte: Folk & Zoelick, File Structures (atualizado 2007 c/ material Profa. Cristina Ciferri) Construção de árvores-b Características Gerais
Leia maisINSTITUTO SUPERIOR TÉCNICO Administração e Optimização de Bases de Dados
Número: Nome: -------------------------------------------------------------------------------------------------------------- INSTITUTO SUPERIOR TÉCNICO Administração e Optimização de Bases de Dados Exame
Leia maisESTRUTURA DE DADOS E ALGORITMOS. Árvores Binárias de Busca. Cristina Boeres
ESTRUTURA DE DADOS E ALGORITMOS Árvores Binárias de Busca Cristina Boeres Árvore Binária de Busca 30! construída de tal forma que, para cada nó: nós com chaves menores estão na sub-árvore esquerda nós
Leia maisMatemática Discreta 12
Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Matemática Discreta 12 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br - www.univasf.edu.br/~jorge.cavalcanti 1 Introdução
Leia maisÁrvores AVL e Árvores B. Jeane Melo
Árvores AVL e Árvores B Jeane Melo Roteiro Árvores Binárias Árvores AVL Definição Motivação Balanceamento Operações de rebalanceamento Árvores B Introdução Árvores Binárias Árvores binárias Cada nó tem
Leia maisHASHING HASHING 6/10/2008
Hashing é uma técnica que busca realizar as operações de inserção, remoção e busca em tempo constante. Motivação - Acesso Direto: Suponha que existam n chaves a serem armazenadas em uma tabela T, seqüencial
Leia maisde Bases de Dados Exame 1
Ano lectivo 2011/2012 2 o semestre Administração e Optimização de Bases de Dados Exame 1 Regras O exame tem a duração de 2 horas. O exame é individual e com consulta. Poderá consultar o livro, slides da
Leia maisSCC Algoritmos e Estruturas de Dados I
SCC 202 - Algoritmos e Estruturas de Dados I TAD Pilha Lembrem...TADs são tipos definidos em termos de seu comportamento e não de sua representação (que pode variar na busca de eficiência) 12/8/2010 Pilha
Leia maisÁrvores B. Prof. Flávio Humberto Cabral Nunes
Árvores B Prof. Flávio Humberto Cabral Nunes Conteúdo 1. Introdução 2. Busca 3. Inserção 4. Remoção 5. B* 6. B+ Capítulo: 8 (APOSTILA). Introdução Em muitas aplicações, a tabela considerada é muito grande
Leia maisUniversidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula
Universidade Estadual de Mato Grosso do Sul Bacharelado em Ciência da Computação Algoritmos e Estruturas de Dados II Prof. Fabrício Sérgio de Paula Tópicos Introdução Árvore digital Árvore digital binária
Leia maisUNIVERSIDADE 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
Leia maisEstruturas de Informação Árvores B ÁRVORES B
ÁRVORES B Até agora manipulamos a estrutura árvore binária em memória principal. Também queremos no entanto guardar árvores em disco e carregar a informação do disco para a memória principal, quando precisamos
Leia maisPesquisa binária em árvores-b + Índices em SQL
Pesquisa binária em árvores-b + K= 5 5 K=9 7 8 5 6 7 8 9 Bases de Dados Fernando Silva / Departamento de Ciência de Computadores Índices em SQL criar um ficheiro de índices sobre um atributo de uma dada
Leia mais