SóProvas



Questões de Gatilhos (Triggers)


ID
15820
Banca
CESPE / CEBRASPE
Órgão
ANATEL
Ano
2006
Provas
Disciplina
Banco de Dados
Assuntos

A respeito do desenvolvimento de aplicações e bancos de dados, julgue os seguintes itens.

Um gatilho (trigger) tem as seguintes características: é disparado quando ocorrem eventos como inserções, atualizações ou deleções; ao ser disparado, um gatilho pode testar uma condição para definir a ação a ser executada em resposta ao evento; não pode ser desabilitado e posteriormente habilitado; não pode referenciar valores que os dados tinham antes do evento.

Alternativas
Comentários
  • É possível habiliar/desabilitar
    É possível referenciar valores anteriores ao evento
  • CREATE TRIGGER trg_itenspedido_ondelete AFTER DELETE ON itenspedido
    FOR EACH ROW BEGIN
    DECLARE total INTEGER;
    SELECT COUNT(id) FROM itenspedido WHERE pedido=OLD.pedido INTO total;
    IF (total = 0) THEN
    DELETE FROM pedido WHERE id=OLD.pedido;
    END
  • É possivel habilitar/desabilitar triggers.Mas quanto ao acesso, você pegar valores antigos e novos daquela tupla que está sofrendo a operação (insert, delete, update). O que não se consegue é se fazer seleção (select) dentro da trigger na própria tabela que está sofrendo um update pois assim é gerada a chamada Trigger Mutante.http://glufke.net/oracle/viewtopic.php?t=96

ID
27301
Banca
FCC
Órgão
TRE-SE
Ano
2007
Provas
Disciplina
Banco de Dados
Assuntos

Quando uma restrição de existência obrigatória é especificada em um diagrama E-R geralmente se aplica a opção de trigger referencial

Alternativas
Comentários
  • Não entendi o porquê a resposta correta é letra b. Por que não poderia ser letra d?
  • Acho que a questão quis dizer o seguinte:Sejam duas tabelas T1 e T2 com T2 se referenciando a T1. Se for obrigatória a existência de uma tupla em T1 para uma ou mais tuplas em T2 existirem, então têm-se que a chave estrangeira em T2 deve ter a declaração ON DELETE CASCADE, para que assim que a tupla da tabela referenciada (T1) for deletada, as que fazem referência a ela em T2 sejam deletadas em cascata.
  • Uma restrição de existência obrigatória indica que dados dois "tipos de entidades" A e B, uma entidade do tipo A só pode existir se estiver associada a uma entidade do tipo B. Isso é também chamado de "participação total". Nesses casos, quando há uma exclusão (DELETE) de uma entidade do tipo B, geralmente exclui-se também a(s) entidade(s) correspondente(s) do tipo A. Denomina-se essa ação "DELETAR EM CASCATA ou CASCADE ON DELETE".

    O mesmo raciocínio é seguido para o caso de alterações/atualizações da chave primária do tipo B. A chave extrangeira da entidade do tipo A correspondente geralemente deverá ser atualizada. Denomina-se "ATUALIZAR EM CASCATA ou CASCADE ON UPDATE".

    Tanto CASCADE ON DELETE quanto CASCADE ON UPDATE são definidas em triggers (gatilhos) no esquema do banco de dados e são disparados automaticamente quando há uma exclusão ou atualização.


ID
28624
Banca
CESGRANRIO
Órgão
DECEA
Ano
2006
Provas
Disciplina
Banco de Dados
Assuntos

Suponha um banco de dados com uma tabela FUNCIONARIO contendo os campos cod_func (chave primária), nome, salario. Para impedir que o valor do campo salario em uma linha sofra modificação, um trigger pode ser criado com o seguinte script SQL (ANSI SQL99).

Alternativas
Comentários
  • CREATE TRIGGER BEFORE UPDATE OF ON {bloco de instruções}
  • Não existe stop em script sql.
  • CREATE TRIGGER [NOME DO TRIGGER]

    ON [NOME DA TABELA]

    [FOR/AFTER/INSTEAD OF] [INSERT/UPDATE/DELETE]

    AS

    IF UPDATE (coluna)

    begin

    rollback transaction

    end


ID
61219
Banca
CESPE / CEBRASPE
Órgão
STF
Ano
2008
Provas
Disciplina
Banco de Dados
Assuntos

O armazenamento e a recuperação de grandes quantidades de dados é um trabalho importante e muito explorado em um sistema
gerenciador de banco de dados (SGBD). Com relação aos conceitos que envolvem esse sistema, julgue os itens que se seguem.

Regras de datalog podem ser classificadas como sendo um tipo de gatilho (trigger) utilizado, geralmente, para o tratamento na definição de visões no banco de dados.

Alternativas
Comentários
  • gatilho é definir uma ação no banco "automática" quando ocorre determinado evento.
  • A Datalog é uma linguagem de consulta não procedural baseada na linguagem de programação lógica Prolog.http://pt.wikipedia.org/wiki/Datalog
  • Os gatilhos(triggers) são chamdaos às vezes de regras(rules) ou regras ativas (active rules), mas não devem ser confundidos com as regras da datalog.Portanto, item ERRADO


ID
61222
Banca
CESPE / CEBRASPE
Órgão
STF
Ano
2008
Provas
Disciplina
Banco de Dados
Assuntos

O armazenamento e a recuperação de grandes quantidades de dados é um trabalho importante e muito explorado em um sistema
gerenciador de banco de dados (SGBD). Com relação aos conceitos que envolvem esse sistema, julgue os itens que se seguem.

Duas exigências devem ser satisfeitas para a definição de um mecanismo de gatilho: especificar as condições nas quais o gatilho deve ser executado; e especificar as ações que devem ser tomadas quando um gatilho for disparado.

Alternativas
Comentários
  • Está correta. Duas exigências devem ser satisfeitas para a projeção de um mecanismo de gatilho. Sendo que:Uma delas é especificar as condições nas quais o gatilho deverá ser executado. (O que fazer - quando será executado);A outra é especificar as condições sob as quais o gatilho deverá ser executado. (como que fazer - a maneira que será executado).
  • Para mim está errado.

    Segundo Navathe, as exigências obrigatórias para uma trigger são EVENTO E AÇÃO. As CONDIÇÕES são opcionais.
  • Pelo mesmo motivo do Cláudio eu marquei como errado. Uma vez que a utilização desses conceitos podem confundir em determinadas ocasiões, o correto é manter a terminologia que não da margem para ambiguidade. Portanto questão questão ambígua e sacana, uma vez que o cespe considerou condições = eventos.

  • Creio que o evento faz parte das condições de disparo do gatilho por isso a questão está correta.

  • especificar o nome do gatilho nao é obrigatório nao?? Oo


ID
71854
Banca
FCC
Órgão
TRT - 3ª Região (MG)
Ano
2009
Provas
Disciplina
Banco de Dados
Assuntos

No ambiente SQL é possível, tanto para triggers quanto para constraints

Alternativas
Comentários
  • Como eu consigo fazer isso via constraints? Alguém poderia ajudar? Obrigado.
  • Olá! Você pode fazer isso durante a criação ou alteração da estrutura de uma tabela. Segue exemplo:

    CREATE TABLE tabPrinc( idPrinc int primary key,  coluna2Princ varchar(20), coluna3Princ number(5,2));
    CREATE TABLE tabSec( idSec int primary key,  idPrincFk int references tabelaPrincipal (idPrinc) ON DELETE CASCADE);
    O comando imediatamente acima faz o seguinte: Se o registro for excluído na tabPrinc, todos os registros de tabSec que referenciam este que foi excluído em tabPrinc serão excluídos também.
    Além do ON DELETE CASCADE, também existem:
    - ON DELETE SET NULL (que colocaria NULL em todos os registros de tabSec que referenciam o registro em tabPrinc que foi excluído)
    - ON DELETE RESTRICT ( se tabSec possuir referências a tabPrinc, executa rollback da exclusão do registro em tabPrinc )
    - ON DELETE NO ACTION ( se tabSec possuir referências a tabPrinc, faz nada. Nem chega a excluir o registro em tabPrinc ).

    Referência: http://docs.oracle.com/javadb/10.8.3.0/ref/rrefsqlj13590.html

    Quanto ao cascade usado com triggers, eu não conhecia. Segue um link interessante sobre o assunto:
    http://publib.boulder.ibm.com/infocenter/idshelp/v10/index.jsp?topic=/com.ibm.sqls.doc/sqls362.htm

    Abs.

ID
106117
Banca
FCC
Órgão
PGE-RJ
Ano
2009
Provas
Disciplina
Banco de Dados
Assuntos

Nas ações de trigger referencial, quando a operação de exclusão sobre a tabela referenciada se propaga para todas as chaves estrangeiras correspondentes, é uma indicação de uma especificação on delete

Alternativas
Comentários
  • Trata-se do trigger do tipo delete cascade, configurado opcionalmente em constraints do tipo foreign key, mantendo integridade referencial ao se deletar o registro na tabela referenciada.

ID
113623
Banca
FCC
Órgão
DPE-SP
Ano
2010
Provas
Disciplina
Banco de Dados
Assuntos

Sobre um Trigger, que é um bloco de comandos Transact- SQL executado em bancos de dados, afirma-se que

Alternativas
Comentários
  • a questão B também está correta, pois existem triggers do tipo DDL
  • Acredito que essa prova tomou como base o SQL 2000, por isso a B foi considerada errada.

     

    Agora teria que ver como estava no edital, pois se a prova foi em 2010 e se o edital foi omisso a versão mais atual na época era o 2008.


ID
121591
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2010
Provas
Disciplina
Banco de Dados
Assuntos

Os SGBDs modernos permitem que boa parte da carga de
processamento, que antes residia nas aplicações, seja liberada ao
disponibilizar recursos do lado do banco de dados, permitindo até
mesmo a codificação de complexas funções parametrizadas. Acerca
desses recursos, julgue os itens a seguir.

Além de as triggers serem disparadas comumente com as operações de DELETE, INSERT e UPDATE, alguns sistemas também as executam a partir de operações de SELECT e EXECUTE PROCEDURE, a fim de auditar as transações.

Alternativas
Comentários
  • Eita sacanagem da CESPE, hehehhehe. Em minhas pesquisas, consegui descobrir apenas um banco de dados que aceita uma trigger usando SELECT. Seria o Informix da IBM. Veja o link:

    http://publib.boulder.ibm.com/infocenter/idshelp/v111/index.jsp?topic=/com.ibm.sqlt.doc/sqlt323.htm
  • Eu tinha certeza que não dava pra fazer trigger com select, mas ela foi tão aberta que pensei: não é possível que não exista um SGBD no mundo que não permita isso... Acertei por causa disso.


ID
122683
Banca
ESAF
Órgão
SUSEP
Ano
2010
Provas
Disciplina
Banco de Dados
Assuntos

Em relação às operações em bancos de dados SQL, é correto afirmar que Store Procedures

Alternativas

ID
126517
Banca
ESAF
Órgão
Prefeitura de Natal - RN
Ano
2008
Provas
Disciplina
Banco de Dados
Assuntos

Com relação às características da linguagem SQL e dos SGBD, é correto afi rmar que

Alternativas
Comentários
  • As alternativas C, D e E são absurdas. A alternativa que mais pode confundir é a B. Está errada porque na verdade a sintaxe é a seguinte:
    CREATE TRIGGER trigger_name ON TabelaFOR UPDATEAS     comandos

ID
149458
Banca
FCC
Órgão
TJ-SE
Ano
2009
Provas
Disciplina
Banco de Dados
Assuntos

Sobre trigger aplicado em tabelas por meio da linguagem SQL pode-se afirmar que

Alternativas
Comentários
  • Ao se desobedecer alguma restrição de integridade referencial o trigger pode ser utilizado para não permitir que o banco entre em um estado inconsistente.
  • a) ERRADO. Uma tabela pode conter até 12 trigger associados aos comandos de ativação e momento de disparo. São as seis trigger do tipo row-level e seis do tipo statement-level.

    c) ERRADO. O comando INSERT pode ser utilizado.

    d) ERRADO. O comando DELETE pode ser utilizado.

    e) ERRADO. Não deve ser utilizado em SUBSELECT.


ID
153556
Banca
FGV
Órgão
Senado Federal
Ano
2008
Provas
Disciplina
Banco de Dados
Assuntos

Triggers constituem construções especiais em PL/SQL, semelhantes a procedures. Enquanto uma procedure é executada explicitamente via uma procedure call, um trigger é executado implicitamente se um determinado evento acontece, a partir de um dos seguintes comandos:

Alternativas
Comentários
  •  De acordo com a sintaxe simplificado do trigger, como segue, podemos dizer que os eventos que associa o trigger com a tabela são o INSERT, DELETE e UPDATE.

    Sintaxe simplificada:

    CREATE [OR REPLACE] TRIGGER <trigger_name>

        {BEFORE|AFTER} {INSERT|DELETE|UPDATE} ON <table_name>

        [FOR EACH ROW [WHEN (<trigger_condition>)]]

        <trigger_body>

     

    [1] http://www.fundao.wiki.br/articles.asp?cod=31

  • Triggers são eventos disparados em tabelas antes ou depois de determinadas operações, como: INSERT, UPDATE E DELETE

  • É possível criar gatilhos (triggers), cujo disparo pode ocorrer em decorrência da exclusão, modificação ou inserção de um registro em uma tabela do banco de dados.

  • Os gatilhos podem ser DML ou DDL.

    Os DML são executados quando um usuário tentar modificar dados através de um evento de linguagem de manipulação de dados (utilização de INSERT, UPDATE ou DELETE).

    Os DDLs são executados em resposta a diversos eventos de linguagem de definição de dados (como o Transact-SQL CREATE, ALTER ou DROP).

  • Triggers (gatilhos) são objetos que podem disparar uma ação com base na ocorrência de algum tipo de evento no banco de dados. Esses eventos podem ser aqueles realizados pelos comandos DML INSERT, DELETE ou UPDATE.

  • Triggers (gatilhos) são objetos que podem disparar uma ação com base na ocorrência de algum tipo de evento no banco de dados.

    Esses eventos podem ser aqueles realizados pelos comandos DML INSERT, DELETE ou UPDATE.


ID
157036
Banca
CESPE / CEBRASPE
Órgão
TRT - 5ª Região (BA)
Ano
2008
Provas
Disciplina
Banco de Dados
Assuntos

Com relação a qualidade de software, bancos de dados e suas tecnologias, julgue os itens de 37 a 42.

No ORACLE, um trigger é um bloco PL/SQL armazenado e associado a uma tabela, esquema ou banco de dados que pode ser criado com o comando CREATE TRIGGER.

Alternativas
Comentários
  •  Triggers são construções especiais do PL/SQL similares a procedures. Contudo, um procedure é executado explicitamente de um outro bloco via uma chamada de procedimento, enquanto um trigger é executado implicitamente sempre que um evento engatilhado acontece(evento relacionado com uma tabela). A estrutura do trigger é definida como segue:

    CREATE [OR REPLACE] TRIGGER <trigger_name>

        {BEFORE|AFTER} {INSERT|DELETE|UPDATE} ON <table_name>

        [FOR EACH ROW [WHEN (<trigger_condition>)]]

        <trigger_body>

    Sendo que:

    - só pode criar triggers BEFORE e AFTER para tabelas
    - só podem ser especificado até três eventos engatilhados: INSERT OR DELETE OR UPDATE ON...
    - Se FOR EACH ROW for especificado, o trigger é row-level; do contrário, o trigger será statement-level
    - <trigger_body> é um bloco PL/SQL
    - As variáveis especiais NEW e OLD estão disponíveis para fazerem referência às tuplas nova e velha respectivamente

     

    [1] http://www.fundao.wiki.br/articles.asp?cod=31

  • Uma trigger realmente pode estar associada a um esquema ou associada a um banco de dados?
  • Também fiquei com a dúvida de gustavo: "Uma trigger realmente pode estar associada a um esquema ou associada a um banco de dados?". Alguém comenta?

  • A trigger is a named program unit that is stored in the database and fired (executed) in response to a specified event. The specified event is associated with either a table, a view, a schema, or the database, and it is one of the following:

    A database manipulation (DML) statement (DELETE, INSERT, or UPDATE) 
    A database definition (DDL) statement (CREATE, ALTER, or DROP) 
    A database operation (SERVERERROR, LOGON, LOGOFF, STARTUP, or SHUTDOWN) 

    The trigger is said to be defined on the table, view, schema, or database.

    Fonte: https://docs.oracle.com/cd/B28359_01/appdev.111/b28370/triggers.htm


ID
159028
Banca
CESPE / CEBRASPE
Órgão
STJ
Ano
2008
Provas
Disciplina
Banco de Dados
Assuntos

Acerca de arquiteturas de aplicações cliente-servidor e para
a Internet, julgue os próximos itens.

Gatilhos (triggers) podem ser usados para impor restrições de integridade semântica em um banco de dados relacional. Um gatilho pode especificar evento, condição e ação. A ação é executada se a condição for satisfeita quando ocorrer o evento. Se uma condição não for especificada, a ação será disparada pelo evento. Uma ação pode ser uma sucessão de declarações SQL.

Alternativas
Comentários
  • Retirado de http://www.devmedia.com.br/post-1695-Introducao-a-TRIGGERS.html

    "Os TRIGGERS são usados com enorme eficiência para impor e manter integridade referencial de baixo nível, e não para retornar resultados de consultas. A principal vantagem é que eles podem conter uma lógica de processamento complexa.

    Você pode usar TRIGGERS para atualizações e exclusões em cascata através de tabelas relacionadas em um banco de dados, impor integridades mais complexas do que uma restrição CHECK, definir mensagens de erro personalizadas, manter dados desnormalizados e fazer comparações dos momentos anteriores e posteriores a uma transação."

  • Um trigger tipico tem tres componentes:
    1. O evento: q sao atualizaçoes no BD(especificados apos BEFORE);
    2. A condição: determina se a açao da regra deve ser executada;
    3. A ação: q normalmente eh 1 sequencia de isntrucoes SQL, mas pde ser outro procedimento logico.

    Suponha q vc queira ser avisado qdo suas vendas ultrapassarem 10.000,00; o trigger pde disparar 1 açao qdo isso ocorrer, por exemplo, enviando um email lhe avisando. Seria mais ou menos assim:

    CREATE TRIGGER recorde_vendas
        BEFORE INSERT OR UPDATE OF vendas,
    FOR EACH NOW
        WHEN(NEW.vendas > 10000)
           ENVIAR_EMAIL
              (NEW.email)

    Então, nesse caso, tem-se o trigger recorde_vendas, que sera disparado sempre que um evento(INSERT/UPDATE) possuir a condiçao(WHEN) de vendas superior a 10000, cuja ação é o envio de um email para o vendedor.





  • alguem explica esse trecho


    "Se uma condição não for especificada, a ação será disparada pelo evento. "

  • Raphael Lacerda


    a condição de uma trigger é opcional (cláusula WHEN é opcional.) Se não tem condição, ao acontecer o evento, a ação vai ser executada de qualquer forma


ID
162763
Banca
CESGRANRIO
Órgão
Petrobras
Ano
2010
Provas
Disciplina
Banco de Dados
Assuntos

Com relação a Bancos de Dados, analise as afirmações a seguir.

I - O Modelo Entidade-Relacionamento foi criado para gerenciar os projetos de implantação de uma empresa, gerando as especificações dos esquemas de Bancos de Dados.
II - A linguagem SQL permite que a declaração de domínio de um atributo inclua a especificação not null, fazendo com que os valores vazios sejam permitidos ao atributo.
III - Na linguagem SQL, a trigger é um comando projetado para ser executado automaticamente pelo sistema como um efeito colateral de uma modificação no Banco de Dados.

Está correto APENAS o que se afirma em

Alternativas
Comentários
  • I - MER: O modelo Entidade-Relacionamento (E-R) tem por base que o mundo real é formado por um conjunto de objetos chamados de
    entidades e pelo conjunto dos relacionamentos entre esses objetos;O objetivo do modelo E-R é representar a estrutura lógica do banco de dados de uma empresa, especificando o esquema da empresa, quais as entidades e como elas se relacionam entre si.
    O modelo E-R é chamado de Modelagem Conceitual, cujo  objetivo é representar de uma forma abstrata, independente da implementação em computador, os dados que serão armazenados no banco de dados.

    II - Especificação NOT NULL: não permite valores vazios, nulos.
    O domínio é um conjunto de valores que possuem determinadas propriedades em comum; ao conjunto de todos os valores possíveis para um determinado atributo dá-se o nome de domínio. O domínio engloba dados atómicos ou simples, porque não podem sofrer mais nenhuma decomposição.
     
    III - correta


ID
178069
Banca
VUNESP
Órgão
CETESB
Ano
2009
Provas
Disciplina
Banco de Dados
Assuntos

Considere o seguinte comando genérico para a criação de um trigger em um banco de dados relacional:

CREATE TRIGGER T AFTER UPDATE ON R
.....

Esse comando tem como efeito a criação de um trigger chamado

Alternativas
Comentários
  • CREATE TRIGGER nome_trigger ON tbl_do_bd

    CREATE TRIGGER T (nome da trigger) AFTER (depois) UPDATE (atualizar) ON (na tabela) R (tbl_do_bd)

    Após qualquer alteração de dados na Tabela R, a Trigger será executada.

ID
187951
Banca
FCC
Órgão
AL-SP
Ano
2010
Provas
Disciplina
Banco de Dados
Assuntos

Triggers são

Alternativas
Comentários
  • Um Trigger é bloco de comandos Transact-SQL que é automaticamente executado quando um comando INSERT , DELETE ou UPDATE for executado em uma tabela do banco de dados.

    Sendo assim, acho que o correto seria a letra "D", pois ela só é disparada depois e não antes.
  • Caramba demetrio....valeu a tentativa de ajuda se foi essa a intencao...mas esta errado.
    a trigger pode ser executada before or after um evento de insert, update ou delete.
    letra c
  • c)procedimentos armazenados cuja execução é disparada antes ou depois da ocorrência de um evento em uma tabela com o qual estão relacionados.

    Trigger tem o fim de executar alguma rotina quando a tabela for manipulada (e.g.: insert) exemplo de trigger:

    create or replace trigger validate_patient_id

    for each row

    begin

    if (f_validate_id(:new.id_patient) = 'N') then

    raise_application_error(-20500,'invalid id');

    end if;

    end validate_patient_id;


ID
187957
Banca
FCC
Órgão
AL-SP
Ano
2010
Provas
Disciplina
Banco de Dados
Assuntos

NÃO é um ponto fundamental observado pela utilização das triggers:

Alternativas
Comentários
  • Copiado e colado do artigo do site (http://elderstroparo.blogspot.com.br/2010/02/o-que-e-trigger.html)

    4º Pontos fundamentais das Triggers:

    Segurança e Integridade

    Podemos utilizar as Triggers para garantir uma segurança maior no nosso banco, ela tem como tarefa restringir o acesso as tabelas e controlar as atualizações.

    Auditoria

    Como disse anteriormente, as Triggers são executadas automaticamente, assim, podemos utilizá-las para fazer auditoria sobre acesso ao banco de dados.

    Replicação de Dados

    São excelentes para criar uma política de replicação síncrona de uma tabela para outra.

    Integridade

    Apartir das Triggers podemos criar controles mais complexos para os relacionamento das tabelas.

    Controle de dados

    Caso uma tabela tenha dados, cujo valor depende de outras tabelas, as Triggers pode atualizar automaticamente a coluna com os valores derivados.

  • integridade não é, porque senão haveriam duas respostas adequadas kkkk


ID
187960
Banca
FCC
Órgão
AL-SP
Ano
2010
Provas
Disciplina
Banco de Dados
Assuntos

Para excluir-se uma trigger, deve ser usado o comando

Alternativas
Comentários

ID
201367
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2010
Provas
Disciplina
Banco de Dados
Assuntos

Na criação de uma trigger, é necessária a ligação da constraints de integridade, para que o resultado obtido seja otimizado.

Alternativas
Comentários
  • "Exatamente por serem procedimentos, os procedimentos de trigger não são o modo recomendado de implementar as restrições de intrgridade"

    "A aplicabilidade dos procedimentos de trigger não está limitada ao problema de integridade, (...) Alguns exemplos de outras finalidades úteis são:

    Alterar o usuário que houver alguma exceção

    Depuração

    Auditoria

    Medição de desenpenho

    Execução de ações de compensação

    --Date - Cap 9.11

    Por isso julguei o item incorreto, visto que diante das diversidades de aplicações de um TRIGGER não pode-se dizer que "é necessária a ligação da constraints de integridade"

     

  • Acredito que o erro é que em uma trigger simplesmente não há necessidade de ligação da constraints de integridade.
    Isto se deve pelo fato que a trigger pode ser implementada em INSERT, DELETE  e UPDATE. Esta ligação não fará sentido em alguns casos, até mesmo porque uma trigger pode ser usada por vários motivos, como exemplo, avisar o administrador do BD de uma deleção, ou chamar um programa externo. Nestes casos não seria necessário de maneira alguma a ligação da constraints.

    Se a questão colocasse "é possível a ligação...", poderiamos consideram correto, já que isto é possível de ser feito.

    Abraços

ID
210997
Banca
CESPE / CEBRASPE
Órgão
MPU
Ano
2010
Provas
Disciplina
Banco de Dados
Assuntos

Julgue os itens que se seguem acerca de conceitos referentes a
banco de dados.

Considerando a tabela AUTOMOVEL, que tenha como atributo ANO_DE_FABRICACAO, para o qual exista uma restrição que estabelece o limite mínimo para seu valor, a forma mais adequada de se implementar essa restrição seria por meio da definição de um trigger.

Alternativas
Comentários
  • Acredito que a forma mais adequada de implementar essa restrição é por meio de uma constraint do tipo check:

    A check constraint requires a value in the database to comply with a specified condition.

    Referências:

    http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/clauses002.htm

    http://imasters.uol.com.br/artigo/383/oracle/constraints/

  • As duas formas funcionariam perfeitamente, entretanto, ele perguntou a mais adequada, não sei em que sentido. 

    De qualquer forma o DATE lista alguns motivos pelos quais o uso de triggers podem ser problemático

    1. Triggers podem causar chamadas recursivas
    2. Se o mesmo evento causar disparos sucetivos de triggers distintos, então a sequencia em que eles atuam poderia ser indefinida
    3. Os triggers poderiam causar disparos em cadeia

    Ele completa

    "Juntando tudo isso, deverá ficar claro que os efeitos gerais de determinada coleção de triggers poderia ser muito difícil de entender. As soluções declarativas, quando disponíveis(e é o caso), SEMPRE são preferíveis às soluções procedimentais." 
     
    C. J. Date 8a ed
  • Não seria o caso de fazer uma restrição de domínio?
  • TRIGGERS: são códigos de SQL armazenados dentro do banco de dados, onde podemos definir um "bloco" SQL para que seja executado automaticamente pelo banco, assim toda vez que uma instrução SQL ( evento DML ) for aplicada para uma tabela específica ele irá executar um determinado evento automaticamente.

    CONSTRAINTS:, que nada mais são restrições que você estabelece para uma coluna no banco de dados, que nada mais é de um método para validar a integridade de todos os dados que entram em sua base.
  • SILBERSCHATZ: "As triggers podem servir a uma finalidade muito útil, mas eles devem ser evitadas quando existirem alternativas".

ID
222322
Banca
FGV
Órgão
BADESC
Ano
2010
Provas
Disciplina
Banco de Dados
Assuntos

O SGBD Microsoft SQL Server 2005 Expression Edition possui recursos para implementação de trigger. Para gerenciar trigger neste SGBD é possível afirmar que:

I. possui tabelas especiais internas, denominadas de inserted e deleted, em memória RAM, e são acessadas enquanto a trigger está executando.
II. a tabela deleted armazena os registros manipulados com os comandos DELETE e UPDATE e a tabela inserted armazena os registros manipulados pelos comandos INSERT ou UPDATE.
III. é possível criar uma trigger sem associar uma ação para que a mesma seja executada automaticamente e desta forma, possa ser chamada pela aplicação ou o usuário para sua execução.

Assinale:

Alternativas
Comentários
  • Alguém saberia explicar por que as alternativas I e II estão incorretas??? Valeu!!
  • Também tenho essa dúvida. Consultando da Internet, inclusive a MSDN, achei que a I e II também estão corretas.
  • I. Acredito que o erro da primeira seja o fato das tabelas serem criadas sob demanda com os comandos insert, update e delete. Na questão fica o entendimento de que as tabela já estariam em memória, quando na verdade a carga em memória depende do tipo de comando. Um exemplo seria o comando insert, ele só criaria a tabela Inserted.
    II. Não vejo erro no item 2. Mas pelo que eu vi publicado na net, acho que tem a possibilidade de você forçar ou não o uso das tabelas com os comandos insert.
    Como concurso é feito de maladragem, pode eliminação ficamos com a letra "C"

    fonte: http://www.google.com.br/#sclient=psy-ab&hl=pt-BR&source=hp&q=trigger&pbx=1&oq=trigger&aq=f&aqi=g4&aql=&gs_sm=e&gs_upl=55713l56165l1l56992l3l3l0l0l0l2l967l2152l4-1.0.2l3l0&bav=on.2,or.r_gc.r_pw.,cf.osb&fp=14340a4cd434eb5c&biw=1600&bih=707

    Bons estudos!!!
  • a III está errada - o Conceito não é de trigger, mas de procedure, function, t-sql, bloco anônimo, mas não trigger (disparo), acredito que a banca quis a opção errada e não a certa.

    Opções I e II - https://msdn.microsoft.com/en-us/library/ms191300.aspx


ID
309634
Banca
CESPE / CEBRASPE
Órgão
TJ-ES
Ano
2011
Provas
Disciplina
Banco de Dados
Assuntos

Acerca de instalação, configuração e desempenho dos bancos de
dados comerciais Oracle, MySQL ou PostgreSQL, julgue os itens
subsequentes.

Em PostgreSQL, um gatilho (trigger) pode executar qualquer função definida pelo usuário em uma de suas linguagens procedurais — Java, C, Perl, Python ou TCL —, além de por meio da linguagem SQL. Em MySQL, gatilhos são ativados por comandos SQL, mas não por APIs, já que estas não transmitem comandos SQL ao servidor MySQL.

Alternativas
Comentários

ID
321124
Banca
CESPE / CEBRASPE
Órgão
Correios
Ano
2011
Provas
Disciplina
Banco de Dados
Assuntos

Acerca de banco de dados, julgue os itens a seguir.

Um bloco de comandos trigger é executado automaticamente quando uma instrução SELECT é executada em uma tabela do banco de dados.

Alternativas
Comentários
  • Os triggers (disparos) são comandos disparados assim que algo é alterado no banco.
    Por exemplo, poderíamos criar um Trigger em uma tabela SALARIOS de forma que, toda alteração no atributo SALARIO gere uma escrita no log de auditoria da empresa. Portanto, um update, delete, insert disparariam o Trigger.

    Leiam: http://imasters.com.br/artigo/1572/oracle/triggers_em_plsql/
  • TRIGGERS (gatilho)

    São blocos PL/SQL disparados automaticamente e implicitamente sempre que ocorrer um evento associado a uma tabela (INSERT, UPDATE ou DELETE), não usa o comando SELECT, COMMIT, ROLLBACK e SAVEPOINT.

    Que Deus nos abençoe.
  • Um bloco de comandos trigger é executado APENAS em 3 eventos: insert, update e delete. A condição pode ser antes ou depois dos comando DMLs citados anteriormente.

    Alternativa: Errada



ID
326617
Banca
IESES
Órgão
CRM-DF
Ano
2010
Provas
Disciplina
Banco de Dados
Assuntos

Um banco de dados é uma coleção de dados inter-relacionados que representam informações sobre um domínio específico. Sobre um banco de dados é CORRETO afirmar:

I. O modelo de dados relacional consiste num conjunto de tabelas onde cada linha corresponde a uma tupla ou registro que representa uma entidade do domínio e provê um conjunto de funções apoiadas na álgebra relacional para o armazenamento e recuperação de dados.

II. A normalização é um processo de análise dos esquemas de relações com base em suas dependências funcionais e chaves primárias que visa eliminar a redundância de informação e reduzir ao mínino as anomalias de inclusão, exclusão e alteração.

III. Uma stored procedure é um conjunto de instruções em SQL armezenado como um objeto do banco de dados que suportam comandos de seleção e repetição, podendo ser executada sempre que necessário através da sua invocação.

IV. Uma trigger é um tipo especial de stored procedure executada automaticamente quando ocorrem operações INSERT, UPDATE ou DELETE na tabela na qual a trigger foi configurada. Uma trigger é sempre associada a uma tabela, porém os comandos que formam a trigger podem acessar dados de outras tabelas do banco de dados.

A sequência correta é:

Alternativas
Comentários
  • Item II mal formulado: "que representa uma entidade do domínio" se refere ao modelo de dados ou ao registro? Se a afirmação for em relação ao SGBD está correta mas se for em relação a tupla estaria errada. Será que valeria recurso?

    O modelo de dados relacional consiste num conjunto de tabelas onde cada linha corresponde a uma tupla ou registro que representa uma entidade do domínio e provê um conjunto de funções apoiadas na álgebra relacional para o armazenamento e recuperação de dados. 
  • Em modelagem de dados a duas conceituações distintas para entidade.
    1. Entidade: grosso modo seria equivalente a tabelas no modelo relacional.
    2.Entidade: objeto que possui atributos, com existência física (pessoa) ou conceitual (curso,trabalho). Nesse caso, dizemos que em um BD contém grupos de entidades (conjuntos de entidades) que são similares. Navathe usa o termo "tipo entidade", que define uma coleção (conjunto) de entidades que possuem os mesmos atributos.

    Assim, o conceito contido na opção I é o segundo citado acima, no qual uma tupla (linha/registro) representa uma entidade do domínio.
    Por exemplo:
    Relação/tabela Pessoa (segundo navathe tipo entidade) conterá uma coleção de pessoas (entidades), sendo que cada tupla representará uma entidade do mundo real.
  • Em [1]. temos que o modelo relacional apareceu devido às seguintes necessidades:
    - Aumentar a independência de dados nos sistemas gerenciadores de banco de dados;
    - Prover um conjunto de funções apoiadas em álgebra relacional para armazenamento e recuperação de dados;
    - Permitir processamento ad hoc.

    Referência:
    [1] http://www.ime.usp.br/~jef/apostila.pdf

  • Uma trigger nem sempre está associada a uma tabela. Ela pode ser disparada por um evento de banco de dados, como por exemplo após um startup ou antes de um shutdown ou após o logon de usuário. Portanto a alternativa correta seria Letra D.

ID
339478
Banca
COSEAC
Órgão
DATAPREV
Ano
2009
Provas
Disciplina
Banco de Dados
Assuntos

Sobre banco de dados é INCORRETOdizer:

Alternativas
Comentários
  • Embora os triggers obviamente tenham suas utilidades, eles precisam ser usados com cautela, e provavelmente não deverão ser usados de forma alguma se houver um modo alternativo de solucionar o problema em questão.

    (DATE, C. J. Introdução a Sistemas de Banco de Dados. 8. ed. 2004)

  • Utilizar triggers de modo indiscriminado pode acarretar a perda de desempenho do banco de dados.


ID
345352
Banca
MOVENS
Órgão
Prefeitura de Manaus - AM
Ano
2010
Provas
Disciplina
Banco de Dados
Assuntos

Um comando que é armazenado dentro do banco de dados e executado pelo próprio sistema automaticamente, em consequência de uma modi?cação no banco de dados, é denominado

Alternativas
Comentários
  • Gabarito: Letra D

    Join: juntar tabelas que guardam uma correspondência entre si

    procedure/stored procedure: conjunto de comandos SQL armazenado no servidor de banco de dados

    select: Comando utilizado para realizar consultas a dados de uma ou mais tabelas


ID
349564
Banca
CONSULPLAN
Órgão
Prefeitura de Santa Maria Madalena - RJ
Ano
2010
Provas
Disciplina
Banco de Dados
Assuntos

Com relação à utilização de funções do Microsoft SQL Server 2008 (configuração padrão), analise as afirmativas:

I. CREATE_TRIGGER (Transact-SQL) – cria um gatilho DML, DDL ou de logon. Um gatilho é um tipo especial de procedimento armazenado, que é executado automaticamente quando um evento ocorre no servidor de banco de dados.
II. CAST e CONVERT (Transact-SQL) – reverte uma transação explícita ou implícita ao começo da transação ou a um ponto de salvamento dentro da transação.
III. SELECT (Transact-SQL) – recupera linhas do banco de dados e permite a seleção de uma ou mais linhas ou colunas de uma ou mais tabelas.
IV. CONTAINS (Transact-SQL) – é um predicado usado em uma cláusula WHERE para pesquisar colunas que contêm tipos de dados baseados em caracteres para obter correspondências precisas ou difusas (menos precisas) para palavras e frases únicas, proximidade de palavras com uma determinada distância entre si ou correspondências ponderadas.
V. ROLLBACK TRANSACTION (Transact-SQL) – marca o término de uma transação implícita ou explícita que teve êxito.

Estão corretas apenas as afirmativas:

Alternativas
Comentários
  •  I. CREATE_TRIGGER (Transact-SQL) – cria um gatilho DML, DDL ou de logon. Um gatilho é um tipo especial de procedimento armazenado, que é executado automaticamente quando um evento ocorre no servidor de banco de dados. 

    II. CAST e CONVERT REVERT(Transact-SQL) – reverte uma transação explícita ou implícita ao começo da transação ou a um ponto de salvamento dentro da transação. 

    III. SELECT (Transact-SQL) – recupera linhas do banco de dados e permite a seleção de uma ou mais linhas ou colunas de uma ou mais tabelas. 

    IV. CONTAINS (Transact-SQL) – é um predicado usado em uma cláusula WHERE para pesquisar colunas que contêm tipos de dados baseados em caracteres para obter correspondências precisas ou difusas (menos precisas) para palavras e frases únicas, proximidade de palavras com uma determinada distância entre si ou correspondências ponderadas. 

    V. ROLLBACK COMMIT TRANSACTION (Transact-SQL) – marca o término de uma transação implícita ou explícita que teve êxito. 
  • Acredito que não exista o comando CREATE_TRIGGER e sim CREATE TRIGGER (sem o "_")
  • Pessoal cuidado, o Eduardo Neves (acima) comentou uma coisa de forma errada.

    O que ele colocou como a função do REVERT, na verdade, seria ROLLBACK.

    O REVERT serve para outra coisa, como consta no site Microsoft MSDN:

    REVERT só é aplicável às instruções EXECUTE AS definidas no módulo. EXECUTE AS seguida por uma instrução REVERT. Ela tem a função de inicialmente.

    Complicou, né? Na prática fica melhor de entender, vejamos:
    Digamos que eu crio a  seguinte procedure:


     CREATE PROCEDURE dbo.FacaAlgumaCoisa
    AS
        SELECT SUSER_NAME(), USER_NAME();
        EXECUTE AS USER = 'convidado';
        SELECT SUSER_NAME(), USER_NAME();
        REVERT;
        SELECT SUSER_NAME(), USER_NAME();
    GO


    Agora eu vou chamar essa procedure com um determinado login:

    EXECUTE AS LOGIN = 'administrador';
    GO
    EXECUTE dbo.FacaAlgumaCoisa; 


    E ntão, iniciei a execução como 'administrador', no meio do código mandei executar como 'convidado' e depois fiz um REVERT, ou seja, falei para voltar a executar como 'administrador'. 

  • Acredito que não exista o comando CREATE_TRIGGER e sim CREATE TRIGGER (sem o "_")

  • Só um detalhe, SQL Server não é Oracle que precisa sempre de pelo menos uma tabela (e disponibiliza tabela Dual). Então não é muito preciso dizer que permite a "seleção de uma ou mais linhas ou colunas de uma ou mais tabelas." 

    No SQL Server

    Select 'Hello';

    Select getdate();

    No Oracle

    Select 'Hello' From Dual;

     

    Mas enfim, teria que ser kamikase pra não marcar o item por conta disso.


ID
362827
Banca
CESPE / CEBRASPE
Órgão
TRE-BA
Ano
2010
Provas
Disciplina
Banco de Dados
Assuntos

Acerca de gatilhos, visões e expressões regulares em SQL, julgue
os próximos itens.

Se mais de um gatilho for definido para uma mesma relação e mesmo evento, eles serão disparados na ordem em que foram declarados. Portanto, é responsabilidade do programador definir corretamente a ordem dos gatilhos.

Alternativas
Comentários
  • - Podemos ter mais de um Trigger associado a um mesmo evento de uma mesma tabela. É possível determinar qual trigger será disparado por primeiro (first) ou em último (last). Os demais (ordem none) serão todos executados entre o primeiro e o último sem uma ordem específica.
  • http://technet.microsoft.com/pt-br/library/ms189568.aspx

  • Errado! A ordem do gatilho (Trigger) pode ser definida pelo programador, sem interferência no evento. Não serão disparados conforme ordem de inclusão, mas sim conforme sua programação.

    Abs do Vila.


ID
377617
Banca
FCC
Órgão
TRE-AP
Ano
2011
Provas
Disciplina
Banco de Dados
Assuntos

Em PL/SQL é INCORRETO afirmar que triggers são executados quando

Alternativas
Comentários
  • Triggers são executadas quando há, necessariamente, a ocorrência de algum evento. A invocação explicita por parte do usuário não caracteriza um evento no banco de dados.
    Como as triggers estão sempre associadas a algum evento, os comandos BEFORE e AFTER informam se a trigger será disparada antes ou depois da ocorrência do evento.
    Os eventos mais comuns que disparam uma trigger são comandos DML como INSERT, UPDATE ou DELETE.

    http://www.java2s.com/Tutorial/Oracle/0560__Trigger/Triggers.htm
  • Resumindo: A principal diferença entre triggers (gatilhos) e stored procedures (procedimentos) é que os gatilhos são implícitos (são executados dado o acontecimento de um evento) e procedimentos são explícitos (a chamada ao procedimento ocorre de fato). 
  • Marquei letra B, pois DDL não são permitidas em PL/SQL. Mas concordo que a letra D também está incorreta.
  • A FCC colocou duas pegadinhas nessa questão, na letra A (para quem tem um conhecimento um pouco maior em triggers) e na letra B. Agora como sempre facilitou a vida do candidato colocando um coisa absurda na letra D.

    as instruções DML só podem ser executadas em tabelas (AFTER/BEFORE) ou VIEWS (INSTEAD OF) e como ambas são "schema objects" a letra A está perfeita.

    Triggers podem ser executas sim devido a operações DDL, está na própria referência da oracle:

    You can write triggers that fire whenever one of the following operations occurs:
    1. DML statements (INSERT, UPDATE, DELETE) on a particular table or view, issued
    by any user
    2. DDL statements (CREATE or ALTER primarily) issued either by a particular
    schema/user or by any schema/user in the database
    3. Database events, such as logon/logoff, errors, or startup/shutdown, also issued
    either by a particular schema/user or by any schema/user in the database

    Referência: Oracle Database Concepts 10gR2.
  • A) Todo mundo sabe que esta é a principal função dos TRIGGERS.
    B) Quem disse que um TRIGGER não pode ser acionado por uma DDL? E quanto o catálogo de dados do SGBD? Quando você usa uma DDL, o SGBD utiliza uma DML para alterar o catálogo de dados e com isso fica claro que um TRIGGER pode ser acionado por uma DDL.
    C) Da mesma forma, ao ocorrer um erro no servidor, o catálogo de dados é atualizado podendo ou não um TRIGGER ser disparado.
    D) Nunca, nem aqui, nem em marte, você pode chamar um TRIGGER explicitamente!
    E) Vide alternativas B e C.

  • Já resolvi 2x essa questão e insisto em marcar a letra C). Para mim parece totalmente sem sentido, pois só me vem a cabeça um falha de hardware. Acho que ficou muito vago o termo "erros de servidor". 

    Gabarito letra d)


ID
399961
Banca
CESPE / CEBRASPE
Órgão
Correios
Ano
2011
Provas
Disciplina
Banco de Dados
Assuntos

Julgue os itens subsequentes, relativos à segurança e à integridade
de banco de dados e à linguagem SQL.

A partir da instrução create trigger, é possível criar ações que serão executadas quando ocorrer determinado evento em uma tabela do banco de dados, por exemplo a remoção de dados.

Alternativas
Comentários
  • Para criar uma trigger:

    CREATE OR REPLACE nome_da_trigger
    [BEFOR / AFTER]  [INSERT / DELETE / UPDATE OF nome_da_coluna] ON nome_tabela
    FOR EACH ROW

    BEGIN


    END
  • Gabarito Certo

    Gatilho ou trigger é um recurso de programação executado sempre que o evento associado ocorrer. Trigger é um tipo especial de procedimento armazenado, que é executado sempre que há uma tentativa de modificar os dados de uma tabela que é protegida por ele.

    É muito utilizada para ajudar a manter a consistência dos dados ou para propagar alterações em um determinado dado de uma tabela para outras. Um bom exemplo é um gatilho criado para controle de quem alterou a tabela, nesse caso, quando a alteração for efetuada, o gatilho é "disparado" e grava em uma tabela de histórico de alteração, o usuário e data/hora da alteração.

    Em SQL, para se criar um trigger utiliza-se do CREATE TRIGGER, e para removê-lo deve-se usar DROP TRIGGER. Um gatilho típico é composto de três componentes, que seguem o Modelo: evento - condição - ação

     

    Exemplo: (MS-SQL Server)

    CREATE TRIGGER nome_do_gatilho ON dono.Nome_da_tabela FOR INSERT (ou SELECT ou UPDATE ou DELETE) AS Codigo para execucao

     

    Outro exemplo:

    CREATE TRIGGER Momento_Exec (BEFORE/AFTER) Evento_disparador (INSERT/UPDATE/DELETE) ON tabela_evento [REFERENCING NEW AS novo_nome OLD AS nome_antigo] (Opcional, em caso de delete para copiar os dados para outra tabela) [nivel_gatilho] (FOR EACH ROW (linha) / FOR EACH STATEMENT (comando) - determina como será executado o BLOCO_COMANDOS_SQL) [condição_exec] (WHEN ) BLOCO_COMANDOS_SQL

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !


ID
533983
Banca
ESAF
Órgão
CVM
Ano
2010
Provas
Disciplina
Banco de Dados
Assuntos

Um trigger

Alternativas
Comentários
  • Um trigger é parecido com um stored procedure, mas com uma diferença principal: ele dispara automaticamente quando certos tipos de eventos acontecem. Esses eventos são baseados em tabelas e linhas; por exemplo, você pode definir um trigger que é invocado depois que uma linha é atualizada.

    Procedures e triggers geralmente são criados em um arquivo ASCII que é então executado do programa ISQL Client dentro do InterBase. Este arquivo contém instruções para criar o procedure ou trigger como parte do banco de dados. Uma vez que a transação é "comitada", o procedure ou trigger está imediatamente disponível para as aplicações clientes.

    Procedures e triggers usam uma linguagem de programação especial que é baseada no SQL. Incluída com o InterBase, esta linguagem é otimizada para manipular dados armazenados em tabelas. Ela tem acesso completo as instruções da linguagem de manipulação de dados do SQL (DML) tais como SELECT, INSERT, UPDATE e DELETE. Ela também fornece extensões SQL que suportam variáveis, comentários, instruções declarativas, testes condicionais, desvios e laços. É uma linguagem que é desenvolvida para executar dentro de um bando de dados, em cima dos dados neste banco de dados.
  • Triggers são procedimentos gravados p/ serem executados implicitamente quando ocorrer determinada ação do usuário.
    Primeiro, ocorre a ação do usuário;
    Segundo, O sistema automaticamente executa algumas outras ações em função da ação do usuário. No entanto, esta parte é transparente para o usuário.
  • A palavra "sistema" na letra C não está correta, pois quem executa a trigger é o banco de dados.

    Outro detalhe na letra C, não obrigatoriamente existe um efeito colateral, podem haver condições em que a trigger verifica que não é necessária nenhuma alteração.

    Na letra D se "premissa" for entendida como "evento" estaria correta.

  • Segundo Silberchartz:

    Trigger é uma instrução que o sistema executa automaticamente como um efeito colateral de uma modificação no banco de dados.

    Livro Sistemas de banco de dados

  • c)

    Trigger em db é uma função comum em sgdb para bancos relacionais. O trigger é uma rotina acionada em certos tipos de alteração (insert, update, delete em SQL) em dados de uma tabela de acordo cuja implementação pode ser de permitir, impedir ou regular atividades no banco.


ID
582700
Banca
FCC
Órgão
TRT - 19ª Região (AL)
Ano
2011
Provas
Disciplina
Banco de Dados
Assuntos

Para uma dada tabela, foram criados 4 triggers utilizando- se PL/SQL, conforme abaixo:

I. Trigger 1 - BEFORE <statement>

II. Trigger 2 - BEFORE <for each row>

III. Trigger 3 - AFTER <statement>

IV. Trigger 4 - AFTER <for each row>

A sequência correta em que os triggers acima serão disparados é:

Alternativas
Comentários
  • PL/SQL Trigger Execution Hierarchy

    The following hierarchy is followed when a trigger is fired.
    1) BEFORE statement trigger fires first.
    2) Next BEFORE row level trigger fires, once for each row affected.
    3) Then AFTER row level trigger fires once for each affected row. This events will alternates between BEFORE and AFTER row level triggers.
    4) Finally the AFTER statement level trigger fires.
     


ID
582706
Banca
FCC
Órgão
TRT - 19ª Região (AL)
Ano
2011
Provas
Disciplina
Banco de Dados
Assuntos

Sobre as formas de execução de funções (functions) do PL/SQL, considere:

I. Pode-se executar uma função como parte de uma instrução SELECT.

II. Pode-se atribuir o valor de uma função a uma variável.

III. Não é possível passar parâmetros para uma função quando ela é executada dentro de um trigger.

É correto o que consta APENAS em

Alternativas
Comentários
  • Functions são subprogramas que têm por objetivo retornar algum valor ou resultado. Podem ser utilizadas nas aplicações como qualquer função predefinida, ou seja, em atribuições a variáveis ou como argumentos em comandos SELECT
  • A questão tenta nos confundir com na sença III dizendo que uma função não pode receber parâmetros quando executada dentro de uma trigger.
    Uma trigger não pode receber parâmetros, mas os programas (Procedures ou Funções) chamadas dentro dela não têm nenhuma restrição quanto a isso.

ID
630814
Banca
FCC
Órgão
TRE-PE
Ano
2011
Provas
Disciplina
Banco de Dados
Assuntos

Sobre triggers no banco de dados Oracle, considere:
I. Em instruções DDL, podem ser associados com uma tabela.
II. Em instruções DML, para publicação de eventos, estão associados a um banco de dados ou com um esquema.
III. Podem ser disparados antes ou depois para cada linha na qual a operação DML especificada ocorre.
Está correto o que consta em

Alternativas
Comentários
  • You can write triggers that fire whenever one of the following operations occurs:

    DML statements (INSERT, UPDATE, DELETE) on a particular table or view, issued by any user

    DDL statements (CREATE or ALTER primarily) issued either by a particular schema/user or by any schema/user in the database

    Database events, such as logon/logoff, errors, or startup/shutdown, also issued either by a particular schema/user or by any schema/user in the database

    fonte: http://docs.oracle.com/cd/B19306_01/server.102/b14220/triggers.htm#g22503

  • A FCC foi muito infeliz/maligna ao não contextualizar a questão. Em momento algum ela fala em disparo da trigger deixando o candidato imaginar que ela pode estar falando sobre criação da trigger.

    Foi isso que imaginei quando fiz a questão. Bem na definição de uma trigger, que é feito por um comando DDL, podemos associá-la a uma tabela (caso mais comum), logo a assetiva I estaria verdadeira.

    "Em instruções DDL, podem ser associados com uma tabela."

    CREATE TRIGGER schema.trigger_name BEFORE DELETE OR INSERT OR UPDATE ON schema.table_name pl/sql_block Agora, em se tratando de disparo da trigger, texto que serviu de base para a questão, a assetiva realmente estaria falsa conforme gabarito.

ID
661720
Banca
FCC
Órgão
TRE-CE
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Sobre Bancos de Dados, analise:

I. PL/SQL combina a facilidade e flexibilidade da SQL com a funcionalidade de procedimentos de uma linguagem de programação estruturada, tal como IF...THEN, WHILE e LOOP.

II. As declarações DML permitem que um usuário conceda a outros os privilégios, ou direitos, de acesso ao banco de dados e a objetos específicos dentro do banco de dados.

III. Os triggers de banco de dados podem ser usados para automatizar a geração de dados, fazer auditoria das modificações, implantar as restrições complexas de integridade e personalizar as autorizações complexas de segurança.

IV. As restrições de integridade são definidas com uma tabela e armazenadas como parte dessa tabela, de forma centralizada no dicionário de dados de um banco de dados, de modo que todos os aplicativos devem obedecer ao mesmo conjunto de regras.

Está correto o que consta em

Alternativas
Comentários
  •  DCL (Data Control Language - Linguagem de Controle de Dados)
    II. As declarações DML permitem que um usuário conceda a outros os privilégios, ou direitos, de acesso ao banco de dados e a objetos específicos dentro do banco de dados. 

    I, III, IV certas, LETRA B
  • Fiquei em dúvida no item III, quando foi citado 'personalizar as autorizações complexas de segurança'. Alguém saberia de algum exemplo prático para esta afirmação?

    Vlw!
  • Também fiquei na mesma dúvida.

    O máximo que encontrei foi:

    Integridade

    Apartir das Triggers podemos criar controles mais complexos para os relacionamento das tabelas.

    fonte:
    http://elderstroparo.blogspot.com.br/2010/02/o-que-e-trigger.html

    e

    How Triggers Are Used

    Triggers supplement the standard capabilities of Oracle Database to provide a highly customized database management system. For example, a trigger can restrict DML operations against a table to those issued during regular business hours. You can also use triggers to:

    • Automatically generate derived column values

    • Prevent invalid transactions

    • Enforce complex security authorizations

    • Enforce referential integrity across nodes in a distributed database

    • Enforce complex business rules

    • Provide transparent event logging

    • Provide auditing

    • Maintain synchronous table replicates

    • Gather statistics on table access

    • Modify table data when DML statements are issued against views

    • Publish information about database events, user events, and SQL statements to subscribing applications

      fonte: http://docs.oracle.com/cd/B28359_01/server.111/b28318/triggers.htm

       

  • Alguem sabe como resolver a IV) ? achei que restricoes de integridade faziam parte do dicionario de dados.

  • o DML é usado para gerenciar os dados através do esquema objeto.

  • Cuidado, o item II está errado pois tratam-se de declarações DDL (Data Definition Language):

    Data definition language (DDL) statements let you to perform these tasks:

        Create, alter, and drop schema objects

        Grant and revoke privileges and roles

        Analyze information on a table, index, or cluster

        Establish auditing options

        Add comments to the data dictionary


    http://docs.oracle.com/cd/B12037_01/server.101/b10759/statements_1001.htm

  • É impressionante como a FCC não se decide em alguns itens. Nesse item II, já tiveram 2-3 questões que ela considerava correto a DML permitir um usuário conceder privilégios, mas é isso aí. Ora é DML, ora é DCL, às vezes é DDL, é torcer pra que no dia da prova nós tenhamos sorte de marcar o item que eles acham que é o correto.


ID
661888
Banca
FCC
Órgão
INFRAERO
Ano
2011
Provas
Disciplina
Banco de Dados
Assuntos

Em banco de dados, Triggers são

Alternativas
Comentários
  • Gatilho ou trigger é um recurso de programação executado sempre que o evento associado ocorrer. Trigger é um tipo especial de procedimento armazenado, que é executado sempre que há uma tentativa de modificar os dados de uma tabela que é protegida por ele.

  • Triggers

    Triggers não faziam parte da SQL:1999

     

    Segundo Silberchartz:  é uma instrução que o sistema executa automaticamente como um efeito colateral de uma modificação no banco de dados.

    Dois requisitos para cumprimenta da trigger:

     

    1 – Especificar quando um trigger dever ser executado.

     

    2 – Especificar as ações a serem tomadas quando o trigger for executado.

  • O foda é chamar a Trigger de OBJETO. Em uma prova temos várias matérias e o conceito de OBJETO, para quem é da área, não se adequa ao contexto.

  • d)

    triggers sao rotinas criadas para serem executadas automaticamente quando o evento programado nela ocorrer. triggers sao úteis para verificar input e validar formatos.


ID
669634
Banca
CONSULPLAN
Órgão
TSE
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Um recurso poderoso é empregado em bases de dados Cliente/Servidor, executado em resposta a determinados eventos numa tabela ou visão, com o objetivo de manter a integridade das informações no banco de dados. Por exemplo, quando um novo registro, representando um novo funcionário, é adicionado à tabela empregados, novos registros também são criados nas tabelas de impostos, férias e salários. Esse recurso é usado normalmente para realizar tarefas relacionadas com validações e consistência de dados, segurança e restrições de acesso. Esse recurso denomina-se

Alternativas
Comentários
  • Conceito para Trigger: Consiste em um bloco Procedure SQL que está associado a um evento que ocorre no banco de dados. Uma procedure são subprogramas que têm por objetivo executar uma ação específica. Elas não retornam valores, não sendo, portanto utilizadas em atribuições a variáveis ou como argumento em um comando 'SELECT'.

    As trigger (gatilhos) são disparadas automaticamente e implicitamente sempre que ocorrer um evento associado a uma tabela (INSERT, UPDATE, DELETE). A trigger pode ser usada para
    • Manutenção de tabelas de auditoria;
    • Manutenção de tabelas duplicadas.
    • Implementação de constraints semânticas;
    • Manutenção de atributos derivados.
    A questão afirma que quando há a inserção de um registro na tabela empregados, novos registros são criados nas tabelas impostos, férias e salários. Isto da a ideia de uma ação disparada de forma automatica a fim de manter a consistência do banco.
  • Gatilho ou trigger é um recurso de programação executado sempre que o evento associado ocorrer. Trigger é um tipo especial de procedimento armazenado, que é executado sempre que há uma tentativa de modificar os dados de uma tabela que é protegida por ele.

    É muito utilizada para ajudar a manter a consistência dos dados ou para propagar alterações em um determinado dado de uma tabela para outras. Um bom exemplo é um gatilho criado para controle de quem alterou a tabela, nesse caso, quando a alteração for efetuada, o gatilho é "disparado" e grava em uma tabela de histórico de alteração, o usuário e data/hora da alteração

  • Acho que esta questao deveria ser anulada. Pois, não é possivel usar triggers em visoes.

    http://www.slideshare.net/flaviognm/stored-procedures-and-triggers.

  • Fernando, é possível sim. De acordo com [1]:

    "Specify INSTEAD OF to cause Oracle Database to fire the trigger instead of executing the triggering event. INSTEAD OF triggers are valid for DML events on views. They are not valid for DDL or database events."

    [1]: http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_7004.htm#i2235611
  • Triggers

    Triggers não faziam parte da SQL:1999

     

    Segundo Silberchartz:  é uma instrução que o sistema executa automaticamente como um efeito colateral de uma modificação no banco de dados.

    Dois requisitos para cumprimenta da trigger:

     

    1 – Especificar quando um trigger dever ser executado.

     

    2 – Especificar as ações a serem tomadas quando o trigger for executado.

  • De qualquer forma, também, deve-se abstrair e sempre considerar o enunciado como verdade absoluta, principalmente na hora da prova.

    Mesmo que não pudesse utilizar trigger em visões, não há como marcar outra opção, senão a letra D. Nunca vi um recurso ser deferido a partir de informações inconsistentes constantes apenas no enunciado.

    Vamos na fé.

  • Gabarito E

    O termo trigger (gatilho em inglês) define uma estrutura do banco de dados que funciona, como o nome sugere, como uma função que é disparada mediante alguma ação. Geralmente essas ações que disparam os triggers são alterações nas tabelas por meio de operações de inserção, exclusão e atualização de dados (insert, delete e update).

    Um gatilho está intimamente relacionado a uma tabela, sempre que uma dessas ações é efetuada sobre essa tabela, é possível dispará-lo para executar alguma tarefa.

    No SQL Server, utilizamos instruções DML (Data Manipulation Language) para criar, alterar ou excluir um trigger.

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !

  • triggers sao rotinas que ativam uma ação quando um evento ocorre. O trigger pode ativar quando dados sao adicionados, removidos ou alterados; o trigger pode inclusive acionar outros triggers, podendo iniciar uma cadeia de processamento.

  • Gatilho (banco de dados)

    Gatilho ou trigger é um recurso de programação executado sempre que o evento associado ocorrer. Trigger é um tipo especial de procedimento armazenado, que é executado sempre que há uma tentativa de modificar os dados de uma tabela que é protegida por ele.

    É muito utilizada para ajudar a manter a consistência dos dados ou para propagar alterações em um determinado dado de uma tabela para outras.


ID
702982
Banca
AOCP
Órgão
BRDE
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Sobre Triggers em SQL, analise as assertivas e assinale a alternativa que aponta a(s) correta(s).

I. Em alguns casos, é conveniente especificar um tipo de ação a ser tomada quando certos eventos ocorrem e quando certas condições são satisfeitas em um banco de dados. Podemos criar esses mecanismos através do comando CREATE TRIGGERS.

II. Triggers permitem a junção entre n tabelas em um banco.

III. Triggers são especialistas na conversão e adaptação de comandos SQL de um SGBD para outro.

IV. Um típico Triggers possui três componentes: evento(s), condição e ação.

Alternativas
Comentários
  • Comando CREATE TRIGGERS????
  • Às vezes fico confuso, não sei se é pegadinha ou erro da banca (que muitas vezes é incompetente mesmo). Graças a Deus não tinha a opção somente item IV, senão eu teria marcado achando que tava errado hahaha! 

  • Porque a 2 e a 3 estão erradas?

  • S ?

    Misericórdia !!!!


ID
769510
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

A inclusão de gatilhos (triggers) propicia melhor desempenho do banco de dados, em virtude de eliminar a necessidade de execução de algumas operações de acesso a esse banco de dados.

Alternativas
Comentários
  • acho q a questão esta certa...

    se X deve ser deletado no caso de Y ser deletado. Com um trigger isso seria feito através de uma chamada para deletar Y (um acesso?)

    alguem comenta?
  • Concordo com o colega acima. Considero a resposta como correta.
    Alguém poderia explicar melhor?
  • Marquei errado, pois no meu entedimento gatilhos (triggers) não são para melhorar o desempenho de um banco de dados, na verdade eles ajudam na proteção da integridade do mesmo. Logo está mais para questões de proteção dos dados e aplicação de regras para consistência deles do que melhora em desempenho.
  • Justamente por isto a questão estaria certa. Se as regras de integridade não forem verificadas no Banco, elas terão que serem verificadas na aplicação, o que aumentaria o número de acessos para validar as regras. Algúem me explica o erro?
  • Trigger melhora o desempenho do banco? Correto.
    Porém a questão afirma que isso ocorre em virtude de eliminar a necessidade de execução de operações de acesso. Isso está errado
  • Acredito que Trigger nao melhora a performance do banco, faz o contrario, imputa mais carga no acesso aos dados, CPU e cursores. Triggers melhoram a performance da aplicacao, pois parte do processamento que deveria ser feito pela aplicacao para manter a consistencia passou a ser feito pelo banco de dados, sobrecarregando assim o SGBD.
  • Nunca vi uma trigger melhorar a performance... Pode ser que em algum caso bem específico ela melhore (0.01%).
    Na verdade elas são uma verdadeira dor de cabeça para a performance. Quem já foi DBA sabe!
  • Triggers não melhoram o desempenho dos bancos de dados de modo geral, pois fazem que seja necessária um overhead de processamento a mais na hora de fazer atualizações, inserções ou deletar tuplas. Percebam que o sgbd fica mais sobrecarregado, principalmente se pensarmos que um servidor é recurso escasso (geralmente algumas maquinas fazem todo o trabalho), já cada cliente tem sua própria maquina. Por exemplo imaginem que queiramos fazer uma inserção de uma conta nova em um banco, e queiramos garantir que o saldo inicial seja maior ou igual a 0, poderíamos fazer isso em um trigger, porém é um overhead desnecessário, pois é algo facilmente verificável pelo cliente sem sobrecarregar o servidor com algo tao simples. É a mesma lógica de porque validação de campo de email em um web site é feito usando por exemplo javascript, uma linguagem que roda no cliente, e não no servidor. Triggers devem ser usados para manter consistência em situações mais complicadas, as vezes usando ate mais de uma relação, sendo que nesses casos pode haver uma melhora de desempenho para a aplicação por ela não ter que fazer consultas para o banco antes de fazer o update, perdendo tempo um tempo extra devido o proprio trafego dainformação pela rede. Mas veja o ganho é da aplicação não do bd

  • Vinícius, falar que a verificação de integridade será feita na aplicação está fora do escopo da questão.

  • Depois de analisar os comentários tive que pesquisar a respeito devido as controvérsias dos comentários, a maioria dos artigos que achei enfatizam que as triggers ajudam sim na performance.

    Segue:

    Uma trigger pode ser executada antes de atualizar um registro no banco, através do comando BEFORE UPDATE, após efetivar uma atualização para que ela seja garantida através do comando AFTER UPDATE. Antes de uma inclusão para testar valores,  restringindo a inclusão se não são de acordo com as regras da empresa, pois as triggers são feitas baseadas nestas, para isso se  usa o comando BEFORE INSERT e para garantir uma inclusão, por meio do comando AFTER INSERT. Também pode ser utilizada antes de uma exclusão, para que se possa confirmar a exclusão de um registro ou bloquear a mesma, através do comando BEFORE DELETE e depois de uma exclusão, com o comando AFTER DELETE, para garantir que o registro realmente foi excluído.

    Os cinco pontos que podem ser chamados de benefícios são:

    1. 1. Reduzir o tráfego na rede;
      2. Criar regras de negócios adaptadas a aplicação cliente,
    2. 3. Criar rotinas comuns que podem ser utilizadas para toda a empresa, reduzindo o tempo de desenvolvimento e manutenção.
    3. 4. Centralizar o processamento no servidor e reduzir os requisitos de hardware na estação cliente.
    4. 5. Aumentar a performance das aplicações.
    Enfim através das Stored procedures e das Triggers, todas as regras de negocio de uma empresa são realizadas, isto é centralizadas e executadas no servidor de banco de dados, por isso quando é realizado um evento ou uma ação na aplicação seja ela desktop ou web os comandos são enviados ao servidor de banco de dados, que vai interpretá-los, executa-los retornando apenas a resposta ao que foi solicitado, reduzindo assim a tráfego na rede, pois as informações já estarão "resumidas", ou seja, selecionadas de acordo com o solicitado pela aplicação.

    .

    Fonte: http://www.oficinadanet.com.br/artigo/banco_de_dados/dicas_triggers_e_procedures


    Espero ter ajudado.

    Só não conseguiu quem desistiu.
    Paz e força sempre.

  • Pessoal, 

    lembrem apenas que a questão fala explicitamente sobre melhor desempenho DO BANCO DE DADOS. Certamente, como vários colegas falaram,há uma melhoria de performance da aplicação com o uso de gatilhos e de procedures devido a uma série de fatores, inclusive o fato de preservar a consistência e integridade do banco. Mas para isso, há um overhead de operações no BD devido às operações dos triggers. Sendo assim, a performance do BD em si, não melhora.

  • Errado. O procedimento que melhora o desempenho são as store procedures, triggers não.


ID
770404
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Acerca dos gatilhos (triggers) na linguagem SQL ANSI, julgue os itens subsequentes.


Ao se especificar um gatilho, as palavras-chave obrigatórias FOR EACH ROW garantem que a regra será disparada mais de uma vez para cada linha afetada pelo evento de disparo.

Alternativas
Comentários
  • FOR EACH ROW -> PARA CADA LINHA...garantir que a regra sera disparada 1 vez
  • FOR EACH ROW é uma cláusula opcional, não obrigatória. Essa cláusula é usada para determinar se um gatilho deve ser disparado quando cada linha é afetada (row level trigger) ou somente uma vez quando o segmente inteiro é executado (statment level trigger)

ID
770410
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Em SQL, o comando CREATE TRIGGER permite que se especifique um gatilho.

Alternativas
Comentários
  • Questão Correta.
    Segue um exemplo:

    PostgreSQL
    CREATE TRIGGER name { BEFORE | AFTER } { event [ OR ... ] }    ON TABLE [ FOR [ EACH ] { ROW | STATEMENT } ]    EXECUTE PROCEDURE funcname ( arguments )

    Fonte: http://en.wikipedia.org/wiki/Database_trigger#PostgreSQL
  • questão de inglês:

    trigger(inglês) - gatilho(português)


ID
770413
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Gatilhos não permitem especificar tipo algum de regra ativa em sistemas de bancos de dados.

Alternativas
Comentários
  • Exatamente o contrário, Gatilhos (TRIGGERS) especificam sim regras ativas a serem aplicadas conforme um evento e sob uma condição.
  • ERRADO

    Por exemplo podemos ter :

    FOR EACH ROW: Especifica se o procedimento do gatilho deve ser disparado uma vez para cada linha afetada pelo evento do gatilho.


    FOR EACH STATEMENT: Especifica se o procedimento do gatilho deve ser disparado apenas uma vez por comando SQL.

     

    Se não for especificado nenhum dos dois, o padrão é FOR EACH STATEMENT.


ID
770416
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Os comandos da linguagem SQL padrão INSERT, DELETE e UPDATE podem ser utilizados para se definir um gatilho.

Alternativas
Comentários
  • SIM, são comandos usados como EVENTO para disparar o gatilho.
  • Achei estranho usar o termo "definir um gatilho"

    Alguém pode comentar essa questão
  • Adriana, também achei estranho e errei a questão, mas quando criamos um trigger temos:

    CREATE TRIGGER name { BEFORE | AFTER } { event [ OR ... ] }
       ON TABLE [ FOR [ EACH ] { ROW | STATEMENT } ]
       EXECUTE PROCEDURE funcname ( arguments )
     

    Ou seja, na definição de um trigger, usamos o "event" para definir se o trigger vai ser disparado em um INSERT, UPDATE ou DELETE.

  • A palavra "definir" realmente ficou muito estranha. 

    Mas enfim, trata-se de evento INSERT, UPDATE ou DELETE que especifica o evento que dispara o gatilho. Podem ser especificados vários eventos utilizando OR.

  • ah cara, definir o gatilho usando INSERT, DELETE e UPDATE, chega de internet por hoje

  • é esse tipo de questão que quebra a confiança


ID
776221
Banca
CESPE / CEBRASPE
Órgão
MPE-PI
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Ainda sobre banco de dados, julgue o  item  subsequente.


O uso de triggers, ou gatilhos, em bancos de dados, permite a especificação de um evento, condição ou ação.

Alternativas
Comentários
  • Prezados,

    Segundo Date, no livro Introdução a sistemas de bancos de dados, página 241, vemos que em se falando de trigger, o evento é uma operação sobre o banco de dados. Uma condição é uma expressão booleana que precisa ser testada. Ação é o procedimento que uma trigger irá executar. O evento e a condição juntos também são chamados de evento de trigger. A combinação dos três (evento, condição e ação) normalmente é chamado apenas de trigger. 

    Portanto a questão está correta.
  • Uma Trigger dentro do seu banco será de uma utilidade enorme, imaginem que temos um banco de dados com 1.500,000 de registros, onde os funcionários da empresa ganham por hora, e você tem que atualizar o banco de horas de cada funcionário por dia, alguns comandos poderia fazer isso por nós, mas seria um pouco complicado e desgastante, então, por este motivo, criamos nossas Triggers, onde definimos o que deve ser mudado na tabela num único arquivo e depois acionamos um único comando DML (Update) para ele, assim, ele irá atualizar os 1.500,000 de registros de uma única só vez.

     

  • pra não esquecer do trigger, lembre daquela comida que você não gosta e diz: "ECA"

    Evento

    Condição

    Ação

    Bons Estudos!


ID
794059
Banca
FCC
Órgão
TST
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Em um sistema gerenciador de bancos de dados, normalmente é possível criar gatilhos (triggers), cujo disparo pode ocorrer em decorrência

Alternativas
Comentários
  • triggers pode disparar em situações como exclusão, modificação ou inserção de um registro em uma tabela do banco de dados
  • o comentário foi tão inócuo que resolvi comentar,rs..

    Trigger é um tipo especial de procedimento armazenado no banco de dados , que é executado sempre que ocorre um Evento que desejamos controlar, por exemplo uma tentativa de exclusão protegida, enfim uma tentativa de modificar os dados de uma tabela que é protegida por ele.

    Via de regra  é  utilizada para ajudar a manter a consistência dos dados ou para propagar alterações em um determinado dado de uma tabela para outras. Um bom exemplo é um gatilho criado para controle de quem alterou a  tabela , nesse caso, quando a alteração for efetuada, o gatilho é "disparado" e grava em um  log  Evento, alteração, o usuário e data/hora da alteração.

    No âmbito dos bancos de dados, faz parte dos comandos SQL , a seguir um exemplo do Wikipidia:

    CREATE TRIGGER          Momento_Exec (BEFORE/AFTER)         Evento_disparador (INSERT/UPDATE/DELETE)ON tabela_evento[REFERENCING NEW AS novo_nome OLD AS nome_antigo] (Opcional, em caso de delete para copiar os dados para outra tabela)[nivel_gatilho] (FOR EACH ROW (linha) / FOR EACH STATEMENT (comando) - determina como será executado o BLOCO_COMANDOS_SQL)[condição_exec] (WHEN )BLOCO_COMANDOS_SQL[]sEdson
  • das alternativas listadas apenas (b) e (e)  referem-se a banco de dados
    e a clausula where é uma clausula opcional, pode ou não ser usada num comando sql, não faz sentido proteger algo ligado à um evento opcional..
  • Trigger: executa uma ação quando certos eventos ocorrem e quando certas condições são satisfeitas. A condição, é usada para monitorar o banco de dados.

    Alternativa: B

  • b-

    Use the CREATE TRIGGER statement to create and enable a database trigger, which is:

       A stored PL/SQL block associated with a table, a schema, or the database or

       An anonymous PL/SQL block or a call to a procedure implemented in PL/SQL or Java

    Oracle Database automatically executes a trigger when specified conditions occur.

    https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_7004.htm


ID
804730
Banca
CESPE / CEBRASPE
Órgão
MEC
Ano
2011
Provas
Disciplina
Banco de Dados
Assuntos

Acerca de triggers e procedimentos armazenados, julgue o  seguinte  item.

Um trigger é executado automaticamente sem a interferência do usuário enquanto uma stored procedure precisa ser explicitamente invocada.

Alternativas
Comentários
  • Stored Procedure é um bloco de código PL/SQL armazenado no servidor, que não retorna valor. As Stored Procedures são passivas, ou seja, alguma aplicação precisa solicitar sua execução. Function é um bloco PL/SQL que retorna valor. Assim como a stored procedure, uma function precisa ser solicitada por alguma aplicação.

    Triggers também são procedimentos PL/SQL armazenados. A diferença é que triggers são ativas, ou seja, são acionadas automaticamente a partir de um evento que representa uma ação sobre a tabela. Esses eventos estão relacionados a comandos insert, update ou delete. Por exemplo, podemos associar uma trigger ao evento insert de uma tabela. Sempre que um registro for inserido nesta tabela, o código da trigger será executado, automaticamente. Uma trigger pode chamar uma stored procedure, que por sua vez pode chamar outra stored procedure.

    https://www.devmedia.com.br/stored-procedures-e-triggers-no-oracle-artigo-sql-magazine-03/7629

  • Ou seja, uma trigger pode chamar uma stored procedure sem precisar do usuário. Não sei por que a questão está correta.


ID
804733
Banca
CESPE / CEBRASPE
Órgão
MEC
Ano
2011
Provas
Disciplina
Banco de Dados
Assuntos

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
Comentários
  • 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.


ID
804736
Banca
CESPE / CEBRASPE
Órgão
MEC
Ano
2011
Provas
Disciplina
Banco de Dados
Assuntos

Acerca de triggers e procedimentos armazenados, julgue o  seguinte  item.

Em um trigger, podem-se executar os comandos COMMIT ROLLBACK ou SAVEPOINT, mas não se pode chamar procedures ou funções que executem essas tarefas.

Alternativas
Comentários
  • Gabarito: E

    C.J. Date (Introdução a sistemas de bancos de dados):

    Os eventos possíveis incluem:

    • INSERT, DELETE, UPDADE (possivelmente com atributo específico),
    • alcance do fim da transação (COMMIT),
    • alcance de um horário especificado do dia,
    • excesso de um tempo limite especificado,
    • violação de uma restrição especificada e assim por diante.

    Além do mais, um trigger pode chamar/invocar uma stored procedures. (Site DEVMEDIA)

    Cespe: A partir da instrução create trigger, é possível criar ações que serão executadas quando ocorrer determinado evento em uma tabela do banco de dados, por exemplo a remoção de dados. (CERTO)

    Cespe: Um trigger é executado automaticamente sem a interferência do usuário enquanto uma stored procedure precisa ser explicitamente invocada. (CERTO)

    Cespe: Um bloco de comandos trigger é executado automaticamente quando uma instrução SELECT é executada em uma tabela do banco de dados. (ERRADO)


ID
814357
Banca
AOCP
Órgão
TCE-PA
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Analise o código a seguir:

CREATE TRIGGER safety ON DATABASE FOR DROP_TABLE, ALTER_TABLE AS PRINT 'You must disable Trigger "safety" to drop or alter tables!'
ROLLBACK

Sobre o código apresentado é correto afirmar que

Alternativas
Comentários
  • Basta ler o que o a frase em inglês diz:

    "You must disable Trigger "safety" to drop or alter tables!" ou "Você deve desabilitar todas as triggers existentes no seu esquema antes de dropar ou alterar as tabelas"
    Logo, letra A:

    é um exemplo de trigger de segurança que obriga o usuário a desabilitar todas as triggers existentes no seu esquema antes de dropar ou alterar as tabelas desse esquema.

  • Desculpa Mateus, mas onde você leu isso? "todas"?

    Acredito que a menos errada é a "B", que evidencia o "acidentalmente".

  • jones: Mas a (b) está errada porque diz: "(...) caso ele seja apagado ou alterado acidentalmente", e esse trigger serve justamente pra impedir que isso aconteça.

  • a-

    Criação de trigger é um mecanismo para ativar quando uma ação é feita. No caso, o trigger exibe mensagem quando comando drop_table e alter_table forem usados e faz rollback para desfazer alterações.

  • Pessoal discordo desse gabarito, NÃO é necessário desabilitar TODAS as triggers, MAS apenas a trigger safety que foi criada...


ID
836635
Banca
CESPE / CEBRASPE
Órgão
ANAC
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Acerca do sistema gerenciador de banco de dados Oracle, julgue os itens a seguir.

No Oracle 10g, uma trigger de DDL pode executar rotinas pré-definidas antes (before) ou depois (after) de um evento ocorrer, como, por exemplo, a execução dos comandos TRUNCATE, REVOKE ou GRANT.

Alternativas
Comentários
  • O que pode confundir nessa questão é associar REVOKE ou GRANT à DCL(Linguagem de Controle de Dados) e como item fala de  trigger de DDL(Linguagem de Definição de Dados) acabar marcando falso, o que não estaria correto, pois uma trigger de DDL responde por esses comandos também. 
    Abraços, vamo que vamo.
  • meio polemica essa questão. Afinal GRANT e REVOKE são DCL, como o amigo Ximenes comentou. E TRUNCATE, tem livro que diz que é DML, e outras literaturas dizem ser DDL. Pelo visto, o CESPE considera DDL

  • Essa questão era pra estar errada. Na documentação oficial da oracle diz o seguinte:

    Introduction to Triggers

    You can write triggers that fire whenever one of the following operations occurs:

    1. DML statements (INSERT, UPDATE, DELETE) on a particular table or view, issued by any user

    2. DDL statements (CREATE or ALTER primarily) issued either by a particular schema/user or by any schema/user in the database

    3. Database events, such as logon/logoff, errors, or startup/shutdown, also issued either by a particular schema/user or by any schema/user in the database

    Não cita nada de GRANT ou REVOKE. Dessa forma, acredito que faltou recurso.

  • Essa questão é inimiga dos apressados. Ela é de interpretação e não diz que REVOKE é DDL.


ID
836638
Banca
CESPE / CEBRASPE
Órgão
ANAC
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Acerca do sistema gerenciador de banco de dados Oracle, julgue os itens a seguir.

No Oracle 10g, é possível, por meio de triggers, monitorar eventos de DML, como, por exemplo, a execução do comando DELETE, ou ainda, monitorar eventos de banco de dados (Database) como, por exemplo, o evento SERVERERROR.

Alternativas
Comentários
  • É possível... Olha o que eu achei no site: http://mportes.blogspot.com.br/2006/01/trigger-after-servererror.html
  • Exemplo de uso do SERVERERROR:

    Creating a Database Event Trigger: Example This example shows the basic syntax for a trigger to log all errors. The hypothetical PL/SQL block does some special processing for a particular error (invalid logon, error number 1017). This trigger is an AFTER statement trigger, so it is fired after an unsuccessful statement execution, such as unsuccessful logon.

    CREATE TRIGGER log_errors AFTER SERVERERROR ON DATABASE     BEGIN       IF (IS_SERVERERROR (1017)) THEN          <special processing of logon error>       ELSE          <log error number>       END IF;    END;fonte: http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_7004.htm#i2153530

ID
902434
Banca
CESGRANRIO
Órgão
Petrobras
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Gatilhos são procedimentos armazenados e especializados, ativados por eventos no banco de dados.
Em SQL, um gatilho típico é composto de três componentes, que são:

Alternativas
Comentários
  • Evento: Quais operações de manipulação de tabela (DML) disparam a trigger: INSERT, UPDATE E DELETE

    Condição: Irá impor a integridade sobre os dados, com a utilização de IF's;

    Ação: Se falhar, poderá executar um ROLLBACK TRANSACTION e/ou lançar exceção RAISERROR
  • Sistema de Banco de Dados - Navathe - 4ª Edição pág: 548

    Modelo Generalizado para Bancos de Dados Ativos e Gatilhos Orade o modelo que foi usado para especificar regras de banco de dados ativos é chamado evento-condição-ação, ou modelo de ECA. Uma regra no modelo de ECA tem três componentes:
     
    1. O evento (ou eventos) que ativa (ativam) a regra: Esses eventos normalmente são operações de atualização de banco
    de dados aplicadas explicitamente. Porém, no modelo geral, eles poderiam ser também eventos temporais2 ou outros
    tipos de eventos externos.
    2. A condição que determina se a ação da regra deve ser executada: Uma vez ocorrido o evento, uma condição opcional
    pode ser avaliada. Se nenhuma condição for especificada, a ação será disparada pelo evento. Se uma condição for especificada,
    primeiro ela será avaliada, e somente se seu resultado for verdadeiro a ação da regra será executada.
    3. A ação a ser executada: A ação normalmente é uma sucessão de declarações SQL, mas também poderia ser uma transação
    de banco de dados ou um programa externo que será executado automaticamente.

  • Lembre-se do ECA


ID
922939
Banca
FUNCAB
Órgão
CODATA
Ano
2013
Provas
Disciplina
Banco de Dados
Assuntos

Sejam as seguintes afirmativas sobre triggers de eventos de inclusão, alteração e exclusão no SGBD Oracle:

I. Cada tipo de evento requer um trigger específico.

II. Uma tabela possui no máximo um trigger para cada tipo de evento.

III. Tabelas que possuem pelo menos um trigger não podem ser eliminadas de um banco de dados.

Marque a alternativa correta em relação às afirmativas acima.

Alternativas

ID
943282
Banca
CESPE / CEBRASPE
Órgão
INPI
Ano
2013
Provas
Disciplina
Banco de Dados
Assuntos

Acerca da linguagem SQL nos bancos de dados MySql e Oracle, julgue os itens de 59 a 61.

No Oracle 11g, é possível inabilitar uma trigger ao invés de excluí-la, não se permitindo, assim, que ela seja executada.
As sintaxes corretas para desabilitar uma trigger específica trigger1 e todas as triggers da tabela tabela1 são apresentadas a seguir.

ALTER TRIGGER trigger1 DISABLE;

ALTER TABLE tabela1

DISABLE ALL TRIGGERS;


Alternativas
Comentários
  • You disable a trigger using the ALTER TRIGGER statement with the DISABLE option. To disable the trigger reorder on the inventory table, enter the following statement:

    ALTER TRIGGER reorder DISABLE;

    You can disable all triggers associated with a table at the same time using the ALTER TABLE statement with the DISABLE ALL TRIGGERS option. For example, to disable all triggers defined for the inventory table, enter the following statement:
     

    ALTER TABLE inventory DISABLE ALL TRIGGERS;FONTE: http://docs.oracle.com/cd/B28359_01/server.111/b28310/general004.htm

ID
960904
Banca
IADES
Órgão
EBSERH
Ano
2013
Provas
Disciplina
Banco de Dados
Assuntos

Triggers são mecanismos úteis para alertar as pessoas ou para iniciar certas tarefas, automaticamente, quando certas condições são atendidas. A respeito deste assunto, assinale a alternativa correta.

Alternativas
Comentários
  • Deveriam mudar o nome pra evento-ação

    Alguém sabe de onde veio esses requisitos?

  •  Evento condição-ação? muito estranho...

    Pior ainda é do jeito que está na questão original "modelo evento-condição-ação".

    Qual o erro da alternativa E?

  • Letra E o erro é o seguinte: 

    Os triggers podem ser ativados: ANTES (BEFORE), DEPOIS (AFTER) ou NO LUGAR (INSTEAD OF). 

    Não existe acionamento de trigger durante os comandos listados. Por isso, a letra E está incorreta.


ID
960952
Banca
Marinha
Órgão
Quadro Técnico
Ano
2011
Provas
Disciplina
Banco de Dados
Assuntos

Regras, que especificam ações disparadas automaticamente por meio de certos eventos, são consideradas um importante avanço para os sistemas de banco de dados. Qual o nome da técnica para especificar estes tipos de regras ativas?

Alternativas
Comentários
  • Os  triggers (gatilhos) são disparados com base em eventos que ocorrem em nível de servidor e de banco de dados.

     

    Passo a Passo SQL Server 2012 - LeBlanc


ID
998680
Banca
VUNESP
Órgão
MPE-ES
Ano
2013
Provas
Disciplina
Banco de Dados
Assuntos

O disparo de um trigger em um banco de dados relacional ocorre

Alternativas
Comentários
  • Gabarito Letra B
     

    O termo trigger (gatilho em inglês) define uma estrutura do banco de dados que funciona, como o nome sugere, como uma função que é disparada mediante alguma ação. Geralmente essas ações que disparam os triggers são alterações nas tabelas por meio de operações de inserção, exclusão e atualização de dados (insert, delete e update).
     

    Um gatilho está intimamente relacionado a uma tabela, sempre que uma dessas ações é efetuada sobre essa tabela, é possível dispará-lo para executar alguma tarefa

    bons estudos

  • Gabarito B

    Um trigger é um tipo especial de procedimento armazenado, que é executado sempre que há uma tentativa de modificar os dados de uma tabela que é protegida por ele. Por isso temos:

    Associados a uma tabela: os TRIGGERS são definidos em uma tabela específica, que é denominada tabela de TRIGGERS;

    Chamados Automaticamente: quando há uma tentativa de inserir, atualizar ou excluir os dados em uma tabela, e um TRIGGER tiver sido definido na tabela para essa ação específica, ele será executado automaticamente, não podendo nunca ser ignorado.

    Não podem ser chamados diretamente: ao contrário dos procedimentos armazenados do sistema, os disparadores não podem ser chamados diretamente e não passam nem aceitam parâmetros.

    É parte de uma transação: o TRIGGER e a instrução que o aciona são tratados como uma única transação, que poderá ser revertida em qualquer ponto do procedimento, caso você queria usar “ROLLBACK”, conceitos que veremos mais a frente.

     

     

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !


ID
1028815
Banca
FEPESE
Órgão
JUCESC
Ano
2013
Provas
Disciplina
Banco de Dados
Assuntos

Um administrador de banco de dados deseja modifcar o conteúdo de dois campos, sempre após a atualização de um registro existente na referida tabela.

Assinale a alternativa que indica a opção mais recomendada para atingir este objetivo.

Alternativas
Comentários

ID
1099147
Banca
COPEVE-UFAL
Órgão
ALGÁS
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Dadas as afirmações a seguir, sobre conceitos de banco de dados e SGBD,

I. Gatilhos (triggers) são ações executadas automaticamente pelo SGBD, mediante satisfação de uma condição previamente estabelecida.

II. Procedimentos (procedures) e funções (functions) são estruturas idênticas, que não apresentam diferença alguma no SGBD Oracle 10g.

III. Na arquitetura do SGBD Oracle 10g, PGA (Program Global Area) é o nome dado à estrutura de memória adicional criado para cada usuário. Esse conceito é também conhecido como SGA (System Global Area).

IV. Uma visão é construída a partir de uma consulta. Sendo assim, o resultado de uma consulta possui estrutura semelhante a uma tabela do modelo relacional.

verifica-se que somente

Alternativas
Comentários
  • Gabarito correto letra C

    Prova Tipo 1: http://www.copeve.ufal.br/sistema/anexos/ALGAS%20-%20Gas%20de%20Alagoas%20S.A.%20-%202012/Prova%20-%20Analista%20de%20Tec%20da%20Informacao%20-%20Tipo%201.pdf

    Gabarito Definitivo: http://www.copeve.ufal.br/sistema/anexos/ALGAS%20-%20Gas%20de%20Alagoas%20S.A.%20-%202012/Gabaritos%20Definitivos.pdf


ID
1118548
Banca
VUNESP
Órgão
EMPLASA
Ano
2014
Provas
Disciplina
Banco de Dados
Assuntos

Considerando o SQL, o formato geral do comando de criação de gatilhos é:

CREATE TRIGGER < nome do trigger>
< tempo de ação do trigger>
< evento para acionar o trigger>
ON < nome da tabela>
< ação>

O parâmetro < tempo de ação do trigger > possui as seguintes opções válidas:

Alternativas
Comentários
  • Sintaxe básica de criação da trigger PL/SQL

     

    CREATE [OR REPLACE ] TRIGGER trigger_name

    {BEFORE | AFTER | INSTEAD OF }

    {INSERT [OR] | UPDATE [OR] | DELETE}

    [OF col_name]

    ON table_name

    [REFERENCING OLD AS o NEW AS n]

    [FOR EACH ROW]

    WHEN (condition)

    DECLARE

    Declaration-statements

    BEGIN

    Executable-statements

    EXCEPTION

    Exception-handling-statements

    END;

     

    Fonte: https://www.devmedia.com.br/triggers-pl-sql-saiba-quando-e-por-que-usar/30011

  • BEFORE, AFTER, INSTEAD OF.


ID
1155898
Banca
FJPF
Órgão
CONAB
Ano
2006
Provas
Disciplina
Banco de Dados
Assuntos

Nos bancos de dados, os mecanismos que são úteis para avisos a usuários ou para executar automaticamente determinadas tarefas, quando as condições para isso são criadas, são conhecidos como:

Alternativas

ID
1208284
Banca
CESPE / CEBRASPE
Órgão
TJ-SE
Ano
2014
Provas
Disciplina
Banco de Dados
Assuntos

Acerca de modelagem lógica e física de banco de dados, julgue os próximos itens.

Em bancos de dados relacionais que utilizam SQL, a restrição de integridade semântica “o salário de um funcionário não deve ser superior ao salário de seu supervisor” pode ser especificada e imposta em programas de aplicação que atualizem o banco de dados ou por meio do uso de triggers e assertions.

Alternativas
Comentários
  • Assertions - An assertion is a piece of SQL which makes sure a condition is satisfied or it stops action being taken on a database object. It could mean locking out the whole table or even the whole database

  • Certo
    Restrições de integridade semântica são conhecidads como regras de negócio. Estas podem ser estabelecidas por meio de:

    --> Triggers (Gatilhos): código executado automaticamente pelo banco de dados toda vez que um evento específico ocorrer.

    --> Assertions (Afirmações): é uma "peça" que certifica-se que uma condição é satisfeita ou encerra a ação a ser tomada em um objeto de banco de dados.
  • Essa restrição semântica é classifica como estática, ou seja, são restrições sobre um estado do BD. Por exemplo, restrição de chave, de relacioamento.


ID
1215223
Banca
CESPE / CEBRASPE
Órgão
TJ-SE
Ano
2014
Provas
Disciplina
Banco de Dados
Assuntos

Com relação a técnicas de análise de desempenho e otimização de consultas SQL, julgue os itens subsequentes.

Os triggers otimizam o desempenho de sentenças SQL

Alternativas
Comentários
  • Utilizando Triggers

     - Deve-se minimizar o uso de triggers. Esse recurso deve ser priorizado para registro de log e/ou controles que eventualmente não possam ser implementadas através de FOREIGN KEYS e CHECK CONSTRAINTS, e não para tratar regras de negócio.

     - O uso demasiado de Triggers pode acarretar na perda de controle do que está sendo feito por serem disparadas automaticamente mediante um evento de inserção, deleção e atualização.

     http://www.devmedia.com.br/escrevendo-queries-otimizadas-sql-magazine-84/19068#ixzz3YFT8Zr4Y

  • Normalmente os triggers degradam o desempenho das consultas, pois implicam na execução de subrotinas conforme o evento em que estejam vinculados.

  • Conceito de TRIGGER.

    Um Trigger é um procedimento armazenado no banco de dados que é chamado automaticamente sempre que ocorre um evento especial no banco de dados. ... Geralmente essas ações que acionam os triggers são alterações nas tabelas por meio de operações de inserção, exclusão e atualização de dados (insert, delete e update)


ID
1233082
Banca
VUNESP
Órgão
COREN-SP
Ano
2013
Provas
Disciplina
Banco de Dados
Assuntos

Sobre o conceito de gatilhos (triggers) em bancos de dados relacionais, é correto afirmar que

Alternativas
Comentários
  • Gabarito B

    Um Trigger é bloco de comandos Transact-SQL que é automaticamente executado quando um comando INSERT , DELETE ou UPDATE for executado em uma tabela do banco de dados.

    Os Triggers são usados para realizar tarefas relacionadas com validações , restrições de acesso , rotinas de segurança e consistência de dados ; desta forma estes controles deixam de ser executados pela aplicação e passam a ser executados pelos Triggers em determinadas situações :

    Mecanismos de validação envolvendo múltiplas tabelas

    Criação de contéudo de uma coluna derivada de outras colunas da tabela

    Realizar análise e e atualizações em outras tabelas com base em alterações e/ou incluções da tabela atual

    A criação de um Trigger envolve duas etapas :

    Um comando SQL que vai disparar o Trigger ( INSERT , DELETE , UPDATE)

    A ação que o Trigger vai executar ( Geralmente um bloco de códigos SQL )

    Como não poderia deixar de ser , existem certas limitações na utilização de um Trigger :

    Não é possível criar um Trigger para uma visão

    O resultado da execução de um Trigger é retornado para a aplicação que o chamou.

    O comando WRITETEXT não ativa um Trigger

    O comando TRUNCATE TABLE não pode ser reconhecido por um Trigger

    Não podemos usar em um Trigger os seguintes comandos SQL :

    ALTER DATABASE , ALTER TRIGGER , ALTER PROCEDURE , ALTER TABLE , ALTER VIEW . CREATE DATABASE , CREATE INDEX , CREATE PROCEDURE, CREATE SCHEMA, CREATE TABLE , DROP DATABASE, DROP TABLE , DROP PROCEDURE, DROP TRIGGER, DROP INDEX, GRANT , LOAD DATABASE, REVOKE, RESTORE DATABASE, TRUNCATE TABLE.

     

     

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !


ID
1252318
Banca
CESPE / CEBRASPE
Órgão
TRT - 17ª Região (ES)
Ano
2013
Provas
Disciplina
Banco de Dados
Assuntos

No que se refere aos sistemas de gerenciadores de banco de dados (SGBD), julgue o item seguinte.

As triggers podem ser utilizadas para garantir integridade na relação entre duas tabelas, mesmo que não haja a criação de uma referência por meio de uma chave estrangeira entre essas tabelas.

Alternativas
Comentários
  • Os TRIGGERS são usados com enorme eficiência para impor e manter integridade referencial de baixo nível, e não para retornar resultados de consultas. A principal vantagem é que eles podem conter uma lógica de processamento complexa.

    Você pode usar TRIGGERS para atualizações e exclusões em cascata através de tabelas relacionadas em um banco de dados, impor integridades mais complexas do que uma restrição CHECK, definir mensagens de erro personalizadas, manter dados desnormalizados e fazer comparações dos momentos anteriores e posteriores a uma transação.



    Leia mais em: Introdução à TRIGGERS http://www.devmedia.com.br/introducao-a-triggers/1695#ixzz3MXehaeHR

  • -->TRIGGERS são usados para diferentes propósitos:

    1-> impor regras de negócios complexos que não podem ser definidas usando as restrições de integridade.

    2->manter as regras de segurança complexas

    3->gerar automaticamente valores para colunas derivadas

    4->coletar informações estatística sobre acessos a uma tabela

    5-> previr transações inválidas

    6-> fornecer valores para auditoria

    Gabarito: correto

  • TRIGGER “Stored procedure” que é executada automaticamente quando da atualização de uma tabela

    Pode ser usado para:

    • Atualizações em cascata
    • Verificação de restrições de integridade que não podem ser verificadas pelas restrições implícitas nem pela cláusula CHECK 

ID
1272130
Banca
MPE-RS
Órgão
MPE-RS
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

O comando executado automaticamente pelo sistema gerenciador de banco de dados em consequência de uma modificação na base de dados é denominado de

Alternativas

ID
1308910
Banca
CESPE / CEBRASPE
Órgão
ANTAQ
Ano
2014
Provas
Disciplina
Banco de Dados
Assuntos

Acerca do Microsoft SQL Server 2008, julgue os seguintes itens.

Para desabilitar uma trigger DDL (data definition language) definida com escopo de servidor (on all server), é necessária a permissão control server no servidor

Alternativas
Comentários
  • "Para desabilitar um gatilho DDL definido com escopo de servidor (ON ALL SERVER) ou um gatilho de logon, um usuário deve ter a permissão CONTROL SERVER no servidor. Para desabilitar um gatilho DDL definido com escopo de banco de dados (ON DATABASE), no mínimo, um usuário deve ter a permissão ALTER ANY DATABASE DDL TRIGGER no banco de dados atual."

    Fonte: http://msdn.microsoft.com/pt-br/library/ms189748.aspx


ID
1311709
Banca
CESPE / CEBRASPE
Órgão
Polícia Federal
Ano
2013
Provas
Disciplina
Banco de Dados
Assuntos

Julgue os itens a seguir, relativos à linguagem de consulta estruturada (SQL).

Em SQL, triggers são conhecidas como técnicas de banco de dados ativo, pois especificam ações que são disparadas automaticamente por eventos.

Alternativas
Comentários
  • Trigger: banco de dados ativo. A partir de um evento, com uma certa condição, executo determinada ação.

  • Gabarito Certo

    Um trigger é um tipo especial de procedimento armazenado, que é executado sempre que há uma tentativa de modificar os dados de uma tabela que é protegida por ele. Por isso temos:

    Associados a uma tabela: os TRIGGERS são definidos em uma tabela específica, que é denominada tabela de TRIGGERS;

    Chamados Automaticamente: quando há uma tentativa de inserir, atualizar ou excluir os dados em uma tabela, e um TRIGGER tiver sido definido na tabela para essa ação específica, ele será executado automaticamente, não podendo nunca ser ignorado.

    Não podem ser chamados diretamente: ao contrário dos procedimentos armazenados do sistema, os disparadores não podem ser chamados diretamente e não passam nem aceitam parâmetros.

    É parte de uma transação: o TRIGGER e a instrução que o aciona são tratados como uma única transação, que poderá ser revertida em qualquer ponto do procedimento, caso você queria usar “ROLLBACK”, conceitos que veremos mais a frente.

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !

  • Um banco de dados que possui triggers associados às vezes é chamado de banco de dados ativo.

     

    Fonte: Introdução a sistemas de bancos de dados - Date - Pág. 241

  • Um banco de dados é passivo quando não oferece suporte para o gerenciamento automático de condições definidas sobre o estado do banco de dados em resposta a estímulos externos. Os sistemas de gerenciamento de banco de dados (SGBDs) convencionais são passivos, só executando transações quando são explicitamente requisitadas pelo usuário ou aplicação.

     

    Um banco de dados é ativo quando eventos gerados interna ou externamente ao sistema provocam uma resposta do próprio banco de dados (BD), independente da solicitação do usuário. Neste caso, alguma ação é tomada automaticamente dependendo das condições que foram especificadas sobre o estado do banco de dados.Alguns exemplos de aplicações são: controle de integridade, controle de acesso, políticas de segurança e atualização

     

  • CERTO

    Em SQL, triggers são conhecidas como técnicas de banco de dados ativo, pois especificam ações que são disparadas automaticamente por eventos.

    São eventos disparados em tabelas antes ou depois de determinadas operações, como: INSERT, UPDATE E DELETE.

    São muito importantes para agilizar a programação back-end de um sistema e reduzir significativamente a programação (front-end) de aplicações.

    Os valores utilizados para tratar internamente informações de atributos da respectiva tabela são: “new” e “old”.

    Bons estudos...


ID
1342156
Banca
FUNCAB
Órgão
MDA
Ano
2014
Provas
Disciplina
Banco de Dados
Assuntos

Em TSQL, trigger é um gatilho DML, DDL ou de logon, um tipo especial de procedimento armazenado que é executado automaticamente quando um evento ocorre no servidor de banco de dados.

Os gatilhos DDL são executados em resposta a diversos eventos que correspondem, basicamente, às seguintes instruções Transact-SQL:

Alternativas
Comentários
  • DDL – Data Definition Language ( DDL) são usadas para definir a estrutura de banco de dados ou esquema. Alguns exemplos:

    CREATE- para criar objetos no banco de dados
    ALTER – altera a estrutura da base de dados
    TRUNCATE – remover todos os registros de uma tabela, incluindo todos os espaços alocados para os registros são removidos
    COMMENT – adicionar comentários ao dicionário de dados
    RENAME – para renomear um objeto

    DML – Data Manipulation Language ( DML) são utilizados para o gerenciamento de dados dentro de objetos do banco. Alguns exemplos:

    SELECT- recuperar dados do banco de dados
    INSERT – inserir dados em uma tabela
    UPDATE – atualiza os dados existentes em uma tabela
    DELETE – exclui registros de uma tabela,
    CALL – chamar um subprograma PL / SQL
    EXPLAIN PLAN – explicar o caminho de acesso aos dados
    LOCK TABLE – controle de concorrência

    DCL – Data Control Language ( DCL ) declarações. Alguns exemplos:

    GRANT – atribui privilégios de acesso do usuário a objetos do banco de dados
    REVOKE – remove os privilégios de acesso aos objetos obtidos com o comando GRANT

    TCL – Transaction Control Language – (Controle de Transações) são usados ​​para gerenciar as mudanças feitas por instruções DML . Ele permite que as declarações a serem agrupadas em transações lógicas .

    COMMIT – salvar o trabalho feito
    SAVEPOINT – identificar um ponto em uma transação para que mais tarde você pode efetuar um ROLLBACK
    ROLLBACK – restaurar banco de dados ao original desde o último COMMIT


    Fonte:http://www.dellanio.com/diferenca-entre-comandos-ddl-dml-dcl-e-tcl/


ID
1365763
Banca
FCC
Órgão
TRT - 13ª Região (PB)
Ano
2014
Provas
Disciplina
Banco de Dados
Assuntos

Em um ambiente de banco de dados Oracle 11g ideal, foram criadas duas tabelas por meio das instruções PL/SQL a seguir: 

CREATE TABLE orders (order_id NUMBER PRIMARY KEY, line_items_count NUMBER DEFAULT 0 ); CREATE TABLE lineitems (order_id REFERENCES orders, seq_no NUMBER, CONSTRAINT lineitems PRIMARY KEY(order_id,seq_no) );

Foi criada, relacionada às tabelas, a seguinte trigger, colocada em execução:


CREATE OR REPLACE TRIGGER lineitems_trigger 
  AFTER INSERT OR UPDATE OR DELETE ON lineitems 
  FOR EACH ROW
BEGIN 
  IF (INSERTING OR UPDATING) 
  THEN 
    UPDATE orders SET line_items_count = NVL(line_items_count,0)+1 
    WHERE order_id = :new.order_id;
  END IF; 
  IF (DELETING OR UPDATING)
  THEN
     UPDATE orders SET line_items_count = NVL(line_items_count,0)-1 
     WHERE order_id = :old.order_id;
  END IF;
END;
/

Em seguida, foram executadas as instruções abaixo, nesta ordem:

INSERT INTO orders (order_id) VALUES (78);
INSERT INTO orders(order_id) VALUES (92);
INSERT INTO lineitems (order_id, seq_no) VALUES (78,1);
INSERT INTO lineitems (order_id, seq_no) VALUES (78,2);
SELECT * FROM orders;




Considere:

I. Ao executar a instrução INSERT INTO orders (order_id) VALUES (78); a trigger incrementou o valor contido no campo line_items_count passando de 0 para 1.

II. Ao executar a instrução INSERT INTO lineitems (order_id, seq_no) VALUES (78,1); a trigger incrementou o valor contido no campo line_items_count da tabela orders passando de 0 para 1.

III. Ao executar a instrução INSERT INTO lineitems (order_id, seq_no) VALUES (78,2); a trigger incrementou o valor contido no campo line_items_count da tabela orders passando de 1 para 2.

IV. A instrução SELECT * FROM orders; mostrará no campo line_items_count da linha cujo order_id é 78 o valor 3.

Está correto o que consta APENAS em

Alternativas
Comentários
  • NVL é um função de 2 parâmetros que tem por objetivo testar o primeiro parâmetro, se o mesmo for nulo, então retornará o valor do segundo parâmetro caso contrário retorna o valor do primeiro parâmetro. Fonte: http://rodrigowoliveira.blogspot.com.br/2012/08/funcoes-nvl-e-nvl2-do-oracle.html

  • LETRA D

    O segredo da questão é entender que a trigger só é executada após o INSERT  na tabela lineitems. No primeiro insert  o line_items_count da tabela orders soma +1 e no segundo insert incrementa + 1 no line_items_count passando de 1 para 2.

  • NVL (Null Value Logic)

    A função NVL permite substituir valores nulos com um valor padrão. Se o valor do primeiro parâmetro for nulo, a função retorna o valor no segundo parâmetro. Se o primeiro valor é não nulo, a função retorna o primeiro valor.

    ·         Ex: NVL(comissao,2) –> Quando comissao for nulo, retorna o valor 2; Se comissao for não nulo, retorna comissao.

     

    NVL2

    A função NVL2 aceita três parâmetros. Se o primeiro valor do parâmetro não é nulo ele devolve o valor do segundo parâmetro. Se o primeiro valor do parâmetro é null, ele retorna o terceiro parâmetro.


ID
1383613
Banca
FUNCAB
Órgão
PRODAM-AM
Ano
2014
Provas
Disciplina
Banco de Dados
Assuntos

A diferença básica dos conceitos de trigger e stored procedure é que, respectivamente:

Alternativas

ID
1389538
Banca
CESPE / CEBRASPE
Órgão
SEGESP-AL
Ano
2013
Provas
Disciplina
Banco de Dados
Assuntos

No que se refere a arquitetura e políticas de armazenamento de dados e funções, triggers e procedimentos armazenados, controle e processamento de transações, julgue o item abaixo.

Para a automatização dos procedimentos derivados das operações de inserção, alteração ou exclusão no banco de dados, pode-se utilizar o gatilho, procedimento armazenado que é executado sempre que houver uma dessas operações sob condições determinadas pelo projetista do banco de dados.

Alternativas
Comentários
  • Triggers ou Gatilhos

     

    São funções criadas em PostgresSQL para quando uma ação for executada seja feita uma outra ação de resposta com isso se garante consistência no BD.

     

    Operações gatilho no PostgresSQL - INSERT, UPDATE e DELETE.

     

    http://titodahora.blogspot.com.br/2016/07/triggers-storege-procedures-functions-e.html

  • Gabarito Certo

    Um trigger é um tipo especial de procedimento armazenado, que é executado sempre que há uma tentativa de modificar os dados de uma tabela que é protegida por ele. Por isso temos:

    Associados a uma tabela: os TRIGGERS são definidos em uma tabela específica, que é denominada tabela de TRIGGERS;

    Chamados Automaticamente: quando há uma tentativa de inserir, atualizar ou excluir os dados em uma tabela, e um TRIGGER tiver sido definido na tabela para essa ação específica, ele será executado automaticamente, não podendo nunca ser ignorado.

    Não podem ser chamados diretamente: ao contrário dos procedimentos armazenados do sistema, os disparadores não podem ser chamados diretamente e não passam nem aceitam parâmetros.

    É parte de uma transação: o TRIGGER e a instrução que o aciona são tratados como uma única transação, que poderá ser revertida em qualquer ponto do procedimento, caso você queria usar “ROLLBACK”, conceitos que veremos mais a frente.

     

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !


ID
1443814
Banca
FCC
Órgão
TJ-AP
Ano
2014
Provas
Disciplina
Banco de Dados
Assuntos

Na linguagem PL/SQL, deseja-se desabilitar um trigger denominado Abc, mas não excluí-lo do banco de dados. O comando que realiza esta tarefa é

Alternativas
Comentários
  • http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_4001.htm

  • ALTER TRIGGER nome_da_trigger DISABLE;

    Quando a trigger é criada pela primeira vez ela é habilitada automaticamente. Para habilitar a trigger novamente basta usar o comando:

    ALTER TRIGGER nome_da_trigger ENABLE;

    Read more: http://www.linhadecodigo.com.br/artigo/322/oracle-trigger.aspx#ixzz3r9CXZI3a

  • e-

    alter trigger triggerNome disable desativa trigger. drop trigger é o delete p triggers


ID
1450276
Banca
UFSBA
Órgão
UFSBA
Ano
2014
Provas
Disciplina
Banco de Dados
Assuntos

Marque C,se a proposição é verdadeira; E,se a proposição é falsa.

A execução apresentada do script deflagrará a execução da trigger trg_01,construída em PL/SQL, que  é demonstrada a seguir.

update tabela_a
set coluna_a = ‘X’
where coluna_b = ‘Y’;

create trigger trg_01
before delete on tabela_a
begin
insert into tabela_b values (‘W’, ‘K’);
end;

Alternativas
Comentários
  • Acredito que o erro está na na linha insert into tabela_b values (‘W’, ‘K’);
    o correto seria insert into tabela_b (coluna_a, coluna_b) values (‘W’, ‘K’); 
     

  • Na verdade, o erro é o seguinte:

    O Trigger em questão só será executado antes de algum comando DELETE na tabela_a  →  before delete on tabela_a.
    Porém o script inicial faz um UPDATE na tabela_a →  update tabela_a set coluna_a = ‘X’ where coluna_b = ‘Y’.

    Ou seja, o Trigger não será deflagrado (disparado), pois não existiu um evento necessário para sua execução.


ID
1523620
Banca
FEMPERJ
Órgão
TCE-RJ
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Considere um administrador de dados que deseja rastrear a utilização de certas tabelas críticas de um sistema de banco de dados, registrando as operações efetuadas, os usuários envolvidos e sua evolução ao longo do tempo. Uma forma rápida e simples de fazer isso, sem que se tenha que modificar o código em aplicativos ou causar maiores transtornos na instalação, é através do uso:

Alternativas
Comentários
  • Prezados,

    Triggers podem ser configuradas para registrar não só as consultas que são realizadas, mas são capazes de gravar como o dado estava antes e após a consulta ser executada. 

    Portanto a alternativa correta é a letra A.




ID
1528003
Banca
IDECAN
Órgão
Banestes
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

Segundo Silberschatz, o gatilho (trigger) é um conjunto executado pelo sistema automaticamente, em consequência de uma modificação no Banco de Dados. Assinale uma exigência que deve ser satisfeita para a projeção de um gatilho.

Alternativas
Comentários
  • Um Trigger é composto por três componentes, são eles:

    Evento - condições sob as quais o gatilho deve ser executado: BEFORE, INSTEAD OF, AFTER  UPDATE, INSERT, DELETE.
    Condição/Regra - regra que PODE ser especificada a fim de filtrar quais linhas dispararão o Trigger. É declarado logo após a cláusula WHEN (opcional).
    Ação - corpo do Trigger (operações DML).

    Diante disso, é possível afirmar que o que é EXIGÊNCIA para a projeção de um trigger a especificação do evento que o disparará.

    Gabarito: Letra A.


ID
1544458
Banca
Prefeitura do Rio de Janeiro - RJ
Órgão
Câmara Municipal do Rio de Janeiro
Ano
2014
Provas
Disciplina
Banco de Dados
Assuntos

Trigger é um bloco de comandos Transact-SQL, que é automaticamente executado quando um comando DML específico for executado em uma tabela do banco de dados. Três comandos DML

Alternativas
Comentários
  • Gabarito: C.

     

    DDL (Definition) - TRUNCATE, CREATE, ALTER, DROP

    DML (Manipulation) - INSERT, UPDATE, DELETE

    DCL (Control) - GRANT, REVOKE

    DTL (Transaction) - COMMIT, ROLLBACK

  • Complementando o comentário do colega, seguem situações em que uma trigger pode ser acionada.

     

    As triggers são programas armazenados que podem ser executados automaticamente ou podem ser disparados quando houver a ocorrência de algum evento associado a elas. Elas são, de fato, escritas para serem executadas em resposta a algum dos eventos expostos a seguir:

     

    - Com instruções DML - Manipulação da base de dados com a utilização das declarações DELETE, INSERT e UPDATE.

    - Com instruções DDL - Disponível a partir da versão 8i do Oracle Database. É mais utilizado em casos que envolvam auditoria de alterações nos objetos de um schema, assim como é o caso das declarações CREATE, DROP e ALTER.

    - Com operações da base de dados como LOGON, LOGOFF, STARTUP, SERVERERROR, dentre outros.

     

    Fonte: https://www.devmedia.com.br/triggers-pl-sql-saiba-quando-e-por-que-usar/30011


ID
1567081
Banca
COSEAC
Órgão
UFF
Ano
2015
Provas
Disciplina
Banco de Dados
Assuntos

Em relação aos procedimentos triggers, avalie as afirmativas a seguir.


I - É invocado na ocorrência de algum evento especificado ou de uma condição de gatilho.


II - Está sempre condicionado a uma atualização do banco de dados.


III - As ações referenciais CASCADE são um exemplo de um procedimento trigger.


Das afirmativas acima, apenas: 

Alternativas
Comentários
  • I e III corretas, letra E.

    Trigger executa uma ação quando ocorrer alguma modificação em tabela, como INSERT, UPDATE, DELETE.

    RESTRICT: Rejeita a atualização ou exclusão de um registro da tabela pai, se houver registros na tabela filha.

    CASCADE: Atualiza ou exclui os registros da tabela filha automaticamente, ao atualizar ou excluir um registro da tabela pai.

    SET NULL: Define como null o valor do campo na tabela filha, ao atualizar ou excluir o registro da tabela pai.

    NO ACTION: Equivalente ao RESTRICT.

    Há ainda o SET DEFAULT: Define o valor da coluna na tabela filha, como o valor definido como default para ela, ao excluir ou atualizar um registro na tabela pai.

    mais informações: 


ID
1568281
Banca
FUNDATEC
Órgão
BRDE
Ano
2015
Provas
Disciplina
Banco de Dados
Assuntos

É um procedimento invocado automaticamente na ocorrência de um evento específico.


A frase acima descreve qual conceito de banco de dados?

Alternativas
Comentários
  • Procedimento de gatilho (trigger):

     

    São procedimentos pré-compilados e armazenados junto com (possivelmente em) o banco de dados e invocados automaticamente na ocorrência de algum evento especificado.

     

     

     

    Introdução a sistemas de banco de dados - C.J. Date

     

  • a-

    A trigger is a PL/SQL unit that is stored in the database and (if it is in the enabled state) automatically executes ("fires") in response to a specified event.

    https://docs.oracle.com/database/121/TDDDG/tdddg_triggers.htm#TDDDG51000


ID
1610392
Banca
CESPE / CEBRASPE
Órgão
Banco da Amazônia
Ano
2010
Provas
Disciplina
Banco de Dados
Assuntos

A respeito de banco de dados, julgue o item que se segue.


Na criação de uma trigger, é necessária a ligação da constraints de integridade, para que o resultado obtido seja otimizado. 


Alternativas
Comentários
  • Gabarito: E

    C. J. DATE:

    Exatamente por serem procedimentos, os procedimentos de trigger não são o modo recomendado de implementar as restrições de integridade. Os procedimentos são mais difíceis para os humanos entenderem e mais difíceis para o sistema otimizar. Observe, também, que as restrições declarativas são verificadas em todas as atualizações relevantes, enquanto os procedimentos de trigger são executados apenas quando ocorre o evento especificado – por exemplo, inserir uma tupla na RelVar F.


ID
1623418
Banca
CETAP
Órgão
MPC-PA
Ano
2015
Provas
Disciplina
Banco de Dados
Assuntos

Suponha que seja necessário escrever um gatilho (trigger) em Linguagem SQL no sistema de banco de dados para impedir que haja o cadastramento do salário na tabela “Funcionários" com valor menor que um salário mínimo. Considerando que “salarioMinimo” é uma variável global do sistema, qual das alternativas a seguir descreve essa intenção com exatidão?

Alternativas

ID
1639690
Banca
CESPE / CEBRASPE
Órgão
DPF
Ano
2013
Provas
Disciplina
Banco de Dados
Assuntos

Julgue o item a seguir, relativo à linguagem de consulta estruturada (SQL).

Em SQL, triggers são conhecidas como técnicas de banco de dados ativo, pois especificam ações que são disparadas automaticamente por eventos.

Alternativas
Comentários
  • São eventos disparados em tabelas antes ou depois de determinadas operações, como: INSERT, UPDATE E DELETE.
    Em SQL, triggers são conhecidas como técnicas de banco de dados ativo, pois especificam ações que são disparadas automaticamente por eventos.

    São muito importantes para agilizar a programação back-end de um sistema e reduzir significativamente a programação (front-end) de aplicações.
    Os valores utilizados para tratar internamente informações de atributos da respectiva tabela são: “new” e “old”.

  • Navathe, página 14, 6 edição


    "...

    • forma de regra ativada por atualizações na tabela, que resulta na realização de algumas operações adicionais em algumas outras tabelas.."

  • Gabarito Certo

    Um trigger é um tipo especial de procedimento armazenado, que é executado sempre que há uma tentativa de modificar os dados de uma tabela que é protegida por ele. Por isso temos:

    Associados a uma tabela: os TRIGGERS são definidos em uma tabela específica, que é denominada tabela de TRIGGERS;

    Chamados Automaticamente: quando há uma tentativa de inserir, atualizar ou excluir os dados em uma tabela, e um TRIGGER tiver sido definido na tabela para essa ação específica, ele será executado automaticamente, não podendo nunca ser ignorado.

    Não podem ser chamados diretamente: ao contrário dos procedimentos armazenados do sistema, os disparadores não podem ser chamados diretamente e não passam nem aceitam parâmetros.

    É parte de uma transação: o TRIGGER e a instrução que o aciona são tratados como uma única transação, que poderá ser revertida em qualquer ponto do procedimento, caso você queria usar “ROLLBACK”, conceitos que veremos mais a frente.

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !

  • Prezados,

    As triggers são recursos de programação executados em um banco de dados sempre que um evento associado ocorrer.

    Portanto a questão está correta.


  • Assertiva C

    Em SQL, triggers são conhecidas como técnicas de banco de dados ativo, pois especificam ações que são disparadas automaticamente por eventos.

  • Gatilhos..


ID
1740436
Banca
FCC
Órgão
TRE-AP
Ano
2015
Provas
Disciplina
Banco de Dados
Assuntos

Após constatar que um objeto de um banco de dados Oracle 11g não está disponível no momento por causa de uma falha na conexão de rede, um Analista de Sistemas, portando o devido privilégio, deseja desativar um trigger chamado insere_ordem, que faz referência a este objeto. Para isso deve digitar o comando

Alternativas
Comentários
  • - Habilitar trigger:
    ALTER TRIGGER nome_da_trigger ENABLE;

    - Habilitar todas as triggers associadas a uma tabela (tabela_qualquer):ALTER TABLE tabela_qualquer ENABLE ALL TRIGGERS;


    - Desabilitar trigger:ALTER TRIGGER nome_da_trigger DISABLE;


    - Desabilitar todas as triggers associadas a uma tabela (tabela_qualquer):ALTER TABLE tabela_qualquer DISABLE ALL TRIGGERS;


    Portanto, a correta é a letra A.

    Fonte: https://docs.oracle.com/cd/B28359_01/server.111/b28310/general004.htm
  • Use the ALTER TRIGGER statement to enable, disable, or compile a database trigger.

     

    https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_4001.htm


ID
1740829
Banca
CESPE / CEBRASPE
Órgão
MEC
Ano
2015
Provas
Disciplina
Banco de Dados
Assuntos

Em relação às políticas de armazenamento de dados e funções, triggers e procedimentos armazenados, julgue o próximo item.

Caso seja acessada uma base de dados Oracle, devido aos requisitos de segurança, o uso de trigger permitirá o registro das conexões e desconexões, bem como da última atividade da sessão.

Alternativas
Comentários
  • TRIGGERS
    DEFINIÇÃO
    •   São eventos ou procedimentos  disparados em tabelas antes ou depois de determinadas operações, como: INSERT, UPDATE E DELETE.
    •   Em SQL, triggers são conhecidas como técnicas de banco de dados ativo, pois especificam ações que são disparadas automaticamente por eventos.
    •   Na linguagem SQL,  são procedimentos executados implicitamente quando ocorre determanda ação do usuário, tal qual, uma modificação de uma tabela.
    •   São muito importantes para agilizar a programação back-end de um sistema e reduzir significativamente a programação (front-end) de aplicações.
    •   Os valores utilizados para tratar internamente informações de atributos da respectiva tabela são: “new” e “old”.
    •   Pontos fundamentais observados pela utilização das triggers: (Integridade, replicação de dados e controle dos dados)

  • CERTO.

     

    "Triggers são usados para diferentes propósitos, como os seguintes:
    1. Impor regras de negócios complexas que não podem ser definidas usando as restrições de integridade
    2. Manter regras de segurança complexas
    3. Gerar automaticamente valores para colunas derivadas
    4. Coletar informações estatísticas sobre acessos a uma tabela
    5. Previr transações inválidas
    6. Fornecer valores para auditoria"

  • Em um mecanismo de trigger, é necessário especificar as condições sob as quais o gatilho deve ser executado e as ações que devem ser tomadas quando um gatilho for disparado.


ID
1740832
Banca
CESPE / CEBRASPE
Órgão
MEC
Ano
2015
Provas
Disciplina
Banco de Dados
Assuntos

Em relação às políticas de armazenamento de dados e funções, triggers e procedimentos armazenados, julgue o próximo item.

Situação hipotética: O gestor de um sistema solicitou a realização de auditoria nas atualizações dos registros, prevenção de transações inválidas e imposição de autorização de segurança. Assertiva: Nessa situação, se a base de dados for implementada em um banco de dados Oracle, nenhuma das demandas do gestor poderá ser atendida com o uso de trigger.

Alternativas
Comentários
  • Classe que poderá ser utilizada a Trigger!

    TRIGGERS
    DEFINIÇÃO
    •   São eventos ou procedimentos  disparados em tabelas antes ou depois de determinadas operações, como: INSERT, UPDATE E DELETE.
    •   Em SQL, triggers são conhecidas como técnicas de banco de dados ativo, pois especificam ações que são disparadas automaticamente por eventos.
    •   Na linguagem SQL,  são procedimentos executados implicitamente quando ocorre determanda ação do usuário, tal qual, uma modificação de uma tabela.
    •   São muito importantes para agilizar a programação back-end de um sistema e reduzir significativamente a programação (front-end) de aplicações.
    •   Os valores utilizados para tratar internamente informações de atributos da respectiva tabela são: “new” e “old”.
    •   Pontos fundamentais observados pela utilização das triggers: (Integridade, replicação de dados e controle dos dados)

  • ambas as demandas podem ser atendidas com o uso de trigger.

  • ERRADO.

    "Triggers são usados para diferentes propósitos, como os seguintes:
    1. Impor regras de negócios complexas que não podem ser definidas usando as restrições de integridade
    2. Manter regras de segurança complexas
    3. Gerar automaticamente valores para colunas derivadas
    4. Coletar informações estatísticas sobre acessos a uma tabela
    5. Previr transações inválidas
    6. Fornecer valores para auditoria
    "

     

    - Material Estratégia Concursos, Professor Thiago Rodrigues.

  • (ERRADO)

    Não sei praticamente nada de BD, BW, BM, mas com o macete ( Tem restrição, menosprezo ?) Tem erro,

    Não quero ser Doutor em matéria nenhuma, apenas quero meu distintivo da PF

    Um dia você chega lá, continue ...

  • Caso seja acessada uma base de dados Oracle, devido aos requisitos de segurança, o uso de trigger permitirá o registro das conexões e desconexões, bem como da última atividade da sessão.

    QUESTÃO ANTERIOR


ID
1740835
Banca
CESPE / CEBRASPE
Órgão
MEC
Ano
2015
Provas
Disciplina
Banco de Dados
Assuntos

Em relação às políticas de armazenamento de dados e funções, triggers e procedimentos armazenados, julgue o próximo item.

Ao alterar a linguagem de programação de um sistema de folha de pagamento, recomenda-se a utilização de funções e procedures armazenadas no banco de dados para processamento da lógica de negócio a fim de facilitar a migração entre as linguagens de Server-side ou Back-end.

Alternativas
Comentários
  • Correto!

    STORED PROCEDURES – ( PROCEDURES ) – (PROCEDIMENTOS)
    DEFINIÇÃO
    •   São procedimentos armazenados no banco de dados formados por comandos de controle de fluxos variáveis e comandos SQL. Pode ser chamados a qualquer momento tanto pelo SGBD quanto por um sistema que faz interface com o mesmo. A utilização de Stored Procedures constitui uma técnica eficiente de executar  operações repetitivas, ao invés de digitar os comandos cada vez que determanda operaçção necessite ser executada.
    •   Abrangem um ou mais aglomerados de instruções SQL que podem ser, blocos com: selects, inserts, updates, deletes, execução de functions, views, enfim, é um recurso de extrema importância na definição de tarefas parametrizáveis ou não pra que ajude a otimizar e reduzir linhas de programação e “remendos” de códigos em uma base de dados ou aplicação.
    •   Existem três modos de parâmetros: IN, OUT e IN OUT.
    •   Procedimentos armazenados podem fornecer melhor desempenho (performance) pois reduzem, porém não elimina, o tráfego de dados entre o servidor e o cliente.
    •   Procedures, funções e subrotinas são conceitos das técnicas de programação tradicionais que correspondem, nas técnicas orientadas ao objeto, aos métodos.
    •   o conceito de procedimentos armazenados (stored procedures), presentes em bancos de dados relacionais, é correto afirmar que são armazenados, de forma persistente, no banco de dados.
    •   Os procedimentos armazenados (stored procedures) constituem uma ferramenta disponibilizada e representam programas armazenados no servidor de banco de dados.
    •   O uso de stored procedures  são consultas previamente compiladas e armazenadas em um servidor sob a forma de procedimentos. É um meio de reduzir o custo de comunicação e de compilações SQL em banco de dados do tipo cliente-servidor.
    •   Stored Procedure é uma coleção de comando em SQL que encapsulam tarefas repetitivas, aceitam parâmetros de entrada e retornam valores correspondentes à execução dos comandos SQL.

  • A utilização de procedures pode auxiliar a transição entre diferentes servidores de aplicação em diferentes linguagens.

  • Acho patético quando postam textões q não respondem à pergunta. Bem, parando de mimimi, vamos à questão:

    Stored Procedure é uma conjunto de comandos em SQL que podem ser executados de uma só vez, como em uma função. Útil quando temos várias aplicações escritas em diferentes linguagens, ou rodam em plataformas diferentes, porém executam a mesma função.

    Fonte:

    [1] https://www.devmedia.com.br/introducao-aos-stored-procedures-no-sql-server/7904


ID
1740838
Banca
CESPE / CEBRASPE
Órgão
MEC
Ano
2015
Provas
Disciplina
Banco de Dados
Assuntos

Em relação às políticas de armazenamento de dados e funções, triggers e procedimentos armazenados, julgue o próximo item.

A fim de realizar a automatização dos procedimentos derivados das operações de DML em uma tabela no banco de dados, pode-se utilizar trigger, procedimento armazenado executado sempre que houver uma dessas operações desde que sob as condições determinadas pelo projetista do banco de dados.

Alternativas
Comentários
  • São funções criadas em PostgresSQL para quando uma ação for executada seja feita uma outra ação de resposta com isso se garante consistência no BD.

     

    http://titodahora.blogspot.com.br/2016/07/triggers-storege-procedures-functions-e.html

  • Os triggers podem ser executados tanto ANTES quanto DEPOIS das operações de INSERTUPDATE DELETE.

     

     

     

    Att,

    Foco na missão!

  • As triggers são programas armazenados que podem ser executados automaticamente ou podem ser disparados quando houver a ocorrência de algum evento associado a elas.

    Elas são escritas para serem executadas em resposta a algum dos eventos: DELETE, INSERT, UPDATE, CREATE, DROP e ALTER, LOGON, LOGOFF, STARTUP, SERVERERROR.

    GABARITO: CORRETO.

    Fonte: MEDIUM.COM


ID
1740841
Banca
CESPE / CEBRASPE
Órgão
MEC
Ano
2015
Provas
Disciplina
Banco de Dados
Assuntos

Em relação às políticas de armazenamento de dados e funções, triggers e procedimentos armazenados, julgue o próximo item.

Se uma aplicação de protocolo de documentos tiver sido construída em um banco de dados sem integridade referencial entre as tabelas e se os dados dessa aplicação forem migrados para o banco de dados relacional Oracle com as mesmas características, não será possível efetuar transações em cascata com o uso de triggers.

Alternativas
Comentários
  • Se não há relacionamento entre as tabelas logo operações em cascata nelas não será possível pois não existe o encadeamento necessário.

  • Questão confusa. Com o uso de triggers é possivel efetuar qualquer transação em cascata, basta colocar os comandos desejados na trigger.  Integridade referencial somente é obrigatório quando a transação em cascata é feita pelo próprio banco, sem a necessidade de triggers.

    Se não houvese a palavra trigger a questão ficaria realmente correta.

  • OPERAÇÃO EM CASCATA COM TRIGGER >>> APENAS COM INTEGRIDADE REFERENCIAL.

    GO @HEAD!

  • Acho q a resposta a esta questao fica mais facil se vc fizer a seguinte indagação:

    Eu não posso aplicar uma trigger em uma única tabela (ou seja, sem integridade referencial)?

    Primerio vamor definir o q seria uma integridade referencial[1]:

    "Assegura que um valor que aparece em uma relação (tabela) para um determinado conjunto de atributos apareça em outro conjunto de atributos em outra relação (tabela)".

    Porém, se eu tiver uma so tabela, não autorelacionada, não terei, aqui, integridade referencial, correto? Entao, nao posso usar trigger aqui?

    Bem, na visão de[1], trigger é "um comando executado automaticamente pelo sistema como um efeito de uma modificação no Banco de Dados."

    Essa questao, inclusive, corrobora com esse entendimento:

    Gatilhos (Triggers)

    Ano: 2015 Banca: CESPE / CEBRASPE Órgão: MEC Prova: CESPE - 2015 - MEC - Administrador de Dados

    Em relação às políticas de armazenamento de dados e funções, triggers e procedimentos armazenados, julgue o próximo item.

    A fim de realizar a automatização dos procedimentos derivados das operações de DML em uma tabela no banco de dados, pode-se utilizar trigger, procedimento armazenado executado sempre que houver uma dessas operações desde que sob as condições determinadas pelo projetista do banco de dados.

    Certo

    Na minha avaliacao, questao errada!!!

    Fonte:

    [1] https://www.inf.ufsc.br/~mario.dantas/cap6.pdf

  • Grego ou Romano ? eu num entendi nada


ID
1740847
Banca
CESPE / CEBRASPE
Órgão
MEC
Ano
2015
Provas
Disciplina
Banco de Dados
Assuntos

Considerando que, durante a implementação do Sistema Informatizado do FIES (SisFIES), foram utilizadas várias funções em um banco de dados relacional, julgue o seguinte item.

Não se recomenda a passagem de parâmetros para uma função caso esta seja executada em um trigger, visto que a função pode alterar a forma de funcionamento do trigger.

Alternativas
Comentários
  • Sendo a função uma forma de encapsulamento de procedimentos ela supostamente não poderia alterar a forma de funcionamento de uma trigger.

  • Por partes:

    Não se recomenda a passagem de parâmetros para uma função caso esta seja executada em um trigger, -- Certo. Segundo[1], no caso do PostgreSQL, funções de triggers são funções que não recebem nenhum parâmetro e retornam o tipo trigger. Essas funções recebem uma estrutura chamada TriggerData, e esta é passada internamente para a função pelo PostgreSQL.

    visto que a função pode alterar a forma de funcionamento do trigger. -- Como assim alterar a forma de funcionamento?? A funcao vai fazer aquilo que foi programada para. Segundo[1], "cada linguagem, que suporta triggers, possui o seu próprio método para tornar os dados de entrada da trigger disponíveis para a função. Estes dados de entrada incluem o tipo de evento da trigger, assim como as opções informadas na criação da trigger. Para uma trigger no nível de linha, os dados de entrada também incluem as linhas NEW para as triggers de INSERT e UPDATE, e a linha OLD para os triggers de UPDATE e DELETE".

    Quando ele diz "alterar a forma de funcionamento", tá dizendo o q?? dropar, ao inves de deletar, por exemplo??

    Repito : a função faz aquilo q foi programada para.

    Fonte:

    [1] https://imasters.com.br/data/triggers-no-postgresql


ID
1792453
Banca
BIO-RIO
Órgão
IF-RJ
Ano
2015
Provas
Disciplina
Banco de Dados
Assuntos

No contexto de bancos de dados, há um recurso que é associado a uma tabela, sendo um procedimento invocado quando um comando DML é executado. São usos deste recurso: validação dos dados; verificação da integridade dos dados; arquivamento de registros excluídos; rastreamento e registro de logs de atividades nas tabelas. Esse recurso é conhecido como:

Alternativas
Comentários
  • A trigger é associada a tabela podendo agir sobre ela, se houver(update,delete,insert q são os comandos dml). Pode-se tbm definir se ela agira antes(before) ou dps(after) do comando dml.


ID
1794448
Banca
FCC
Órgão
MPE-PB
Ano
2015
Provas
Disciplina
Banco de Dados
Assuntos

Considere os itens a seguir:

I. Uma instrução DML (DELETE, INSERT ou UPDATE).

II. Uma instrução DDL (CREATE, ALTER ou DROP).

III. Uma instrução DTL (COMMIT, ROLLBACK ou REVOKE).

IV. Uma operação em banco de dados como SERVERERROR, LOGON, LOGOFF, STARTUP ou SHUTDOWN.

No Oracle, é possível gravar triggers que são acionados sempre que ocorre no banco de dados as operações descritas APENAS em 

Alternativas
Comentários
  • You can write triggers that fire whenever one of the following operations occurs:


    DML statements (INSERT, UPDATE, DELETE) on a particular table or view, issued by any user

    DDL statements (CREATE or ALTER primarily) issued either by a particular schema/user or by any schema/user in the database

    Database events, such as logon/logoff, errors, or startup/shutdown, also issued either by a particular schema/user or by any schema/user in the database


    Fonte: https://docs.oracle.com/cd/B19306_01/server.102/b14220/triggers.htm


ID
2059063
Banca
Quadrix
Órgão
CFB
Ano
2016
Provas
Disciplina
Banco de Dados
Assuntos

Atualmente, devem-se considerar alguns aspectos relevantes para atingir a eficiência e a eficácia dos sistemas informatizados desenvolvidos, a fim de atender a seus usuários nos mais variados domínios de aplicação: automação de escritórios, sistemas de apoio a decisões, controle de reserva de recursos, controle e planejamento de produção, alocação e estoque de recursos, entre outros.
Na arquitetura do Banco de Dados Cliente-Servidor, o cliente (front_end) executa as tarefas do aplicativo, ou seja, fornece a interface do usuário (tela, e processamento de entrada e saída). O servidor (back_end) executa as consultas no Data Base Management System (DBMS) e retorna os resultados ao cliente. Apesar de ser uma arquitetura bastante popular, são necessárias soluções sofisticadas de software que possibilitem: o tratamento de transações, as confirmações de transações (commits), desfazer transações (rollbacks), linguagens de consultas (stored procedures) e gatilhos (triggers). A principal vantagem desta arquitetura:

Alternativas
Comentários
  • Banco de Dados Cliente-Servidor: Na arquitetura Cliente-Servidor, o cliente (front_end) executa as tarefas do aplicativo, ou seja, fornece a interface do usuário (tela, e processamento de entrada e saída). O servidor (back_end) executa as consultas no DBMS e retorna os resultados ao cliente. Apesar de ser uma arquitetura bastante popular, são necessárias soluções sofisticadas de software que possibilitem: o tratamento de transações, as confirmações de transações (commits), desfazer transações (rollbacks), linguagens de consultas (stored procedures) e gatilhos
    (triggers). A principal vantagem desta arquitetura é a divisão do processamento entre dois sistemas, o que reduz o tráfego de dados na rede.

    FONTE: https://goo.gl/bgw3b4

  • Não entendi...

  • @George, se todo processamento fosse no lado do cliente, o backend teria que retornar todos os dados para ele sem processar nada.

    Com a divisão, o backend processa os dados para retornar só o necessário, reduzindo o tráfego na rede. Já o cliente, como o enunciado já fala, cuidado da "tela, e processamento de entrada e saída".


ID
2113960
Banca
Colégio Pedro II
Órgão
Colégio Pedro II
Ano
2016
Provas
Disciplina
Banco de Dados
Assuntos

Em um sistema gerenciador de bancos de dados, normalmente é possível criar gatilhos (triggers), cujo disparo pode ocorrer em decorrência da

Alternativas
Comentários
  • Triggers em Oracle:

     

    1º Passo: O que são Triggers?

    Triggers são códigos de PL/SQL armazenados dentro do banco de dados, onde podemos definir um "bloco" PL/SQL para que seja executado automaticamente pelo banco, assim toda vez que uma instrução SQL ( evento DML ) for aplicada para uma tabela específica ele irá executar um determinado evento automaticamente.

     

    2º Passo: Para que serve uma Trigger?

    Uma Trigger dentro do seu banco será de uma utilidade enorme, imaginem que temos um banco de dados com 1.500,000 de registros, onde os funcionários da empresa ganham por hora, e você tem que atualizar o banco de horas de cada funcionário por dia, alguns comandos poderiam fazer isso por nós, mas seria um pouco complicado e desgastante, então, por este motivo, criamos nossas Triggers, onde definimos o que deve ser mudado na tabela num único arquivo e depois acionamos um único comando DML (Update) para ele, assim, ele irá atualizar os 1.500,000 de registros de uma única só vez.

     

    3º Passo: Implementação da Trigger dentro do banco.

    Devemos tomar algumas precauções sobre a implementação das Triggers dentro do banco, fique atento para estes tópicos :

    - Use triggers para garantir a execução de comandos para uma tabela específica;

    - Não fique criando triggers que duplique regras já definidas em CONSTRAINTS do banco;

    - O Oracle recomenda que limitamos os nossos códigos no máximo em 60 linhas, caso você tenha que criar algo mais complexo crie stored procedure, será mais utíl;

    ATENÇÃO: Cuidado ao criar as Triggers que disparem sob uma instrução UPDATE na sua Tabela, não pode alterar a tabela porque isso iria disparar a Triggers mais de N vezes no sistema, e a memória do equipamento não iria agüentar ocasionandos bugs de memória e resultados errôneos.

     

    4º Passo: Pontos fundamentais das Triggers.

    Segurança e Integridade

    Podemos utilizar as Triggers para garantir uma segurança maior no nosso banco, ela tem como tarefa restringir o acesso as tabelas e controlar as atualizações.

    Auditoria

    Como disse anteriormente, as Triggers são executadas automaticamente, assim, podemos utilizá-las para fazer auditoria sobre acesso ao banco de dados.

    Replicação de Dados

    São excelentes para criar uma política de replicação síncrona de uma tabela para outra.

    Integridade

    A partir das Triggers podemos criar controles mais complexos para os relacionamento das tabelas.

    Controle de dados

    Caso uma tabela tenha dados, cujo valor depende de outras tabelas, as Triggers pode atualizar automaticamente a coluna com os valores derivados.

     

    Fonte: http://www.linhadecodigo.com.br/artigo/611/triggers.aspx

  • Gabarito C

    O termo trigger (gatilho em inglês) define uma estrutura do banco de dados que funciona, como o nome sugere, como uma função que é disparada mediante alguma ação. Geralmente essas ações que disparam os triggers são alterações nas tabelas por meio de operações de inserção, exclusão e atualização de dados (insert, delete e update).

    Um gatilho está intimamente relacionado a uma tabela, sempre que uma dessas ações é efetuada sobre essa tabela, é possível dispará-lo para executar alguma tarefa.

    Neste artigo veremos como trabalhar com triggers no SQL Server, através de um exemplo que simula uma situação real, para facilitar o entendimento.

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !


ID
2131918
Banca
CETRO
Órgão
FUNDAÇÃO CASA
Ano
2014
Provas
Disciplina
Banco de Dados
Assuntos

Com relação à otimização em banco de dados, analise as assertivas abaixo.

I. Triggers dificultam a otimização do banco de dados.

II. Na otimização de banco de dados, transformar uma sequência de operações em uma única expressão algébrica será sempre mais eficiente.

III. Na otimização de banco de dados, explorar índices e evitar a localização de referências de páginas otimiza a busca em banco de dados.

É correto o que se afirma em

Alternativas
Comentários
  • Olha, eu discordo. Acho essa banca uma porcaria. 
    Os gatilhos podem ajudar na otimização. (Otimização quer dizer tornar ótimo) 
    Gatilhos podem prejudicar o desempenho, mas garantem consistência.

    Segue texto que esclarece:

    Gatilho ou trigger é um recurso de programação executado sempre que o evento associado ocorrer. Trigger é um tipo especial de procedimento armazenado, que é executado sempre que há uma tentativa de modificar os dados de uma tabela que é protegida por ele.

    É muito utilizada para ajudar a manter a consistência dos dados ou para propagar alterações em um determinado dado de uma tabela para outras. Um bom exemplo é um gatilho criado para controle de quem alterou a tabela, nesse caso, quando a alteração for efetuada, o gatilho é "disparado" e grava em uma tabela de histórico de alteração, o usuário e data/hora da alteração.

  • O mais correto mesmo seria dizer "triggers PODEM dificultar a otimização do banco de dados", mas como II e III estavam muito erradas preferi marcar a A.


ID
2134933
Banca
CESPE / CEBRASPE
Órgão
FUNPRESP-JUD
Ano
2016
Provas
Disciplina
Banco de Dados
Assuntos

Julgue o item subsecutivo, referente às tecnologias de bancos de dados.

Por meio da linguagem PL/SQL, é possível invocar explicitamente um trigger.

Alternativas
Comentários
  • O trigger funciona de forma transparente no banco de dados. Ele é invocado quando o comando definido nele é executado. Essa transparência muitas vezes é utilizada até em questões de auditoria, pois ele é acionado automaticamente.

  • As triggers, que contém PL/SQL, são acionadas automaticamente a partir de um evento que representa uma ação sobre ela.

    Esses eventos estão relacionados a comandos insert, update e delete.

    Uma trigger pode chamar uma stored procedure. Uma stored procedure pode chamar outra stored procedure.

  • NÃO FO*&¨?% CESPE

  • O que me impede através de PL/SQL invocar uma Trigger?

    Eu, hein...

  • Os gatilhos não podem ser invocados explicitamente, como se fossem procedimentos armazenados ou funções. Por definição, essas estruturas são disparadas quando é verificada a ocorrência de um evento específico, definido no momento da criação do gatilho.

  • Por meio da linguagem PL/SQL, é possível invocar explicitamente um trigger.

    Questão errada. Está na documentação oficial da Oracle[1]:

    A trigger is a named PL/SQL unit that is stored in the database and can be invoked repeatedly. Unlike a stored procedure, you can enable and disable a trigger, but you cannot explicitly invoke it. While a trigger is enabled, the database automatically invokes it—that is, the trigger fires—whenever its triggering event occurs. While a trigger is disabled, it does not fire.

    Bora acordar, galera, vamos parar de floodar comentários com base em achismos.

    Fonte:

    [2] https://docs.oracle.com/cd/E11882_01/appdev.112/e25519/triggers.htm#LNPLS2001

  • O gatilho/trigger, ao contrário da função, não é acionado pela invocação do usuário, mas sim a partir de algum evento. Por isso, pode ser usado para procedimentos de auditoria, por exemplo, devido à sua transparência ao usuário do DB.


ID
2135140
Banca
IF-PE
Órgão
IF-PE
Ano
2016
Provas
Disciplina
Banco de Dados
Assuntos

Um dos recursos mais poderosos providos pelos Bancos de Dados Relacionais para garantia de integridade é o uso de triggers. Esse recurso permite que o projetista possa criar restrições de integridade mais adequadas à realidade do negócio que está sendo modelado. Assinale a alternativa que melhor define triggers.

Alternativas
Comentários
  • Triggers ou Gatilhos:

     

    São funções criadas em PostgresSQL para quando uma ação for executada seja feita uma outra ação de resposta com isso se garante consistência no BD. Operações gatilho no PostgresSQL - INSERT, UPDATE e DELETE.

     

    http://titodahora.blogspot.com.br/2016/07/triggers-storege-procedures-functions-e.html

  • Antes de um evento? Fala sério...

  • Como seria disparada antes de um evento?

     

    Marquei D.

  • Evento é o ato de inserir, atualizar ou deletar um registro no banco de dados, correto? Pois bem, um Trigger (tipo especial de Stored Procedure) pode ser executado ANTES ou depois desses eventos. 

    Exemplo: tenho uma regra de negócio que limita o salário do funcionário ao salário de seu supervisor direto, sendo assim, posso criar um Trigger para verificar ANTES de fazer um update no salário de um funcionário se o novo salário dele será menor ou igual ao de seu supervisor.

    Bons estudos!

  • Um trigger é um procedimento que é executado antes e depois de uma ação, e é executado em uma linha de tabela  do banco de dados. Alternativa: C

  • Uma trigger pode ser disparada antes ou depois da ocorrência do evento, bastando inserir tal cláusula.

    Vejamos a sintaxe do SQL Server:

    CREATE TRIGGER nome_trigger ON nome_tabela

    FOR insert/update/delete AS ...

    >>> O FOR indica que o código será disparado antes.

    >>>> Poderia se usar o AFTER no lugar do FOR, e nesse caso o gatilho seria disparado somente após a ação que o gerou.

    >>>> Poderia por fim se usar o INSTEAD OF no lugar do FOR, e nesse caso a ação ocorreria no lugar da ação (Insert/Update/Delete).


ID
2525140
Banca
FCC
Órgão
DPE-RS
Ano
2017
Provas
Disciplina
Banco de Dados
Assuntos

A função básica de um gatilho ou trigger, em um banco de dados relacional, é

Alternativas
Comentários
  • O gabarito é a letra D.

     

    Trigger é um tipo especial de procedimento armazenado, que é executado sempre que há uma tentativa de modificar os dados de uma tabela que é protegida por ele.

  • LETRA D

    Trigger não verifica nada.

    Só executa algum procedimento armazenado, conforme um evento(UPDATE, DELETE, INSERT).

  • Letra D, pois: ...

    Create trigger NOME TIMING OPERAÇÃO

    On TABELA (nome da tabela que o Trigger irá agir)

    for each ROW (age linha por linha)

    DECLARAÇÕES

    Timing: Pode ser "before" ou "after", ou seja, antes ou depois da operação, então muita atenção, pq pode ser um ou outro.

    Operação: Insert, update ou delete (DML)

    Bons estudos EVER!


ID
2536165
Banca
UPENET/IAUPE
Órgão
UPE
Ano
2017
Provas
Disciplina
Banco de Dados
Assuntos

Sobre as estruturas de banco de dados, analise as afirmativas abaixo:


I. Trigger define uma estrutura, que dispara mediante alguma ação, como inserção, exclusão e atualização de dados.

II. Uma trigger não precisa estar associada a uma tabela.

III. Stored Procedure corresponde a um conjunto de comandos em SQL, que podem ser executados de uma só vez, a partir de sua chamada.

IV. Stored Procedure não aceita parâmetros de entrada.


Estão CORRETAS

Alternativas
Comentários
  • Estão apenas incorretas as alternativas :

    II. Uma trigger não precisa estar associada a uma tabela.

    Trigger precisa estar associada a uma tabela.

     

     

     

    IV. Stored Procedure não aceita parâmetros de entrada.

    Como assim não aceita parâmetros?

     

     

     

    Gab letra B

     

     

     

    https://www.youtube.com/channel/UCBY27FNGgRpPa-PgFubwjPQ

  • Descordo do item II estar errado. Uma trigger pode estar associado a uma visão e não necessariamente a uma tabela.

  • Ano: 2017 Órgão: UPE Prova: Analista de Sistemas - Banco de Dados Sobre as estruturas de banco de dados, analise as afirmativas abaixo:

    I. Trigger define uma estrutura, que dispara mediante alguma ação, como inserção, exclusão e atualização de dados.

    II. Uma trigger não precisa estar associada a uma tabela.

    III. Stored Procedure corresponde a um conjunto de comandos em SQL, que podem ser executados de uma só vez, a partir de sua chamada.

    IV. Stored Procedure não aceita parâmetros de entrada.

    Estão CORRETAS

    a) I e II.

    b) I e III.

    c) I e IV

    d) II e IV.

    e) II e III.

    Gabarito Letra B

    Porém, não concordo com esta assertiva "II. Uma trigger não precisa estar associada a uma tabela." esteja errada. "O gatilho pode ser aplicado a apenas uma tabela ou visão."

  • III. Stored Procedure corresponde a um conjunto de comandos em SQL, que podem ser executados de uma só vez, a partir de sua chamada. [CORRETA]

    Errei pois li sem a preposição "de"