Pular para o conteúdo principal

Questão de Banco de Dados — SQL — Avança SP 2025

Banco de DadosSQL
Código
qg421209
Banca
Avança SP
Órgão
Prefeitura de Morungaba - SP
Ano
2025
Nível
Médio
Cargo
Técnico em Informática
Relacione cada tipo de transação disponível no SQL Server às suas características correspondentes.I) Transações explícitasII) Transações implícitasIII) Transações de escopo de lotea) Cada transação é iniciada com a instrução BEGIN TRANSACTION e finalizada somente com uma instrução COMMIT ou ROLLBACK.b) Aplicável apenas a MARS. A transação que não é confirmada ou revertida quando um lote é concluído, será revertida automaticamente pelo SQL Server.c) Uma transação nova é iniciada quando a transação anterior for concluída, mas cada transação é somente concluída com uma instrução COMMIT ou ROLLBACK.
  1. AI - a; II - b; III - c.
  2. BI - a; II - c; III - b.
  3. CI - c; II - b; III - a.
  4. DI - c; II - a; III - b.
  5. EI - b; II - a; III - c.
Revelar gabarito e comentário

GabaritoB — I - a; II - c; III - b.

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

Transações no SQL Server: explícitas, implícitas e de escopo de lote

Gabarito: letra B. A transação explícita é delimitada por BEGIN TRANSACTION e encerrada por COMMIT ou ROLLBACK (característica a); a implícita inicia uma nova transação automaticamente quando a anterior termina, mas exige COMMIT/ROLLBACK explícitos (característica c); e a de escopo de lote, aplicável apenas ao MARS (Multiple Active Result Sets), é revertida automaticamente se o lote terminar sem confirmação (característica b). A correlação correta é, portanto, I-a; II-c; III-b.

Uma transação é uma unidade lógica de trabalho que agrupa operações sobre o banco de dados, tratadas como um bloco único e indivisível — ou seja, ou todas as operações são efetivadas, ou nenhuma delas é. Essa é a propriedade da atomicidade, garantida pelos comandos COMMIT (confirma e torna permanentes as alterações) e ROLLBACK (desfaz as alterações, retornando o banco ao estado anterior). O SQL Server, como a maioria dos SGBDs relacionais, oferece diferentes modos de gerenciar essas transações, e é exatamente essa distinção que a questão explora.

A transação explícita é a forma mais tradicional e controlada: o programador delimita claramente o início com BEGIN TRANSACTION (ou BEGIN TRAN) e o fim com COMMIT ou ROLLBACK. Nenhuma instrução entre esses marcos é efetivada definitivamente até que um desses comandos de encerramento seja executado. É o modelo que dá ao desenvolvedor o controle total sobre o escopo da unidade de trabalho.

A transação implícita opera de forma diferente: quando a opção IMPLICIT_TRANSACTIONS está ativada, o SQL Server inicia automaticamente uma transação antes de cada instrução de manipulação de dados (como INSERT, UPDATE, DELETE). No entanto, a transação não é concluída automaticamente — o programador ainda precisa executar COMMIT ou ROLLBACK para finalizá-la. Quando uma transação é concluída, a próxima instrução DML inicia uma nova transação automaticamente. É um meio-termo entre o controle total (explícita) e a automação total (autocommit).

A transação de escopo de lote é um conceito específico do SQL Server, relacionado ao MARS (Multiple Active Result Sets). Com MARS habilitado, é possível ter múltiplos resultados ativos na mesma conexão. Nesse contexto, uma transação iniciada dentro de um lote (batch) que não seja confirmada ou revertida até o fim do lote é automaticamente revertida pelo SQL Server. Isso difere das outras duas, pois aqui o encerramento é automático, sem exigir um COMMIT ou ROLLBACK explícito do programador.

A pegadinha da banca está em inverter as características b e c: a transação implícita não é revertida automaticamente ao final do lote — ela exige COMMIT/ROLLBACK explícitos, assim como a explícita. A reversão automática é exclusiva da transação de escopo de lote, que só se aplica ao MARS. Guarde essa fronteira: implícita = inicia sozinha, mas termina com comando explícito; escopo de lote = inicia e termina automaticamente com o lote.

Tipo de transação

Início

Término

Aplicável a

Explícita

BEGIN TRANSACTION

COMMIT/ROLLBACK explícitos

Geral

Implícita

Automático (após a anterior)

COMMIT/ROLLBACK explícitos

Geral

Escopo de lote

Automático (com o lote)

Reversão automática ao fim do lote

Apenas MARS

Alternativa A — ❌ Incorreta

Correlaciona II com b (escopo de lote) e III com c (implícita), invertendo as duas. A característica b (reversão automática ao fim do lote, aplicável ao MARS) pertence à transação de escopo de lote (III), e a característica c (nova transação iniciada quando a anterior termina, mas com COMMIT/ROLLBACK explícitos) pertence à transação implícita (II).

Alternativa B — ✅ Correta ⟵ GABARITO

Correlaciona corretamente: I (explícita) com a — iniciada por BEGIN TRANSACTION e finalizada por COMMIT/ROLLBACK; II (implícita) com c — nova transação iniciada quando a anterior é concluída, mas cada uma exige COMMIT/ROLLBACK explícitos; III (escopo de lote) com b — aplicável apenas ao MARS, com reversão automática se o lote terminar sem confirmação.

Alternativa C — ❌ Incorreta

Correlaciona I com c (implícita) e III com a (explícita). A transação explícita é delimitada por BEGIN TRANSACTION e COMMIT/ROLLBACK (característica a), não pela característica c, que descreve o comportamento da transação implícita.

Alternativa D — ❌ Incorreta

Correlaciona I com c (implícita) e II com a (explícita). A transação explícita é delimitada por BEGIN TRANSACTION e COMMIT/ROLLBACK (característica a), e a transação implícita é descrita pela característica c — a correlação está invertida.

Alternativa E — ❌ Incorreta

Correlaciona I com b (escopo de lote) e II com a (explícita). A transação explícita é delimitada por BEGIN TRANSACTION e COMMIT/ROLLBACK (característica a), e a característica b (reversão automática ao fim do lote, MARS) pertence à transação de escopo de lote (III).

NÃO CAIA NESSA!

Para fixar, monte o quadro mental: explícita = controle total (você inicia e termina); implícita = inicia sozinha, mas você termina; escopo de lote = o lote inicia e termina por você (reversão automática, só com MARS). Na prova, a banca adora trocar as duas últimas — lembre-se de que a implícita nunca é revertida automaticamente; ela exige COMMIT/ROLLBACK explícitos.

Gabarito: letra B

Link permanente: /questoes/qg421209