SóProvas


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

Acerca de administração de sistemas de informação, julgue os
próximos itens.

Considerando que o comando SQL a seguir tenha sido executado com êxito no MySQL 5, é correto afirmar que, na sua criação, foi utilizado um comando DDL e que, na inserção de um registro na tabela1, serão executados dois comandos: um DML e outro DCL.

CREATE TRIGGER tgteste BEFORE INSERT ON
tabela1 FOR EACH ROW BEGIN UPDATE tabela2
SET cmp_dataacesso = CURDATE();
END;

Alternativas
Comentários
  •  reposta errada.

     

    Linguagem de definição de dados: ou DDL, de Data Definition Language, é um conjunto de comandos dentro da SQL usada para a definição das estruturas de dados. Entre os principais comandos DDL estão CREATE (Criar), DROP (deletar) e ALTER (alterar).

     

    Linguagem de manipulação de dados: ou DML, de Data Manipulation Language, é o grupo de comandos dentro da linguagem SQL utilizado para a recuperação, inclusão, remoção e modificação de informações em bancos de dados. Os principais comandos DML são SELECT (Seleção de Dados), INSERT (Inserção de Dados), UPDATE (Atualização de Dados) e DELETE (Exclusão de Dados).

     

    Linguagem de controle de dados: ou DCL - Data Control Language - é o grupo de comandos que permite o administrador de banco de dados controlar o acesso aos dados deste banco.
    GRANT: Permite dar permissões a um ou mais usuários e determinar as regras para tarefas determinadas;
    REVOKE: Revoga permissões dadas por um GRANT.

  • O comando SQL da questão apresenta uma função Trigger. Consoante  Elmasri e NAVATHE,funções  triggers só podem ser chamadas quando da utilização de comandos de modificação INSERT, UPDATE e DELETE ( select não, pois não altera a tabela). No entanto, não podemos utilizar triggers com 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.

    Neste sentido, o comando DCL não pode ser executado  já que só é utilizado na presença de GRANT e REVOKE, o que torna a questão ERRADA.

  • A questão está errada unicamente porque não existe comando DCL (Grant ou Revoke) no  que foi apresntado, portanto, o mérito se o grant ou revoke poderia ou não ser usado no trigger não cabe aqui, uma vez que a questão já pressupôs que os comandos SQL foram executados com sucesso.
  • Senhores, cuidado com essa historia maluca e errada de que os triggers so podem ser invocados via comandos DML.

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

    [ ]s