Pular para o conteúdo principal

Questão de Banco de Dados — Banco de Dados Relacionais — FUNDATEC 2023

Banco de DadosBanco de Dados Relacionais
Código
qq896741
Banca
FUNDATEC
Órgão
PROCERGS
Ano
2023
Nível
Superior
Cargo
ANC - Analista em Computação - Ênfase em Desenvolvimento Oracle PL/SQL
Considere o seguinte comando:SELECT * FROM Pessoa FOR UPDATE;Analise as assertivas abaixo e assinale a alternativa correta.I. Pode ser especificada na cláusula FOR UPDATE uma coluna, por exemplo: FOR UPDATE OF Nome.II. A cláusula FOR UPDATE irá fazer um LOCK de todas as tuplas selecionadas pelo SELECT e só as liberará quando a transação, que tem esse comando SELECT, for finalizada.III. A cláusula FOR UPDATE somente pode ser utilizada no SELECT externo de uma consulta, não pode ser utilizada em subconsultas ou SELECT aninhado.
  1. ATodas estão corretas.
  2. BTodas estão incorretas.
  3. CApenas I e II estão corretas.
  4. DApenas I e III estão corretas.
  5. EApenas II e III estão corretas.
Revelar gabarito e comentário

GabaritoA — Todas estão corretas.

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”.

Cláusula FOR UPDATE em SQL

Gabarito: letra A. Todas as assertivas estão corretas. O comando SELECT ... FOR UPDATE é utilizado para bloquear as linhas retornadas, garantindo que nenhuma outra transação as modifique até o fim da transação atual. É possível especificar colunas a serem bloqueadas com FOR UPDATE OF coluna, e a cláusula só pode ser usada no SELECT mais externo, não em subconsultas.

Assertiva I — ✅ Correta

A sintaxe FOR UPDATE OF Nome é válida em diversos SGBDs (como Oracle e PostgreSQL), permitindo restringir o bloqueio a colunas específicas de tabelas envolvidas na consulta. O item está correto.

Assertiva II — ✅ Correta

O comportamento descrito é o padrão: as tuplas selecionadas são bloqueadas (lock) e permanecem assim até que a transação seja encerrada por COMMIT ou ROLLBACK. O item está correto.

Assertiva III — ✅ Correta

Por definição, a cláusula FOR UPDATE só pode ser aplicada ao SELECT mais externo de uma consulta. Tentar usá-la em subconsultas ou SELECT aninhados gera erro de sintaxe. O item está correto.

Conclusão: I, II e III são verdadeiras → alternativa A.

PEGA ESSA DICA!

Lembre-se de que FOR UPDATE é um recurso de controle de concorrência. Nas provas, costuma ser cobrada a restrição de não poder ser usado em subconsultas, bem como a possibilidade de especificar colunas com OF.

Link permanente: /questoes/qq896741