No índice de agrupamento ou denso, a ordenação física dos da...

Próximas questões
Com base no mesmo assunto
Q48216 Programação
Julgue os próximos itens, que se referem a frameworks Java
Server Faces (JSF) e Hibernate.

No índice de agrupamento ou denso, a ordenação física dos dados e do índice é a mesma, ou seja, a chave de busca também define a ordem sequencial dos dados, podendo haver, no máximo, dois índices desse tipo por tabela. Apesar de exigirem mais sobrecarga de manutenção para inserções e exclusões, é mais rápido localizar um registro com uso do índice esparso que com o índice de agrupamento.
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: E - Errado.

A questão aborda o tema de índices em bancos de dados, o que é um pouco fora do escopo de frameworks Java como JSF (JavaServer Faces) e Hibernate. No entanto, o conhecimento sobre índices é relevante para desenvolvedores que trabalham com otimização de consultas e performance de banco de dados, algo que pode ser feito utilizando o Hibernate em aplicações Java.

Na questão é mencionado o "índice de agrupamento" ou "clustered index", que de fato organiza os dados fisicamente na mesma ordem das chaves do índice. Isso significa que, para cada tabela, pode haver apenas um índice de agrupamento, pois não é possível armazenar os mesmos dados em múltiplas ordens físicas diferentes. Por outro lado, os "índices esparsos" ou "non-clustered indexes" não organizam fisicamente os dados, mas sim mantêm ponteiros para os dados que estão organizados em algum outro lugar, geralmente no índice de agrupamento.

A afirmação de que "podendo haver, no máximo, dois índices desse tipo por tabela" está incorreta, pois como mencionado anteriormente, só pode existir um índice de agrupamento por tabela. Adicionalmente, a afirmação de que "é mais rápido localizar um registro com uso do índice esparso que com o índice de agrupamento" também está equivocada. Na verdade, os índices de agrupamento geralmente proporcionam uma busca mais rápida, visto que os dados estão fisicamente organizados de acordo com o índice, o que reduz o tempo de busca.

Portanto, a alternativa correta é "Errado" porque a informação apresentada na questão contém dois erros conceituais sobre a natureza dos índices em bancos de dados e sua aplicação em tabelas.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

"No índice de agrupamento ou denso" - ERRADO. O Indice de agrupamento é esparço. Além disso, denso é uma caracterísitca de índices, e não um tipo de índice.

"a ordenação física dos dados e do índice é a mesma" - CERTO. Agrupamento opera sobre campos ordenados. Portanto, o índice e os dados terão a mesma ordenação

", ou seja, a chave de busca também define a ordem sequencial dos dados, podendo haver, no máximo, dois índices desse tipo por tabela. " - ERRADO. Podemos ter apenas 1 índice Principal/Primário OU 1 índice de agrupamento/clusterin

"Apesar de exigirem mais sobrecarga de manutenção para inserções e exclusões, é mais rápido localizar um registro com uso do índice esparso que com o índice de agrupamento. " - ERRADO denovo. Esparço é uma característica dos índices. E o índice de agrupamento é esparço.

Ou seja, cheio de erro :)

A idéia de termos índices em um SGBD é para facilitar buscas.
Imagine uma agenda. É como pesquisar no índice qual a página que se encontra os nomes iniciados com letra "L".
O banco realiza a busca sobre a tabela de índice. O índice retorna um ponteiro para a localização em disco dos dados procurados (como se fosse a página da agenda). De posse desta informação, podemos fazer uma busca sequencia no local apontado (seria como ler nome por nome da folha da agenda).

Os índices podem ser de nível único (primário, clustering/agregação) ou multinível (árvores)

Primário ou Principal: opera sobre atributos chaves. A idéia é criar uma tablea de índices, bem ao estilo de agenda. A tabela de índice terá duas colunas: valor da chave, ponteiro para o local do registro associado à chave em disco. Aí vocês perguntam, pra quê criar uma segunda tabela? Não é mais fácil pesquisar diretamente na tabela original? Certamente não. A tabela original contem, além de atributo chave, vários outros atributos. A tabela de índice é enxuta. Além disso, a tabela de índice não tem uma cópia de todas as chaves. Ele elege algumas chaves estratégicas. Por exemplo, na tabela de nomes, poderíamos ter índices somente para A,J,Z. Isso já nos reduziria 1/3 da área de busca na tabela original.
A desvantagem deste método é o custo de inserção e remoção. Quando adicionar registro, todos os demais registros precisaram ser movidos para manter a ordenção do campo. Consequentemente, a tabela de índice também será alterada.

Clustering/Agregação: Se você tiver um campo não chave ordenados e com valores que se repetem muito, é ideal ter um índice de clustering. A tabela de índice terá um valor para cada item distinto do campo a ser indexado. A tabela de índice vai te indicar onde está o arquivo daquele agrupoamento que você procura.

Os índices podem ser classificados em:

Denso - Uma entrada na tabela de índice para cada registro da tabela original
Esparço - Cada entrada de índice aponta para o primeiro elemento de um grupo da tabela original.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo