Questão de Banco de Dados — Banco de Dados Relacionais — FGV 2023
Banco de Dados›Banco de Dados Relacionais
Código
fg071508
Banca
FGV
Órgão
TCE-SP
Ano
2023
Nível
Superior
Cargo
Agente da Fiscalização - TI
Views, em bancos de dados relacionais, configuram um importante mecanismo para flexibilizar o acesso aos dados armazenados. Em alguns casos, são ditas atualizáveis, pois podem ser utilizadas como alvo de comandos SQL como insert, update, delete.Uma característica que não impede uma view de ser atualizável é:
Aa clásula group by;
Ba cláusula distinct;
Ca cláusula order by;
Da presença do operador algébrico union;
Ea inexistência de uma fonte de registros atualizáveis na cláusula from.
Revelar gabarito e comentário▾
GabaritoC — a cláusula order by;
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Views Atualizáveis em Bancos de Dados Relacionais
Gabarito: letra C. A cláusula ORDER BY não impede que uma view seja atualizável, pois a ordenação é apenas uma apresentação dos resultados e não afeta o mapeamento das linhas para as tabelas base. Já as demais alternativas (GROUP BY, DISTINCT, UNION e ausência de fonte atualizável) são condições que, segundo o padrão SQL, tornam a view não atualizável.
A banca testa o conhecimento sobre quais operações SQL descaracterizam a possibilidade de uma view ser alvo de INSERT, UPDATE ou DELETE. O conceito central é que a view deve manter uma correspondência direta e sem agregação com as tabelas subjacentes.
View atualizável: Requisitos (Correspondência 1:1 com tabela base, Projeção simples (sem agregação)); Impedem (GROUP BY, DISTINCT, UNION, Sem fonte atualizável); Não impedem (ORDER BY)
Alternativa A — ❌ Incorreta
A cláusula GROUP BY realiza agregação de linhas; uma view que utiliza GROUP BY não pode ser atualizável, pois não há uma correspondência 1:1 com as linhas da tabela base – cada linha da view representa um grupo, não um registro individual.
Alternativa B — ❌ Incorreta
A cláusula DISTINCT elimina duplicatas, o que também quebra a correspondência direta com as linhas da tabela base. Views com DISTINCT não são atualizáveis.
Alternativa C — ✅ Correta ⟵ GABARITO
A cláusula ORDER BY simplesmente ordena o resultado da consulta, sem alterar a estrutura ou o conteúdo das linhas. As linhas continuam representando registros individuais das tabelas base, portanto a view permanece atualizável. É a única alternativa que não impede a atualização.
Alternativa D — ❌ Incorreta
O operador UNION combina resultados de duas ou mais consultas; uma view baseada em UNION não é atualizável, pois as linhas podem vir de tabelas diferentes e não há como determinar a tabela de origem para operações de modificação.
Alternativa E — ❌ Incorreta
Se a view não possui uma fonte de registros atualizáveis (por exemplo, se sua consulta faz referência a outra view não atualizável ou a uma tabela que não permite DML), ela não pode ser atualizável. A inexistência de uma fonte atualizável é uma das condições que impedem a atualização.
PEGA ESSA DICA!
Para uma view ser atualizável, sua consulta deve ser uma projeção simples de uma ou mais tabelas base, sem agregação, sem eliminação de duplicatas, sem operações set (UNION, INTERSECT, EXCEPT) e sem subconsultas na cláusula FROM que não sejam atualizáveis. A ordenação (ORDER BY) é inócua. Memorize essa lista de impeditivos.