-
GABARITO: Letra A
"...uma consulta SQL especifica a forma do resultado e não o caminho para chegar a ele. Ela é uma linguagem declarativa em oposição a outras linguagens procedurais. Isto reduz o ciclo de aprendizado daqueles que se iniciam na linguagem."
Fonte:
-
A grande vantagem da linguagem SQL quando se trata de otimização é que ela é uma linguagem declarativa. Ou seja, o usuário determina o que quer que a consulta faça e o SGBD é quem se encarrega dos detalhes a respeito de como isso será feito. Isso se dá em contraste às linguagens procedurais, em que o passo a passo a ser realizado pelo computador é definido pelo programador.
Assim, o otimizador do SGBD tem a liberdade de selecionar o plano de execução mais adequado para a execução da consulta.
Gabarito: A
-
A) OK. Lembre-se que SQL é declarativa, mas há diversos dialetos (TSQL, PL/SQL, etc) que expandem a linguagem com comandos procedurais (if, for, etc).
B) Errado. Sintaxe simples não influencia a otimização.
C) Errado. SQL não suporta todas as operações da álgebra relacional, a exemplo da divisão
D) Errado. Permitir subconsultas não é uma justificativa para propiciar otimização
E) Errado.
-
(a) Correto, ela não é procedural – ela é declarativa. Os diferentes planos de execução permitem chegar ao mesmo resultado com pior ou melhor desempenho;
(b) Errado, isso não é relevante para otimização;
(c) Errado, isso é um requisito de um SGBD e não se relaciona com a otimização;
(d) Errado, isso também não é particularmente relevante para otimização de consultas;
(e) Errado, isso é uma característica do SGBD e não tem relação com otimização de consultas.