Os principais gerenciadores de bancos de dados permit...
· no primeiro arranjo, os registros da tabela indexada ficam fisicamente armazenados numa variação da estrutura de árvores B, juntamente com as chaves;
· no segundo arranjo, os registros e as chaves indexadas ficam em áreas separadas, como é feito com índices tabelas heap.
Sobre esses arranjos, assinale a afirmativa correta.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: D - O acesso a um registro da tabela a partir da chave primária é geralmente mais rápido no primeiro arranjo.
Para entender por que a alternativa D é a correta, precisamos falar sobre os dois arranjos de índices baseados em árvores B mencionados. No primeiro arranjo, conhecido como Índice Clusterizado ou Índice Primário, os registros são armazenados fisicamente na estrutura de árvore B, na mesma sequência das chaves. Isso significa que a chave de busca e os dados estão no mesmo local, o que torna a recuperação de dados muito mais rápida quando se utiliza a chave primária.
Por outro lado, o segundo arranjo corresponde ao Índice Não Clusterizado ou Índice Secundário, onde as chaves indexadas apontam para registros em uma área separada. Isso significa que, após encontrar a chave, o sistema ainda precisa acessar outra parte do disco para recuperar o registro completo, o que adiciona um passo extra ao processo de recuperação, tornando-o, em geral, mais lento se comparado com o primeiro arranjo.
Portanto, a Alternativa D está correta porque quando um banco de dados usa índices clusterizados, como no primeiro arranjo, o acesso aos registros é otimizado para operações que utilizam a chave primária, já que as chaves e os registros correspondentes estão armazenados juntos, minimizando a necessidade de movimentações adicionais do disco para encontrar os dados desejados.
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
Arranjo 1 = Clustered Index = Normalmente usam chave primária, salvam os dados em uma árvore-B ORDENADA
Arranjo 2 = Non-Clustered Index = Usam uma tabela HEAP que é uma estrutura que salva os dados de forma desordenada, os índices são salvos na heap que é uma estrutura separada da tabela.
Sabendo disso, o índice clustered por usar uma árvore-B ordenada normalmente é mais eficiente que o non-clustered, afinal com os dados ordenados é possível fazer uma consulta em árvore de complexidade O(log(n).
Na Heap, como os dados não estão ordenados, na média a consulta tem complexidade igual a de uma lista O(n).
A heap não é uma estrutura boa para buscas no geral, serve para inserir elementos e remover o menor ou maior elemento. (Min/Max Heap).
Por que é eficiente para buscar o primeiro e último elemento? Porque na MAX/MIN heap o menor ou maior elemento está SEMPRE na raiz.
Enfim, vale a pena ler sobre o funcionamento das estruturas da Heap e B-tree para se aprofundar no assunto de índices e entender a razão das coisas.
a) Só pode ter um único índice clustered por tabela
b) Não existe tal restrição
c) Heap vs B-tree até onde eu sei não vai interferir no espaço de armazenamento
d) Clustered Index usa a PK, por usar B-tree ordenada é mais rápido a busca (CERTA)
e) Clustered Index usando B-tree é feito justamente para o acesso de dados ordenados.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo