← Questões de Banco de Dados

Banco de Dados · FGV · 2023

Questão comentada de Banco de Dados

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 é:

Gabarito: C

Views são como “janelas” para os dados: você enxerga um resultado derivado de uma ou mais tabelas, e às vezes consegue até escrever por essa janela com insert, update e delete. Mas isso só funciona quando a view consegue ser associada, de forma segura, a linhas de uma tabela-base atualizável. Se a consulta da view mistura dados demais, agrega, elimina duplicidades ou faz combinações que quebram essa ligação, a atualização costuma ser barrada. A ideia central aqui é separar o que só afeta a apresentação do que realmente impede a atualização. Cláusulas como group by, distinct e operações de conjunto como union normalmente dificultam ou impedem que o SGBD saiba exatamente qual linha da tabela original deve ser alterada. Já order by só muda a ordem de exibição do resultado. Ela não altera a correspondência entre a view e as linhas da tabela base. Por isso, o gabarito é a letra C. Em termos práticos, você pode ordenar o resultado da view e ainda assim manter a possibilidade de atualização, desde que os demais requisitos de atualizabilidade sejam atendidos. A restrição importante não está na ordem, mas na capacidade de rastrear cada linha da view até uma linha real da tabela origem. Em resumo: se a cláusula mexe na estrutura lógica do conjunto de dados, desconfie; se ela só organiza a apresentação, como o order by, ela não costuma impedir a view de ser atualizável.

Continue treinando

Questões relacionadas