Pular para o conteúdo principal

Questão de Banco de Dados — Sublinguagens SQL (DDL, DML, DQL, DCL e DTL) — CESPE / CEBRASPE 2024

Banco de DadosSublinguagens SQL (DDL, DML, DQL, DCL e DTL)
Código
ce403656
Banca
CESPE / CEBRASPE
Órgão
SEBRAE
Ano
2024
Cargo
Ana Tec II ( )
Nos bancos de dados SQL Servers, os gatilhos DDL são disparados nos eventos de
  1. ADENY, GRANT e UPDATE.
  2. BDENY, GRANT e REVOKE.
  3. CDELETE, DENY e REVOKE.
  4. DDENY, GRANT e INSERT.
Revelar gabarito e comentário

GabaritoB — DENY, GRANT e REVOKE.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

SQL Server – Gatilhos DDL e eventos de disparo

Gabarito: letra B. No SQL Server, os gatilhos DDL (Data Definition Language) são disparados em resposta a eventos de linguagem de definição de dados, como CREATE, ALTER e DROP. A alternativa B (DENY, GRANT e REVOKE) está correta porque esses três comandos são eventos DDL no SQL Server, pois alteram a estrutura de permissões do banco de dados, e não apenas os dados. A pegadinha da questão está em associar os comandos de controle de acesso (DCL) apenas à sublinguagem DCL, esquecendo que, no SQL Server, eles também são considerados eventos DDL para fins de disparo de gatilhos.

Os gatilhos (triggers) são procedimentos armazenados que são executados automaticamente em resposta a eventos específicos. No SQL Server, eles são classificados em duas categorias principais: gatilhos DML (Data Manipulation Language) e gatilhos DDL (Data Definition Language). Os gatilhos DML são disparados por eventos de manipulação de dados, como INSERT, UPDATE e DELETE. Já os gatilhos DDL são disparados por eventos de definição de dados, que incluem comandos como CREATE, ALTER e DROP, além de comandos de controle de permissões como GRANT, DENY e REVOKE.

A distinção entre DML e DDL é fundamental para entender a questão. A DML (Data Manipulation Language) é a sublinguagem do SQL responsável por manipular os dados dentro das tabelas, com comandos como INSERT, UPDATE e DELETE. A DDL (Data Definition Language) é a sublinguagem responsável por definir e modificar a estrutura dos objetos do banco de dados, como tabelas, índices e visões, com comandos como CREATE, ALTER e DROP. No SQL Server, os comandos de controle de acesso (GRANT, DENY e REVOKE) são tratados como eventos DDL, pois alteram a estrutura de permissões do banco de dados, que é um objeto do banco.

Para entender melhor, vamos analisar um exemplo prático. Suponha que um administrador de banco de dados queira criar um gatilho que registre em uma tabela de auditoria sempre que uma permissão for concedida, negada ou revogada. Ele poderia criar um gatilho DDL que dispara em resposta aos eventos GRANT, DENY e REVOKE. Esse gatilho seria executado automaticamente sempre que um desses comandos fosse executado, permitindo o registro da ação. Isso demonstra que, no SQL Server, esses comandos são considerados eventos DDL.

A pegadinha da questão está em confundir a classificação dos comandos. Muitos candidatos associam GRANT, DENY e REVOKE apenas à sublinguagem DCL (Data Control Language), que é responsável pelo controle de acesso aos dados. No entanto, no SQL Server, esses comandos também são considerados eventos DDL, pois alteram a estrutura de permissões do banco de dados. A banca explora essa confusão, apresentando alternativas que misturam comandos DML (como INSERT, UPDATE e DELETE) com comandos DCL, mas a resposta correta é aquela que reconhece que GRANT, DENY e REVOKE são eventos DDL no SQL Server.

Guarde a fronteira entre DML e DDL: a DML manipula dados, enquanto a DDL define a estrutura. No SQL Server, os comandos de controle de acesso (GRANT, DENY e REVOKE) são considerados eventos DDL, pois alteram a estrutura de permissões. É exatamente essa distinção que separa a alternativa correta das demais.

Evento

Classificação no SQL Server

Dispara gatilho DDL?

GRANT

DDL (controle de permissões)

Sim

DENY

DDL (controle de permissões)

Sim

REVOKE

DDL (controle de permissões)

Sim

INSERT

DML (manipulação de dados)

Não

UPDATE

DML (manipulação de dados)

Não

DELETE

DML (manipulação de dados)

Não

1Eventos que disparam
CREATE, ALTER, DROP
GRANT, DENY, REVOKE
2Não disparam
INSERT, UPDATE, DELETE (DML)
3Classificação
DDL define estrutura
DML manipula dados
Gatilhos DDL (SQL Server)
LEVELsoulevel.com.br
Gatilhos DDL (SQL Server): Eventos que disparam (CREATE, ALTER, DROP, GRANT, DENY, REVOKE); Não disparam (INSERT, UPDATE, DELETE (DML)); Classificação (DDL define estrutura, DML manipula dados)

Alternativa A — ❌ Incorreta

A alternativa A inclui o comando UPDATE, que é um comando DML (Data Manipulation Language), responsável por atualizar dados em uma tabela. No SQL Server, gatilhos DDL não são disparados por eventos DML, mas sim por eventos de definição de dados. Portanto, a inclusão de UPDATE torna a alternativa incorreta.

Alternativa B — ✅ Correta ⟵ GABARITO

A alternativa B está correta porque DENY, GRANT e REVOKE são comandos de controle de acesso que, no SQL Server, são considerados eventos DDL. Esses comandos alteram a estrutura de permissões do banco de dados, o que caracteriza uma operação de definição de dados. Portanto, gatilhos DDL são disparados em resposta a esses eventos.

Alternativa C — ❌ Incorreta

A alternativa C inclui o comando DELETE, que é um comando DML (Data Manipulation Language), responsável por excluir dados de uma tabela. No SQL Server, gatilhos DDL não são disparados por eventos DML, mas sim por eventos de definição de dados. Portanto, a inclusão de DELETE torna a alternativa incorreta.

Alternativa D — ❌ Incorreta

A alternativa D inclui o comando INSERT, que é um comando DML (Data Manipulation Language), responsável por inserir dados em uma tabela. No SQL Server, gatilhos DDL não são disparados por eventos DML, mas sim por eventos de definição de dados. Portanto, a inclusão de INSERT torna a alternativa incorreta.

NÃO CAIA NESSA!

A banca explora a confusão entre DML e DDL. Muitos candidatos associam GRANT, DENY e REVOKE apenas à sublinguagem DCL, esquecendo que, no SQL Server, eles também são eventos DDL. As alternativas incorretas incluem comandos DML (INSERT, UPDATE, DELETE) para tentar induzir o candidato ao erro. Lembre-se: no SQL Server, gatilhos DDL são disparados por eventos de definição de dados, que incluem comandos de controle de acesso.

PEGA ESSA DICA!

Para resolver questões sobre gatilhos DDL no SQL Server, lembre-se da classificação dos comandos SQL: DML (INSERT, UPDATE, DELETE) manipula dados; DDL (CREATE, ALTER, DROP, GRANT, DENY, REVOKE) define a estrutura. No SQL Server, os comandos de controle de acesso são considerados eventos DDL. Essa distinção é a chave para acertar questões como esta.

Gabarito: letra B

Link permanente: /questoes/ce403656