Indexação em SGBD: O que é, Tipos de Índices com EXEMPLOS

O que é Indexação?

Indexação é uma técnica de estrutura de dados que permite recuperar rapidamente registros de um arquivo de banco de dados. Um índice é uma pequena tabela com apenas duas colunas. A primeira coluna compreende uma cópia da chave primária ou candidata de uma tabela. Sua segunda coluna contém um conjunto de ponteiros para armazenar o endereço do bloco de disco onde esse valor de chave específico está armazenado.

Um índice -

  • Recebe uma chave de pesquisa como entrada
  • Retorna com eficiência uma coleção de registros correspondentes.

Tipos de indexação em SGBD

Tipos de indexação em SGBD
Tipo de índices no banco de dados

A indexação no banco de dados é definida com base em seus atributos de indexação. Dois tipos principais de métodos de indexação são:

  • Indexação Primária
  • Indexação Secundária

Índice primário em DBMS

O índice primário é um arquivo ordenado com tamanho fixo e dois campos. O primeiro campo é igual a uma chave primária e o segundo campo é apontado para aquele bloco de dados específico. No Índice primário, há sempre um relacionamento um para um entre as entradas na tabela de índice.

A indexação primária em DBMS também é dividida em dois tipos.

  • Índice Denso
  • Índice Esparso

Índice Denso

Em um índice denso, um registro é criado para cada chave de pesquisa avaliada no banco de dados. Isso ajuda você a pesquisar mais rapidamente, mas precisa de mais espaço para armazenar registros de índice. Nesta indexação, os registros do método contêm o valor da chave de pesquisa e apontam para o registro real no disco.

Índice Denso

Índice Esparso

É um registro de índice que aparece apenas para alguns valores do arquivo. O Sparse Index ajuda você a resolver os problemas de indexação densa em DBMS. Neste método de técnica de indexação, um intervalo de colunas de índice armazena o mesmo endereço de bloco de dados e, quando os dados precisam ser recuperados, o endereço do bloco será buscado.

No entanto, o índice esparso armazena registros de índice apenas para alguns valores de chave de pesquisa. Ele precisa de menos espaço, menos sobrecarga de manutenção para inserção e exclusões, mas é mais lento em comparação com o índice denso para localização de registros.

Abaixo está um exemplo de índice de banco de dados de índice esparso

Índice Esparso

Índice secundário em DBMS

O Índice secundário no SGBD pode ser gerado por um campo que possui um valor único para cada registro, devendo ser uma chave candidata. Também é conhecido como índice sem cluster.

Esta técnica de indexação de banco de dados de dois níveis é usada para reduzir o tamanho do mapeamento do primeiro nível. Para o primeiro nível, uma grande variedade de números é selecionada por causa disso; o tamanho do mapeamento sempre permanece pequeno.

Exemplo de índice secundário

Vamos entender a indexação secundária com um exemplo de índice de banco de dados:

Em um banco de dados de contas bancárias, os dados são armazenados sequencialmente por acc_no; você pode querer encontrar todas as contas de uma agência específica do banco ABC.

Aqui, você pode ter um índice secundário no SGBD para cada chave de pesquisa. O registro de índice é um ponto de registro para um depósito que contém ponteiros para todos os registros com seu valor de chave de pesquisa específico.

Exemplo de índice secundário

Clusterindexando no DBMS

Em um índice clusterizado, os próprios registros são armazenados no índice e não nos ponteiros. Às vezes, o índice é criado em colunas de chave não primária que podem não ser exclusivas para cada registro. Em tal situação, você pode agrupar duas ou mais colunas para obter valores exclusivos e criar um índice chamado índice clusterizado. Isso também ajuda você a identificar o registro com mais rapidez.

Exemplo:

Vamos supor que uma empresa recrutou muitos funcionários em vários departamentos. Neste caso, a indexação de cluster no SGBD deve ser criada para todos os funcionários que pertencem ao mesmo departamento.

É considerado um único cluster e os pontos de índice apontam para o cluster como um todo. Aqui, Department _no é uma chave não exclusiva.

O que é índice multinível?

Indexação multinível em banco de dados é criado quando um índice primário não cabe na memória. Neste tipo de método de indexação, você pode reduzir o número de acessos ao disco para encurtar qualquer registro e mantê-lo em disco como um arquivo sequencial e criar uma base esparsa nesse arquivo.

Índice multinível

Índice B-Tree

O índice de árvore B é a estrutura de dados amplamente utilizada para indexação baseada em árvore em SGBD. É um formato multinível de indexação baseada em árvore na técnica DBMS que possui balanceamento árvores binárias de busca. Todos os nós folha da árvore B significam ponteiros de dados reais.

Além disso, todos os nós folha são interligados por uma lista de links, o que permite que uma árvore B suporte acesso aleatório e sequencial.

Índice B-Tree

  • Os nós principais devem ter entre 2 e 4 valores.
  • Todos os caminhos da raiz à folha têm, em sua maioria, comprimento igual.
  • Os nós não folha, exceto o nó raiz, têm entre 3 e 5 nós filhos.
  • Todo nó que não é raiz ou folha tem entre n/2] e n filhos.

Vantagens da indexação

Prós/vantagens importantes da indexação são:

  • Ele ajuda a reduzir o número total de operações de E/S necessárias para recuperar esses dados, para que você não precise acessar uma linha no banco de dados a partir de uma estrutura de índice.
  • Oferece pesquisa e recuperação de dados mais rápidas aos usuários.
  • A indexação também ajuda a reduzir o espaço de tabela, pois você não precisa vincular a uma linha de uma tabela, pois não há necessidade de armazenar o ROWID no Índice. Assim você poderá reduzir o espaço de tabela.
  • Você não pode classificar dados nos nós principais, pois o valor da chave primária os classifica.

Desvantagens da indexação

Desvantagens/contras importantes da indexação são:

  • Para realizar a indexação do sistema de gerenciamento de banco de dados, você precisa de uma chave primária na tabela com um valor exclusivo.
  • Você não pode realizar nenhum outro índice no banco de dados nos dados indexados.
  • Você não tem permissão para particionar uma tabela organizada por índice.
  • Indexação SQL Diminui o desempenho nas consultas INSERT, DELETE e UPDATE.

Resumo

  • A indexação é uma pequena tabela que consiste em duas colunas.
  • Dois tipos principais de métodos de indexação são 1) Indexação Primária 2) Indexação Secundária.
  • O índice primário é um arquivo ordenado com tamanho fixo e dois campos.
  • A indexação primária também é dividida em dois tipos: 1) Índice denso 2) Índice esparso.
  • Em um índice denso, um registro é criado para cada chave de pesquisa avaliada no banco de dados.
  • Um método de indexação esparso ajuda a resolver os problemas de indexação densa.
  • O índice secundário no SGBD é um método de indexação cuja chave de pesquisa especifica uma ordem diferente da ordem sequencial do arquivo.
  • ClusterO índice de processamento é definido como um arquivo de dados do pedido.
  • A indexação multinível é criada quando um índice primário não cabe na memória.
  • O maior benefício da indexação é que ela ajuda a reduzir o número total de operações de E/S necessárias para recuperar esses dados.
  • A maior desvantagem de realizar a indexação do sistema de gerenciamento de banco de dados é que você precisa de uma chave primária na tabela com um valor exclusivo.