A respeito de índices clusterizados em tabelas de bancos de dados relacionais, analise as afirmativas a seguir. I. Separam completamente as chaves e os registros da tabela indexada. II. Podem resultar em ganhos significativos de performance na execução de consultas que acessam registros associados a um certo valor, como os itens de uma ordem de compra, por exemplo. III. São raramente utilizados, porque demandam mais espaço de armazenagem. Está correto o que se afirma em
- A)I, II e III.
A alternativa reúne I, II e III. A I contraria o conceito de índice clusterizado, porque nele as linhas ficam fisicamente organizadas pela chave do índice, em vez de ficarem completamente separadas dos dados como ocorre no índice não clusterizado. A II está correta, pois esse tipo de índice favorece consultas que trazem várias linhas associadas ao mesmo valor, como os itens de um pedido; já a III erra ao dizer que eles são raros por demandarem mais espaço, quando o ponto crítico costuma ser o custo de manter a ordem física nas inserções e atualizações.
- B)I e II, somente.
A alternativa afirma que apenas a I e a II estariam corretas, ou seja, que haveria separação completa entre chave e registros e, ao mesmo tempo, ganho de desempenho em consultas por valor comum. O problema está na I: o clustered index não separa totalmente chave e dados, porque ele organiza os próprios registros pela chave do índice, o que é justamente sua característica central. A II descreve corretamente a vantagem de acessar grupos de linhas próximas fisicamente, mas a presença da I torna a alternativa incorreta.
- C)I e III, somente.
A alternativa sustenta que a I e a III estariam corretas. A I erra ao dizer que chaves e registros ficam completamente separados, porque no índice clusterizado a ordenação física das linhas segue a chave do índice. A III também erra ao atribuir a suposta pouca utilização ao espaço de armazenamento, já que a desvantagem mais relevante está na manutenção da ordem física dos dados e no impacto sobre operações de escrita.
- D)II e III, somente.
A alternativa reconhece a utilidade da II, isto é, o fato de o índice clusterizado melhorar consultas que recuperam várias linhas relacionadas a um mesmo valor, aproveitando a proximidade física dos registros. Porém, ela acrescenta a III, e aí o raciocínio falha: índices clusterizados não são evitados porque consomem mais espaço, mas sim porque podem encarecer inserções, exclusões e atualizações ao exigir reorganização física. Assim, a descrição do benefício é boa, mas a justificativa da raridade não procede.
- E)II, somente.
A alternativa se limita à II, que descreve corretamente o principal ganho do índice clusterizado: acelerar buscas que retornam um conjunto de registros correlatos, como itens de uma mesma ordem de compra. Isso ocorre porque os dados ficam fisicamente ordenados pela chave, o que melhora a leitura sequencial e reduz acessos aleatórios. As afirmativas I e III ficam de fora porque a primeira descreve de forma incompatível a estrutura do clustered index e a terceira aponta um motivo equivocado para sua suposta baixa utilização.
Gabarito: E
Indice clusterizado e aquele que organiza fisicamente os dados da tabela pela chave do indice, ou, em alguns SGBDs, define a ordem de armazenamento das linhas. Em vez de separar totalmente chave e registro, ele aproxima os dados do valor pesquisado, o que ajuda muito quando voce consulta varios registros relacionados entre si. Pense nos itens de uma ordem de compra: faz bastante sentido que eles fiquem juntos, para a leitura vir mais rapida e com menos idas ao disco. Por isso a afirmativa I esta errada. O indice clusterizado nao separa completamente chaves e registros da tabela indexada; ao contrario, ele costuma estar ligado ao proprio armazenamento dos dados, variando conforme o SGBD. Ja a afirmativa II esta correta, porque esse tipo de indice costuma trazer ganho relevante em consultas por intervalo, por agrupamento de registros e por acessos que buscam varios dados associados ao mesmo valor. A afirmativa III tambem esta errada. O ponto forte do clusterizado nao e "ser raro por gastar mais espaco". Em geral, o custo maior esta mais relacionado a manutencao e reorganizacao dos dados quando ha insercoes, delecoes e atualizacoes, nao a um excesso tipico de armazenamento. Em banco relacional, ele e muito usado em tabelas em que a ordem fisica ajuda na consulta, embora normalmente so exista um por tabela. Resumo de prova: clusterizado aproxima os dados, melhora consulta por agrupamento e nao se justifica pela ideia de separar tudo nem por ser uma extravagancia de espaco. Por isso, somente a II esta correta.