Acerca de triggers e procedimentos armazenados, julgue o  se...

Próximas questões
Com base no mesmo assunto
Q268242 Banco de Dados
Acerca de triggers e procedimentos armazenados, julgue o  seguinte  item.

Em uma tabela cujo conteúdo esteja sendo alterado por um comando INSERT, DELETE ou UPDATE e o comando não tenha sido concluído, um trigger do tipo row-level não poderá ler ou modificar seu conteúdo.
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: C - certo

A questão aborda o conceito de triggers do tipo row-level, que são procedimentos automáticos disparados por eventos de manipulação de dados, como INSERT, DELETE ou UPDATE. Quando um trigger row-level é ativado, ele opera em cada linha que é afetada por uma transação. Agora, precisamos entender um ponto crítico sobre a execução de triggers em relação ao estado da transação.

Os triggers row-level são executados antes ou depois de cada linha ser inserida, atualizada ou deletada. Durante esse processo, o comando responsável pela alteração da tabela ainda não foi concluído; ou seja, a transação ainda não foi finalizada e a tabela está em um estado intermediário. Nesse contexto, a consistência dos dados precisa ser mantida, e o acesso ao conteúdo alterado é restrito.

Esta restrição é imposta para prevenir problemas de integridade de dados e condições de corrida, que poderiam surgir caso o conteúdo não finalizado de uma transação fosse modificado ou lido por outra transação. Portanto, o trigger não pode ler ou modificar o conteúdo da tabela enquanto o comando que acionou o trigger não tiver sido completado e a transação finalizada, garantindo assim a atomicidade e consistência das operações no banco de dados.

Por esses motivos, a afirmação da questão está correta, pois reflete o comportamento esperado de triggers row-level em uma situação onde um comando ainda não foi concluído. Eles não podem interferir no conteúdo que está sendo alterado até que a instrução que os disparou seja finalizada.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Os Triggers podem ser do tipo ROW LEVEL (Linha) ou STATEMENT (Tabela). Além disso, os Triggers podem ocorrer (BEFORE) antes ou (AFTER) depois que a ação tenha ocorrido, e por fim pode ocorrer para as ações de INSERT, UPDATE e DELETE em uma tabela.

Os Triggers do tipo ROW LEVEL podem ser usados sempre que precisarmos que um Trigger trate de valores em uma transação, e por sua vez são disparados a cada ocorrência de uma transação sobre uma tabela. Se um UPDATE atualizar, por exemplo, 1000 linhas em uma tabela que possua um Trigger de Update do tipo row level, serão disparadas 1000 vezes.

Os Triggers do tipo row level são utilizadas para operações como:

  • Gravação de LOGS de auditoria de uma aplicação;
  • Verificação de dados (Consistência);
  • Implementação de integridade referencial;
A ocorrencia da transação ocorre com a conclusao da mesma desta forma -  row-level não poderá ler ou modificar seu conteúdo.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo