logo

Indexação em SGBD

  • A indexação é usada para otimizar o desempenho de um banco de dados, minimizando o número de acessos ao disco necessários quando uma consulta é processada.
  • O índice é um tipo de estrutura de dados. Ele é usado para localizar e acessar rapidamente os dados em uma tabela de banco de dados.

Estrutura do índice:

Os índices podem ser criados usando algumas colunas do banco de dados.

10 1 milhão
Indexação de DBMS em DBMS
  • A primeira coluna do banco de dados é a chave de pesquisa que contém uma cópia da chave primária ou chave candidata da tabela. Os valores da chave primária são armazenados em ordem de classificação para que os dados correspondentes possam ser acessados ​​facilmente.
  • A segunda coluna do banco de dados é a referência de dados. Ele contém um conjunto de ponteiros contendo o endereço do bloco do disco onde o valor da chave específica pode ser encontrado.

Métodos de Indexação

Indexação de DBMS em DBMS

Índices ordenados

Os índices geralmente são classificados para tornar a pesquisa mais rápida. Os índices classificados são conhecidos como índices ordenados.

Exemplo : Suponha que temos uma tabela de funcionários com milhares de registros e cada um deles com 10 bytes de comprimento. Se seus IDs começarem com 1, 2, 3... e assim por diante, teremos que pesquisar alunos com ID-543.

  • No caso de um banco de dados sem índice, temos que pesquisar o bloco do disco desde o início até atingir 543. O SGBD irá ler o registro após ler 543*10=5430 bytes.
  • No caso de um índice, pesquisaremos usando índices e o SGBD lerá o registro após ler 542*2= 1084 bytes que é muito menos comparado ao caso anterior.

Índice Primário

  • Se o índice for criado com base na chave primária da tabela, ele será conhecido como indexação primária. Essas chaves primárias são exclusivas para cada registro e contêm uma relação 1:1 entre os registros.
  • Como as chaves primárias são armazenadas em ordem de classificação, o desempenho da operação de busca é bastante eficiente.
  • O índice primário pode ser classificado em dois tipos: índice denso e índice esparso.

Índice denso

  • O índice denso contém um registro de índice para cada valor da chave de pesquisa no arquivo de dados. Isso torna a pesquisa mais rápida.
  • Neste, o número de registros na tabela de índice é igual ao número de registros na tabela principal.
  • Precisa de mais espaço para armazenar o próprio registro do índice. Os registros de índice possuem a chave de pesquisa e um ponteiro para o registro real no disco.
Indexação de DBMS em DBMS

Índice esparso

  • No arquivo de dados, o registro do índice aparece apenas para alguns itens. Cada item aponta para um bloco.
  • Neste, em vez de apontar para cada registro da tabela principal, o índice aponta para os registros da tabela principal em um intervalo.
Indexação de DBMS em DBMS

Índice de agrupamento

  • Um índice clusterizado pode ser definido como um arquivo de dados ordenado. Às vezes, o índice é criado em colunas de chave não primária que podem não ser exclusivas para cada registro.
  • Nesse caso, para identificar o registro mais rapidamente, agruparemos duas ou mais colunas para obter o valor único e criaremos um índice a partir delas. Este método é chamado de índice de cluster.
  • Os registros que possuem características semelhantes são agrupados e são criados índices para esses grupos.

Exemplo : suponha que uma empresa contenha vários funcionários em cada departamento. Suponha que usamos um índice de clustering, onde todos os funcionários que pertencem ao mesmo Dept_ID são considerados dentro de um único cluster, e os ponteiros do índice apontam para o cluster como um todo. Aqui Dept_Id é uma chave não exclusiva.

Indexação de DBMS em DBMS

O esquema anterior é um pouco confuso porque um bloco de disco é compartilhado por registros que pertencem a diferentes clusters. Se usarmos um bloco de disco separado para clusters separados, isso será chamado de melhor técnica.

Indexação de DBMS em DBMS

Índice Secundário

Na indexação esparsa, à medida que o tamanho da tabela aumenta, o tamanho do mapeamento também aumenta. Esses mapeamentos geralmente são mantidos na memória primária para que a busca de endereços seja mais rápida. Em seguida, a memória secundária pesquisa os dados reais com base no endereço obtido no mapeamento. Se o tamanho do mapeamento aumentar, a busca do endereço se tornará mais lenta. Neste caso, o índice esparso não será eficiente. Para superar esse problema, é introduzida a indexação secundária.

Na indexação secundária, para reduzir o tamanho do mapeamento, é introduzido outro nível de indexação. Neste método, o grande intervalo para as colunas é selecionado inicialmente para que o tamanho do mapeamento do primeiro nível se torne pequeno. Em seguida, cada intervalo é dividido em intervalos menores. O mapeamento do primeiro nível é armazenado na memória primária, para que a busca de endereços seja mais rápida. O mapeamento do segundo nível e os dados reais são armazenados na memória secundária (disco rígido).

Indexação de DBMS em DBMS

Por exemplo:

mvcjava
  • Se você quiser encontrar o registro do lançamento 111 no diagrama, ele irá pesquisar a entrada mais alta que seja menor ou igual a 111 no índice de primeiro nível. Chegará a 100 neste nível.
  • Então, no segundo nível do índice, novamente atinge o máximo (111)<= 111 and gets 110. now using the address 110, it goes to data block starts searching each record till 111. < li>
  • É assim que uma pesquisa é realizada neste método. Inserir, atualizar ou excluir também é feito da mesma maneira.