h2>Índices em Bancos de Dados: Tipos e Técnicas

Classificado em Design e Engenharia

Escrito em em português com um tamanho de 3,45 KB.

Um índice é uma estrutura (ou arquivo) auxiliar associado a uma tabela (ou coleção de dados). Sua função é acelerar o tempo de acesso às linhas de uma tabela, criando ponteiros para os dados armazenados em colunas específicas.

Índices Ordenados: Baseiam-se na ordenação de valores, permitindo acesso aleatório rápido aos registros de um arquivo.

Índices Hash: Baseiam-se na distribuição uniforme dos valores por meio de uma faixa de buckets (baldes). O bucket ao qual um valor é atribuído é determinado por uma função, chamada de função hash.

Em que fatores devemos nos basear para escolher a melhor técnica de índice?

  • Tipos de Acesso: Acessos eficientes
  • Tempo de Acesso: Depende da técnica
  • Tempo de Inserção: Localizar e atualizar
  • Tempo de Exclusão: Localizar e atualizar
  • Espaço Adicional: Espaço x desempenho

Índice Primário: O arquivo e/ou tabela que contém os registros está ordenada sequencialmente pela mesma chave de procura do índice. Em geral, a chave de procura de um índice primário é a chave primária, embora nem sempre isso ocorra.

Índice Secundário: São os índices cuja chave de procura está em uma ordem diferente da ordem do arquivo e/ou tabela.

Índices Densos: Um registro de índice (ou entrada de índice) aparece para cada valor de chave de procura no arquivo/tabela. O registro do índice contém o valor da chave de procura e um ponteiro para o primeiro registro de dados com esse valor.

Índices Esparsos: Um registro de índice é criado apenas para alguns dos valores do arquivo/tabela. Também em cada registro contém o valor da chave de procura e um ponteiro para o primeiro registro de dados com esse valor.

Árvore Binária ou B-Tree (Binary Tree): Um índice Árvore-B+ tem a forma de uma árvore balanceada, na qual todos os caminhos a partir da raiz da árvore até uma de suas folhas têm o mesmo comprimento. O desempenho dos índices sequenciais se degrada conforme o arquivo cresce. A tecnologia de índice B-Tree permite buscas muito eficientes mesmo em gigantescas bases de dados. Praticamente todos os bancos de dados SQL baseiam-se nesse padrão de buscas.

Índice Hashing Estático: Baseiam-se na distribuição uniforme dos valores por meio de uma faixa de buckets (baldes). O bucket ao qual um valor é atribuído é determinado por uma função, chamada de função hash. Distribui as chaves armazenadas uniformemente por todos os buckets.

Estouro de Bucket (Overflows de Bucket): Quando um registro é inserido e o bucket para o qual o registro deve ser inserido não possui espaço suficiente, ocorre um overflow de bucket ou estouro de bucket. Acontece devido a: Buckets insuficientes: O nº de buckets nb deve ser escolhido tal que nb > nr/fr, em que nr denota o número total de registros e fr denota o número de registros que caberão em um bucket.

A solução é criar Buckets de estouro ou Buckets de overflow.

Índices Primários é a melhor forma de utilizar, pois apontam direto para a tabela.

Índices de Hash é a melhor forma de utilizar, pois vai ser apontado direto para aquele bucket que o valor está armazenado.

Entradas relacionadas: