← Questões de Banco de Dados

Banco de Dados · FGV · 2023

Questão comentada de Banco de Dados

Basicamente, um Sistema Gerenciador de Bancos de Dados (SGBD) pode ser considerado, de maneira abstrata, como um conjunto de registros ou arquivos, arquivos esses nos quais se armazenam a estrutura e os dados das tabelas. Porém, procurar dados percorrendo todas as tabelas e arquivos não é eficiente. Desta forma, os SGBD implementam estruturas que organizam os registros de dados permitindo a recuperação de maneira eficiente desde que sejam satisfeitas as condições de pesquisa. A essa estrutura dá-se o nome de índices. Em relação a índices em um SGBD, assinale V para a afirmativa verdadeira e F para afirmativa falsa. ( ) Uma tabela que possua um número grande de índices e na qual as colunas da tabela estão fazendo parte de N índices, operações de INSERT, UPDATE, DELETE terão seu desempenho afetado devido ao fato de que todos os índices deverão ser ajustados. ( ) Em um banco de dados, todas as tabelas, independentemente do tamanho e da frequência com que são atualizadas, possuem pelo menos um índice NOCLUSTERED ou CLUSTERED a fim de tornar operações de SELECT eficientes. ( ) Índices que implementam estruturas de árvore B+ não são eficientes, uma vez que a tarefa de percorrer a estrutura da árvore está diretamente ligada à sua altura. Dessa forma, é sempre melhor opção o uso da estrutura árvore B, que utiliza o algoritmo de busca binária para percorrer a estrutura. As afirmativas são, respectivamente,

Gabarito: E

Índice em banco de dados é como um atalho para achar dados sem precisar vasculhar a tabela inteira. Ele melhora muito a consulta em SELECT, mas vem com um custo: sempre que você altera dados, o SGBD precisa atualizar também as estruturas auxiliares do índice. Por isso, a primeira afirmativa é verdadeira. Se uma tabela tem vários índices, operações de INSERT, UPDATE e DELETE tendem a ficar mais lentas, porque o banco não atualiza só a linha da tabela, mas também todos os índices que usam aquelas colunas. A segunda está errada porque nem toda tabela precisa ter índice, muito menos obrigatoriamente um clustered ou nonclustered. Existem tabelas pequenas, pouco consultadas ou muito voláteis em que o custo de manter índice pode ser maior do que o benefício. Índice ajuda consulta, mas não é lei da natureza do SGBD. A terceira também está errada. Índices em árvore B e, principalmente, em árvore B+ são eficientes e muito usados em bancos relacionais justamente porque mantêm a busca em tempo logarítmico. A ideia de que a árvore B usa busca binária para percorrê-la está confusa: a estrutura da árvore é organizada por comparações e navegação entre nós, não por “percorrer binariamente” como se fosse uma busca em vetor ordenado. Então o gabarito correto é E: V, F, F.

Continue treinando

Questões relacionadas