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

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

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

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

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

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

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

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

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

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

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

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

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

Estrutura de indexação de arquivos

Acesso Sequencial Indexado

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

Á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

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

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

Hashing convencional...

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

Sumário. Definição do Plano de Execução

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

Dicionários. TAD Orientado a conteúdo

BANCO DE DADOS Índices em BD Árvores B+

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

Métodos de Busca Parte 1

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

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA

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

ANÁLISE E PROJETO DE BANCO DE DADOS

3 Plano de Execução de Consultas

GBC053 Gerenciamento de Banco de Dados Índices baseados em Hash

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

Ordenação e Busca em Arquivos

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

INF 1010 Estruturas de Dados Avançadas

Banco de Dados. Métodos de Ordenação de Dados. Prof. Walteno Martins Parreira Jr

Modelo Relacional. Josino Rodrigues

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

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

BCC202 - Estrutura de Dados I

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

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

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

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

Organização de Arquivos

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

Árvores Binárias de Busca (ABB) 18/11

Árvores, Árvores Binárias e Árvores Binárias de Pesquisa. Rui Jorge Tramontin Jr.

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

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

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

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

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

Listas (Parte 1) Túlio Toffolo BCC202 Aula 09 Algoritmos e Estruturas de Dados I

Matrizes esparsas: definição

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

HASHING HASHING 6/10/2008

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

ALGORITMOS DE ORDENAÇÃO

Sistemas Operacionais

Árvores - Conceitos. Roseli Ap. Francelin Romero

Capítulo 8: Abstrações de dados

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

HASHING Hashing Motivação - Acesso Direto:

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

Árvores B Partes I e II

Sistemas de arquivos

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

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

Introdução Métodos de Busca Parte 1

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

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

ÁRVORES BINÁRIAS DE BUSCA. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

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

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

Sistemas Operacionais

Matemática Discreta 12

Aula T19 BCC202 Pesquisa (Parte 1) Pesquisa Binária. Túlio Toffolo

Arquivos invertidos 39

Estrutura de Dados e Arquivos Ementa Objetivo Geral Conteúdo Avaliação

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

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

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

Árvores Binárias de Busca (ABB) 18/11

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

Listas Estáticas. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof.

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

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

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

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

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

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

Árvores de Pesquisa (Parte I)

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

ORGANIZAÇÃO DE ARQUIVOS INDEXADOS

Estrutura de Dados. ! Listas lineares. ! Como manipulá-las: ! estática. ! dinâmicas. ! pilhas. ! filas

Transcrição:

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 único; Índices principais; Índices clustering; Índices secundários; Índices Multinível; Índices dinâmicos multinível; Arvores-B; Arvores-B + ; Índices em chaves com mais de um atributo; Hash; Grade; Índices Lógicos;

Introdução Índices: Acelerar recuperação de dados; Caminhos de acesso secundários; Acessos eficientes; Originado por qualquer campo da tabela; Associação entre diferentes índices; Ponteiro para o endereço fisico; Unico ou varios níveis; Varias estruturações; Ampla utilização;

Índices Ordenados de Nível Único Dados armazenados de forma sequencial; Índice remessivo; Chave primária; Conjunto de ponteiros; Apontam para uma cabeça em disco; Busca binario; Tamanho reduzido; Três divisões: Índices Principais; Índices Clustering; Índices Secundarios;

Índices Ordenados de Nível Único Índices Principais: Arquivo ordenado; Tamanho fixo; Dois campos; Ponteiro para cada bloco; Originario de dados unicos; Tamanho em disco reduzido; Âncora de bloco; Problemas em operações de incluir e excluir; Arquivos de overflow;

Índices Ordenados de Nível Único Índices Clustering: Campo não chave; Agrupamento de valores; Campo clustering; Recuperação acelerada; Pesquisas em grupos; Ordenado por dois campos; Índice não denso; Problemas em operações de incluir e excluir; Semelhante ao Índice Pincipal;

Índices Ordenados de Nível Único Índices Secundário: Arquivo ordenado em dois campos; Chaves secundárias; Ponteiros encadeados; Pesquisa binária; Impossibilidade de utilizar âncoras de blocos; Uma entrada para cada registro;

Originario de índices de um único nível; Índices ordenados encadeados; Ampla utilização comercial; Índices principais multiníveis; Inserção manipulada por arquivos; Índices recriáveis; Índices dinâmicos multinível: Arvores-B; Arvores-B + ;

Índices dinâmicos multinível: Redução de acesso a blocos; Arquivos fisicamente ordenados; Problemas de inclusão e exclusão; Índice multinível sem tamanho fixo; Normalmente implementados em SGBDs; Sistema flexivel e escalavel; Comumente implementado com Arvores-B;

Índices dinâmicos multinível: Arvores-B: Desenvolvidas para discos magnéticos ou memórias secundarias; Falta de espaço na memória principal; Cópia de blocos de dados na memória principal, quando necessário e; Grava na memória secundaria os dados alterados; Arvore de busca otimizada; Minimização de operações de entrada e saída; Cada nó pode apresentar varios filhos; Altura reduzida; Tempo de computação de O(log n);

Índices dinâmicos multinível: Arvores-B:

Índices dinâmicos multinível: Arvores-B: Definição: Cada nó x de uma Arvore-B possui: n[x] chaves, armazenadas em ordem crescente: chave1[x], chave2[x],..., chaven[x]. d[x] dados associados1 às n[x] chaves. Um campo booleano que define se o nó é folha ou se é um nó interno. Se x é um nó interno, então x terá n + 1 ponteiros para seus filhos. As folhas não têm filhos. Duas chaves adjacentes chavea[x], chaveb[x] em um nó x definem um intervalo onde todas as chaves ki em que chavea[x] < ki < chaveb[x] se encontrarão na sub-árvore com raiz em x acessível a partir do ponteiro filhoa+1[x].

Índices dinâmicos multinível: Arvores-B: Definição: Toda folha possui a mesma profundidade, que é a altura da árvore h. Cada nó da Arvore-B, por definição, possui restrições quanto à quantidade de chaves. Cada nó, exceto a raiz, precisa ter pelo menos t-1 chaves. Cada nó interno, exceto a raiz, precisa ter t ponteiros para seus filhos. Cada nó possui no máximo 2t-1 chaves, para que assim cada nó interno tenha no máximo 2t filhos.

Índices dinâmicos multinível: Arvores-B: Busca: Semelhante a busca binaria; Decisão deve incluir pesquisa nas chaves; n[x] + 1 decisões, sendo n[x] o número de chave em um nó, é o pior caso; Numero de acessos relativos a altura da arvores; Para n chaves, t chaves minimas por nó e altura h, tem-se O(logt n) acessos;

Índices dinâmicos multinível: Arvores-B: Inserção: Método mais complexo; Se nó não esta cheio: Apenas inserir na posição correta; Se nó estiver cheio: Identificar o dado mediano; Inserir este dado no nó pai, se for a raiz este dado se torna a nova raiz; Parte a esqueda e a direita da mediana tornam-se folhas; O novo dado é inserido; Arvore cresce mais rapidamente em largura que altura; Otimização nas buscas;

Índices dinâmicos multinível: Arvores-B + : Derivada das Arvores-B; Todos os dados são armazendos nas folhas; Folhas ligadas em sequencia; Acessos ordenados a seus campos; Oferece consultas por intervalos; Procura por determinado valor: Apos encontrar, busca o proximo ou, Encerra a busca ao chega no final da arvore;

Índices dinâmicos multinível: Arvores-B + :

Índices dinâmicos multinível: Arvores-B + : Definição: n[x] chaves, armazenadas em ordem crescente: chave1[x], chave2[x],..., chaven[x]. p[x] ponteiros para nós descendentes associados às n[x] chaves. Cada nó interno tem, no máximo, 2t ponteiros. Cada nó interno, exceto a raiz, tem pelo menos t ponteiros. A raiz tem pelo menos 2 ponteiros, caso seja um nó interno.

Índices dinâmicos multinível: Arvores-B + : Definição: A estrutura de um nó folha: n[x] chaves, armazenadas em ordem crescente: chave1[x] < chave2[x] <... < chaven[x]. d[x] dados (ou ponteiros para outra estrutura onde está o dado em si, acrescentando mais um nível de indireção) associados às n[x] chaves. P, ponteiro para o próximo nó folha. Cada folha possui pelo menos t valores. Todas as folhas se encontram no mesmo nível de profundidade.

Índices dinâmicos multinível: Arvores-B + : Busca: Semelhante a Arvore-B; Dados sempre nas folhas; Acessos ao disco igual a altura da arvore; Busca realizada em intervalos: Busca o primeiro valor na folha; Busca o segunda valor até encontrar ou finalizar as folhas da arvore;

Índices dinâmicos multinível: Arvores-B + : Inserção: Mesmo principio da inserção em Arvores-B; Busca a folha na qual o dado será inserido; Se houver espaço inserir; Caso contrario: Dividir o nó cheio; Inserir a chave mediana no nó superior; As demais chaves são distribuidas; Inserir o dado desejado; Processo deve ser recursivo; Crescimento mais rapido em largura que altura;

Índices em chaves com mais de um atributo: Mais de um atributo utilizado frequentemente como método de pesquisa; Resultados mais eficientes; Necessidade de dados com valores inteiros; Organização com chaves não primarias; Busca baseada em valores limites; Agrupamento de valores similares; Campo reduzido de busca; Baseados em hash e arquivos de grade;

Índices em chaves com mais de um atributo: Baseados em hash: Busca externa; Requer apenas dois acessos; Combinação de caracteristicas; Chaves são inteiros de um bit; Origina uma tabela de tamanho em potencia de 2; Mantem mapeado o endereço das paginas de dados; Limite das paginas pré-definidos; Divisão das paginas no estouro deste limite, semelhante as Arvores-B; Não apresenta ordenação nos dados armazendos; Nós inacessiveis durante o processo de duplicação da tabela; Possibilidade da tabela não caber na memória após duplicar seu tamanho;

Índices em chaves com mais de um atributo: Baseados em hash: Definição: Tamanho pré-determinado; Mais simples que as Arvores-B; Constituido de: Uma tabela dir com referências para páginas (buckets ou nodes). Buckets, que são os repositórios dos dados cujo tamanho máximo é 2M. N, número de itens na tabela. d, o número de bits utilizados do código hash no momento. D, a quantidade de buckets da estrutura no momento. D = 2d.

Índices em chaves com mais de um atributo: Baseados em hash: Busca: Através da função de hashing utilizada pela implementação, a chave do item é transformada em um código hash, que é um inteiro. A partir dos d primeiros bits é localizado o bucket onde estão todos os itens com aquele mesmo código hash, e realizada uma busca sequencial para localizar o item desejado.

Índices em chaves com mais de um atributo: Baseados em hash: Inserção: Realiza-se uma busca: Se o local não estiver cheio: Insere o dado; Se o local estiver cheio: Cria um novo nó vazio e examina o k-ézimo bit de d; Se este bit for 0, o item permanece no nó antigo ou, Se este bit for 1, o item é movido para o novo nó; Repete-se o processo, até a inserção; o ponteiro para o novo nó é inserido na tabela dir.

Índices em chaves com mais de um atributo: Baseados em hash: Inserção: O ponto crucial da inserção dá-se no momento em que o ponteiro para o novo nó é inserido na tabela dir. Se k for igual a d, apenas é inserido o novo ponteiro na tabela dir. Se k for maior que d, então o tamanho de D deve ser dobrado, ou seja, o número máximo de nós gerenciados pela tabela dir deve ser dobrado. Neste momento, mais um bit do código hash passa a ser utilizado para mapear os nós (d = d + 1). Este procedimento é realizado até que k volte a ser igual a d.

Índices em chaves com mais de um atributo: Arquivos de Grade: Agrupamento dos dados em tabelas; Aplicação de uma escala ou dimensão linear; Cada célula apresenta um ponteiro para um conjunto de registros; Aplicar a escala em numeros inteiros, preferencialmente não chaves primarias; Escala adequada para abrangir todo o intervalo de dados; Para n chaves de pesquisa, o array de grade possuirá n dimensões; O agrupamento em dimensões reduz o tempo de busca; Gasto adicional de espaço para o array e elevado custo de manutenção;

Índices em chaves com mais de um atributo: Arquivos de Grade:

Índices Lógicos Índices fisicos apresentam problemas: Necessidade de mobilidade em disco; Gasto computacional elevado; Índices lógicos suprimem este problema; Índices na forma <K,K P >: Cada entrada possui um valor K para o campo de indexação; Valor combinado com o valor K P do campo utilizado para a organização principal do arquivo;

Índices Lógicos Ao pesquisar K, um programa pode localizar o valor correspondente de K P ; Com esses dados pode-se acessar o registro através da organização principal do arquivo; Insere um nível acional de acesso indireto entre a estrutura de acesso e os dados; Índices lógicos são utilizados quando frequentemente são alterados endereços de registros físicos; Os custos desse acesso indireto é a pesquisa adicional baseada na organização principal do arquivo;

Conclusão Um conjunto de índices deve ser bem elaborado; Um estudo das funcionalidades do BD deve ser realisado, para poder criar uma estruturação adequada; Erros no projeto podem acarretar em custos elevados de manutenção; Quanto mais rapida a resposta mais eficiente é o sistema. Índices são de extrema eficiência e importancia num projeto de BD, mas um projeto mal elaborado elimina estas caracteristicas e contribui para a redução da qualidade do sistema final.