3.2 - Índices de agrupamento

Se os registros de arquivo forem fisicamente ordenados em um campo não chave (que não tem um valor distinto para cada registro, aceitando, portanto, dados duplicados) esse campo é chamado de campo de agrupamento, e o arquivo de dados é chamado de arquivo agrupado. Podemos criar um tipo de índice diferente, chamado índice de agrupamento, para agilizar a recuperação de todos os registros que têm o mesmo valor para o campo de agrupamento.

Isso difere de um índice primário, que exige que o campo de ordenação do arquivo de dados tenha um valor distinto para cada registro.

Ou seja, em uma tabela que tem um campo (coluna) com valores únicos, exclusivos e não repetidos então essa coluna pode possuir um índice primário. Por outro lado, se esse campo possuir valores que podem se repetir, então esse campo só pode possuir um índice do tipo agrupamento.

A principal diferença entre um e outro é que para um valor de pesquisa em um índice primário, a resposta será sempre zero ou um registro; já para um índice de agrupamento, a resposta para a pesquisa poderá ser zero, um ou mesmo vários registros. Resumindo, se o campo é do tipo RESTRICT ou UNIQUE (que não aceita valores repetidos), então se aplica um índice primário, do contrário, aplica-se um índice de agrupamento.

Posteriormente vamos ver os padrões SQL para a criação de índices (que já foram superficialmente vistos na matéria Banco de dados I).

Assim como em um índice primário, um índice de agrupamento também é um arquivo ordenado com dois campos; o primeiro campo é do mesmo tipo do campo de agrupamento do arquivo de dados, e o segundo campo é um ponteiro de bloco de disco. Há uma entrada no índice de agrupamento para cada valor distinto do campo de agrupamento, e ele contém o valor e um ponteiro para o primeiro bloco no arquivo de dados que tem um registro com esse valor para seu campo de agrupamento.

Copyright © 2016 AIEC.