SóProvas


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