Indexação em SGBD: O que é, Tipos de Índices com EXEMPLOS
⚡ Resumo Inteligente
A indexação em bancos de dados é uma técnica de estruturação de dados que recupera registros rapidamente por meio de mapeamento.ping Uma chave de busca para o endereço em disco do seu registro. Índices primários, secundários, de agrupamento, multiníveis e em árvore B tratam cada espaço de negociação, velocidade e manutenção de maneira diferente.

O que é Indexação?
Indexação Um índice é uma técnica de estrutura de dados que permite recuperar registros de um arquivo de banco de dados rapidamente. Um índice é uma pequena tabela com apenas duas colunas. A primeira coluna contém uma cópia da chave primária ou candidata de uma tabela. Sua segunda coluna contém um conjunto de... ponteiros Contém 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.
Sem um índice, o banco de dados precisa examinar cada linha para responder a uma consulta. Com um índice, ele pula diretamente para o bloco correspondente, e é por isso que o tipo de índice escolhido tem um grande impacto no desempenho.
Tipos de indexação em SGBD

A indexação em um banco de dados é definida com base em seus atributos de indexação. Os dois principais tipos de métodos de indexação são:
- Indexação Primária
- Indexação Secundária
Índice primário em DBMS
Um índice primário é um arquivo ordenado de tamanho fixo com dois campos. O primeiro campo é o mesmo que a chave primária, e o segundo campo aponta para aquele bloco de dados específico. No índice primário, existe sempre uma relação um-para-um entre as entradas na tabela de índice.
O índice primário é ainda subdividido em dois tipos:
- Índice Denso
- Índice Esparso
Índice Denso
Em um índice denso, um registro é criado para cada valor de chave de pesquisa no banco de dados. Isso ajuda a pesquisar mais rapidamente, mas requer mais espaço para armazenar os registros do índice. Nesse método, os registros contêm o valor da chave de pesquisa e apontam para o registro real no disco.
Índice Esparso
Um índice esparso é um registro de índice que aparece apenas para alguns dos valores no arquivo. O índice esparso ajuda a resolver os problemas da indexação densa em DBMSNessa técnica, um intervalo de colunas de índice armazena o mesmo endereço de bloco de dados e, quando os dados precisam ser recuperados, esse endereço de bloco é buscado.
Um índice esparso armazena registros de índice apenas para alguns valores de chave de pesquisa. Ele requer menos espaço e menos manutenção para inserções e exclusões, mas é mais lento que um índice denso para localizar registros.
Abaixo, segue um exemplo de índice esparso em um banco de dados.
Índice denso vs. Índice esparso
As duas variantes principais do índice apresentam vantagens e desvantagens opostas, resumidas abaixo.
| Aspecto | Índice Denso | Índice Esparso |
|---|---|---|
| entradas | Uma por chave de pesquisa | Um por bloco |
| Espaço (Space) | Mais | Less |
| Velocidade de pesquisa | Mais rápido | Mais lento |
| Manutenção | Mais elevado | Abaixe |
Índice secundário em DBMS
Em um SGBD, um índice secundário pode ser gerado por um campo que possui um valor único para cada registro e deve ser uma chave candidata. Também é conhecido como índice não clusterizado.
Essa técnica de indexação de banco de dados em dois níveis é usada para reduzir o mapa.ping tamanho do primeiro nível. Para o primeiro nível, uma grande variedade de números é selecionada, portanto o mapaping O tamanho permanece sempre 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 número de conta (acc_no), mas você pode querer encontrar todas as contas em uma agência específica do banco ABC.
Aqui, você pode ter um índice secundário para cada chave de pesquisa. O registro do índice aponta para um bucket que contém ponteiros para todos os registros com esse valor específico de chave de pesquisa.
Clusterindexando no DBMS
Em um índice clusterizado, os próprios registros são armazenados no índice, e não ponteiros. Às vezes, o índice é criado em colunas que não são chaves primárias, que podem não ser exclusivas para cada registro. Nessa situação, você pode agrupar duas ou mais colunas para obter valores exclusivos e criar um índice, chamado índice clusterizado. Isso também ajuda a identificar o registro mais rapidamente.
Exemplo: Suponha que uma empresa tenha contratado muitos funcionários para diversos departamentos. Nesse caso, deve-se criar um índice de agrupamento para todos os funcionários que pertencem ao mesmo departamento.
Eles são considerados como um único cluster, e o índice aponta para o cluster como um todo. Aqui, Department_no é uma chave não exclusiva.
O que é um índice multinível?
A indexação multinível é criada quando um índice primário não cabe na memória. Nesse tipo de método de indexação, é possível reduzir o número de acessos ao disco necessários para alcançar qualquer registro. Os registros são mantidos em disco como um arquivo sequencial, e um índice esparso é criado sobre esse arquivo.
Índice B-Tree
O índice B-tree é a estrutura de dados mais utilizada para indexação baseada em árvores em SGBDs. Trata-se de um formato multinível de indexação baseada em árvores que utiliza balanceamento de índices. árvores binárias de buscaTodos os nós folha da árvore B contêm os ponteiros de dados reais.
Além disso, todos os nós folha estão interligados por uma lista ligada, o que permite que uma árvore B suporte acesso aleatório e sequencial.
- Os nós folha devem ter entre 2 e 4 valores.
- Cada caminho da raiz até uma folha tem, em sua maior parte, o mesmo comprimento.
- Os nós não-folha, com exceção do nó raiz, possuem entre 3 e 5 nós filhos.
- Cada nó que não seja raiz ou folha tem entre n/2 e n filhos.
Onde predominam as pesquisas por correspondência exata e as pesquisas por intervalo são raras, Hashing Pode ser uma alternativa mais rápida a um índice de árvore B.
Vantagens da indexação
As principais vantagens da indexação são:
- Isso ajuda a reduzir o número total de operações de E/S necessárias para recuperar dados, de forma que você não precise acessar uma linha diretamente da tabela.
- Oferece aos usuários busca e recuperação de dados mais rápidas.
- Isso pode reduzir o espaço ocupado pelas tabelas, pois não é necessário armazenar o ROWID no índice para cada linha vinculada.
- Os dados nos nós folha já estão ordenados pelo valor da chave.
Desvantagens da indexação
As principais desvantagens da indexação são:
- Para realizar a indexação, você precisa de uma chave primária na tabela com um valor único.
- Não é possível criar outro índice em dados que já estejam organizados por índice da mesma maneira.
- Você não tem permissão para particionar uma tabela organizada por índice.
- A indexação diminui o desempenho em consultas INSERT, DELETE e UPDATE.





