Julgue o item seguinte, a respeito do PL/SQL. O gatilho é um...
O gatilho é um tipo especializado de bloco de código PL/SQL extremamente útil em um ambiente distribuído, para simular um relacionamento de chave estrangeira entre tabelas que não existem no mesmo banco de dados.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: C - certo
A resposta correta para a questão é "Certo". Vamos entender o porquê disso. Um gatilho (trigger) é uma estrutura de código automática que é acionada (disparada) por eventos específicos dentro de um banco de dados, como inserções, atualizações ou exclusões de dados. Eles são usados para manter a integridade dos dados, automatizar processos ou até mesmo para sincronizar bancos de dados.
Na questão em tela, é importante compreender que, embora a implementação mais comum dos gatilhos seja dentro de um mesmo banco de dados, eles também podem ser úteis em ambientes distribuídos. Isto é, em situações onde as tabelas que devem manter um relacionamento de integridade referencial estão em diferentes bancos de dados, que podem estar até mesmo em servidores distintos.
Como a chave estrangeira diretamente entre bancos de dados distintos não é possível, o gatilho pode ser programado para atuar sempre que uma operação relevante ocorra em uma das tabelas, garantindo ações correspondentes na outra tabela, mesmo estando em outro banco. Isto simula o relacionamento de chave estrangeira, assegurando a consistência e a integridade dos dados entre as tabelas distribuídas.
Portanto, a afirmação da questão está correta, pois os gatilhos podem sim ser utilizados para esse fim em um ambiente distribuído, embora não seja o único uso para gatilhos em PL/SQL. É sempre importante pensar em gatilhos como uma ferramenta versátil no arsenal de um desenvolvedor de banco de dados, capaz de lidar com várias necessidades além da integridade referencial, como auditoria e log de operações em tabelas.
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
Este procedimento é utilizado para fazer com que o trigger garanta a integridade referencial entre tabelas, utilizando verificações, através de consultas (selects), para saber, por exemplo, se um determinado dado existe ou não na tabela e assim realizar a sua exclusão.
No MEU ponto de vista, isso é uma "bela" de uma gambiarra, pois deixa a integridade de um banco de dados dependente de códigos escritos em triggers que podem ou não estarem corretos, triggers estas que por sinal pode estar desabilitadas, sem contar os problemas de desempenho acarretados por essa “solução”. Uma série de problemas ocorrem quando tentamos simular a integridade através desse subterfúgio. Existem algumas soluções para atender a esse requisito, entre elas a escolha correta do SGBD para o tipo de sistema que irá utilizá-lo, outra solução é a criação de um banco de dados, modelado corretamente, para uma solução corporativa.
pra mim isso seria uma das formas de se utilizar Trigger, do jeito que eu interpretei a questão, deu a entender que essa era A funcionalidade principal de uma trigger
é.. não tem jeito mesmo.. erro essa questão toda vez que a faço
Esta questão parece ter sido retirada do Livro : Oracle Database 10g - Manual Do Dba ; Autor : KEVIN LONEY,BOB BRYLA , pág. 28:
" Gatilhos são extremamente úteis em ambientes distribuídos para simular um relacionamento de chave estrangeira entre tabelas que não existem no mesmo banco de dados ."
Veja em : "
"https://books.google.com.br/books?id=3I5Vo93gm1gC&pg=PA28&lpg=PA28&dq=gatilho+é+um+tipo+especializado+de+bloco+de+código+
PL/SQL&source=bl&ots=YwS4nmcsYv&sig=Nhu4Gsa3lablXXl8XdhFq0z2Db4&hl=pt-BR&sa=X&ved=0ahUKEwi5j_XNnuDRAhVFS5AKHbj3A50Q6AEIITAB#
v=onepage&q=gatilho%20é%20um%20tipo%20especializado%20de%20bloco%20de%20código%20PL%2FSQL&f=false"
c-
De acordo com a literatura da área, entres as vantages do trigger estao:
- auditoria e examinação de valores no server: examina recuperações, caminhos, habilitação e desabilitacao do audit;
-forçar integridade dos dados i.e.: condição estática que deve ser valida, produzir
-forção integridade referencial
-derivar dados i.e.: calcular colunas derivadas assincronamente;
- réplica de tabelas (snapshot)
Abaixo um exemplo de trigger que possibilita uma restrição que nao seria possível com o típíco check constraint:
https://stackoverflow.com/questions/5332562/using-date-in-a-check-constraint-oracle
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo