Considere um banco de dados relacional em que as operações d...

Próximas questões
Com base no mesmo assunto
Q2096300 Banco de Dados
Considere um banco de dados relacional em que as operações de insert e update efetuadas numa certa tabela devem ser monitoradas e anotadas, como subsídio aos procedimentos de auditoria da empresa. Essa tabela é utilizada por uma série de aplicações, em diferentes tipos de transações, e iniciadas por um número considerável de usuários.
Nesse cenário, assinale o mecanismo mais adequado para a implementação desse monitoramento.
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: C - Triggers.

Para compreender o motivo pelo qual a alternativa C - Triggers é a correta, é importante entender o contexto do monitoramento de operações em bancos de dados relacionais. Quando falamos de monitoramento de operações como insert e update, estamos nos referindo à necessidade de rastrear e registrar automaticamente as alterações que ocorrem em uma tabela, com o propósito de auditoria. Isso envolve identificar quando um dado é inserido ou modificado, por quem e, em alguns casos, o que foi alterado.

Um trigger, ou gatilho, é uma solução projetada para esse tipo de tarefa. Ele é um procedimento armazenado que é automaticamente executado (disparado) em resposta a determinados eventos em uma tabela, como inserções, atualizações ou exclusões. Os triggers são extremamente úteis quando precisamos garantir que determinadas regras ou ações sejam aplicadas de maneira consistente sempre que os dados forem alterados, sem depender da aplicação que está interagindo com o banco de dados.

Outras opções, como Cursores, são utilizados para percorrer os registros de uma consulta linha por linha, o que não se aplica ao monitoramento automático de alterações. Stored procedures são procedimentos armazenados no banco de dados que podem realizar operações, mas não são automaticamente acionados por eventos de dados. Utilitários de exportação de dados são ferramentas para mover dados entre sistemas, não para monitoramento em tempo real. E por fim, Views são consultas armazenadas que apresentam dados de uma forma específica, mas não são capazes de logar ou rastrear mudanças por si mesmas.

Portanto, os triggers são a escolha adequada para implementar o monitoramento e anotação automática de operações de insert e update numa tabela para fins de auditoria, atendendo ao cenário proposto pela questão.

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

Em SQL, um trigger (ou gatilho, em português) é um tipo especial de procedimento armazenado que é executado automaticamente em resposta a determinados eventos ou ações realizadas em uma tabela. Esses eventos podem incluir inserção, atualização ou exclusão de dados de uma tabela.

Os triggers podem ser usados para aplicar regras de negócios ou restrições de integridade de dados, como garantir que certos campos estejam sempre preenchidos ou que os dados sejam consistentes em várias tabelas. Eles também podem ser usados para auditar as alterações feitas em uma tabela ou para atualizar automaticamente dados relacionados em outras tabelas.

A sintaxe para criar um trigger em SQL varia dependendo do sistema de gerenciamento de banco de dados utilizado, mas a estrutura básica envolve especificar o nome do trigger, a tabela com a qual ele está associado, o evento que o dispara e o código que deve ser executado quando o trigger é acionado.

LETRA C

Esse controle pode ser feito por TRIGGER, de maneira automática, ou por PROCEDURE, envolvendo alguma lógica de controle. Dado o enunciado da questão e a ênfesa no quanto essa tabela é usada, na minha visão, o ideal seria uma procedure, pois TRIGGERS afetam o desempenho dos bancos de dados e como a banca deu muita ênfesa nessa parte, achei que o correto seria a letra B, mas errei.

A minha opinião nesse caso só importaria em caso de recursos, mas fica aqui a observação.

Trigger são comandos SQL que são automaticamente executados quando um comando INSERT, DELETE ou UPDATE for executado em uma tabela de um banco de dados.

Podemos usar uma trigger para vários objetivos:

  • Aplicar regras de negócios (inclusive controlando a redundância dos dados)
  • Validar dados de entrada
  • Gerar um valor exclusivo para uma linha recém inserida em um arquivo diferente.
  • Replicar dados para arquivos diferentes para obter consistência de dados

ATENÇÃO! 

Existem duas classes de TRIGGERS:

1. TRIGGERS DDL (Data Definition Language)

2. TRIGGERS DML (Data Modification Language) [tem + 2 tipos]

=> FOR (AFTER) [são executados após o término da instrução de disparo]

=> INSTEAD OF [esse tipo de TRIGGER substitui a instrução de disparo] 

Palavras-chave:

A. Cursores:

- Iteração linha por linha.

B. Stored procedures:

- Encapsular SQL para reutilização.

D. Utilitários de exportação de dados:

- Transferência de dados entre tabelas ou sistemas.

E. Views:

- Representação virtual de dados para simplificar consultas.

SQL não estava expresso no Edital da RFB.

Clique para visualizar este comentário

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