Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Aula 04
Banco de Dados p/ Polícia Federal
(Perito - Área 3 - Tecnologia da
Informação) - 2020
Autores:
Equipe de TI do Estratégia
Concursos, Thiago Rodrigues
Cavalcanti
Aula 04
27 de Fevereiro de 2020
 
 
 
 
 
Processamento de transações, controle de concorrência e recuperação. ........................... 3 
Introdução ....................................................................................................................................... 3 
O problema ..................................................................................................................................... 4 
O que é uma transação? ................................................................................................................. 4 
Fluxo de uma transação .................................................................................................................. 8 
O Log do sistema ........................................................................................................................... 10 
Ponto de efetivação ...................................................................................................................... 13 
Plano de execução ......................................................................................................................... 14 
Serialidade (Serializability) ............................................................................................................ 16 
Equivalência de planos .................................................................................................................. 18 
Suporte a transação em SQL ......................................................................................................... 20 
Controle de Concorrência ................................................................................................. 23 
A importância do controle de concorrência .................................................................................. 23 
Por que o controle de concorrência? ............................................................................................. 24 
Técnicas de bloqueio ..................................................................................................................... 24 
Protocolo de bloqueio em duas fases ............................................................................................ 27 
Protocolo com base em Grafos ..................................................................................................... 31 
Ordenação por Timestamp ............................................................................................................ 32 
Recuperação após falha .................................................................................................... 35 
Classificação das falhas ................................................................................................................. 35 
Estrutura de armazenamento ....................................................................................................... 36 
O uso dos arquivos de log ............................................................................................................. 37 
Modificações adiadas e imediatas ................................................................................................ 38 
Checkpoint .................................................................................................................................... 39 
Paginação Shadow ........................................................................................................................ 42 
Visão geral do algoritmo de Aries ................................................................................................. 43 
Mapas mentais ................................................................................................................. 46 
Mapas ........................................................................................................................................... 46 
Questões Comentadas diversas bancas ............................................................................ 49 
Questões Sem Comentários........................................................................................................... 96 
Gabarito ...................................................................................................................................... 123 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 2 
124 
Considerações Finais ...................................................................................................... 124 
 
 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 3 
124 
PROCESSAMENTO DE TRANSAÇÕES, CONTROLE DE 
CONCORRÊNCIA E RECUPERAÇÃO. 
INTRODUÇÃO 
Nosso assunto agora é transações! Vamos descrever os conceitos necessários aos 
sistemas de processamento de transações. Discutiremos as técnicas de controle de 
concorrência usadas para assegurar a propriedade de não interferência ou isolamento das 
transações executadas concorrentemente. A correta implementação de um mecanismo de 
controle de transações ajuda na proteção e na integridade dos dados. 
Professor, você poderia contextualizar melhor os assuntos previstos para esta aula? Claro 
... vamos observar a figura abaixo: 
 
Figura 1 - Elementos básicos de uma transação. 
As transações são unidades lógicas de trabalho! Elas têm um início em um comando de 
BEGIN TRANSACTION que dá o pontapé inicial em um conjunto de operações que devem 
ser executadas pelo SGBD. Essas operações podem fazer uma ou mais modificações sobre 
os dados. Se ao longo da execução de uma transação algum problema acontecer, o banco 
de dados deve retornar ao mesmo estado que estava no início da transação. As ações de 
desfazer são executadas após o comando de ROLLBACK, que pode ser explícito ou 
implícito. 
Caso todas as operações sejam concluídas com sucesso, o comando de COMMIT de ser 
acionado para que as mudanças sejam efetivadas na base de dados. Levando assim, o 
banco de dados para um novo estado válido. A nossa aula será sobre esses assuntos ... 
conhecer um pouco mais sobre transações e suas características e observar como a 
recuperação após falha pode ser executada. Vamos nessa!!? 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 4 
124 
O PROBLEMA 
Uma transação comercial é uma interação no mundo real, geralmente entre uma empresa 
e uma pessoa ou outra empresa, onde algo é trocado. Por exemplo, uma transação poderia 
envolver a troca de dinheiro por produtos, informações ou serviços. Normalmente, algum 
registro é necessário para gravar o que aconteceu. E muitas vezes, este registro é feito por 
um sistema de computador, para uma melhor escalabilidade, confiabilidade e custo. 
Um sistema de processamento de transações tem que lidar com grandes volumes de forma 
eficiente, evitar erros devido às operações simultâneas, evitar a produção de resultados 
parciais, crescer de forma incremental, evitar a paralisação das operações, “nunca” perder 
registros, oferecer distribuição geográfica, ser personalizável, escalar de forma harmônica, 
e ser fácil de gerir. É uma tarefa difícil, mas possível. 
 
Esta aula descreve como essa tarefa é executada. Explica os princípios subjacentes de 
automatizar as transações comerciais, tanto para as empresas tradicionais quanto para o 
ambiente de comércio eletrônico. Vamos exploraras complexidades de tecnologias 
fundamentais, tais como o uso de logging e bloqueio. 
Mas fique tranquilo! Não queremos pular estágios no seu processo de aprendizado, 
vamos começar então descrevendo os conceitos básicos para podermos evoluirmos de 
forma tranquila pelo conteúdo. 
O QUE É UMA TRANSAÇÃO? 
A primeira coisa que precisamos saber sobre o 
assunto é a definição de transação. De forma mais 
ampla é um programa em execução ou um processo 
que inclui um ou mais acessos ao banco de dados, 
que efetuam leitura ou atualizações de seus 
registros. Pode ser considerada também uma 
unidade lógica e atômica de trabalho que estará 
completa ou não será realizada. 
Perceba que essa definição é leva você a acertar 
questões sobre o assunto ... quer ver? 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 5 
124 
1. CEBRASPE (CESPE) - Analista Judiciário (TJ PA)/Análise de 
Sistema/Suporte/2020 
Um sistema de banco de dados proporciona a empresas o controle centralizado de 
todos os seus dados. O funcionamento do banco de dados baseia-se em unidades 
lógicas de trabalho conhecidas como 
a) entidades. 
b) ocorrências. 
c) registros. 
d) tabelas. 
e) transações. 
Comentário: Perceba que a questão quer saber qual o termo associada a seguinte 
definição: "uma unidade lógica de trabalho". Acabamos de ver que essa é a definição 
de transação. Logo, nossa resposta encontra-se na alternativa E. 
Para viabilizar a execução das transações o Sistema Gerenciador de Banco de Dados 
(SGBD) possui um módulo denominado monitor de processamento de transações ou 
simplesmente gerenciador de transações. Esse módulo é responsável pela execução 
correta das operações presentes em uma transação. É importante perceber que ao executar 
uma transação todas as operações devem ser concluídas ou nenhuma delas deve ser 
efetivada. 
O fato de ser realizada com sucesso (ou não ser realizada) nos leva a uma das 
características usadas para entender o processo de execução das transações: a 
atomicidade. Juntamente com outras propriedades desejáveis, conhecidas pela sigla ACID, 
essas características devem ser percebidas em um sistema de gerenciamento de 
transações: 
 
Atomicidade: representa uma unidade atômica de processamento. Cada 
transação deve ser executada por completo ou não ser executada. Em outras 
palavras, cada operação presente dentro de uma transação deve ser executada 
com sucesso ou nenhuma delas será executada (sofrem rollback e são desfeitas). 
Não deve existir a possibilidade de apenas parte de uma transação ser 
concluída com sucesso. O subsistema de recuperação é responsável pela 
atomicidade. 
 
ACID
TRANSAÇÕES
A
ATOMICIDADE
C
CONSISTÊNCIA
I
ISOLAMENTO
D
DURABILIDADE
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 6 
124 
Consistência: a correta execução de uma transação deve levar o banco de dados 
de um estado consistente para outro estado igualmente consistente. Desta forma, 
conserva-se a consistência interna do banco de dados. Dentro deste contexto, 
todas as restrições de integridade devem ser respeitadas. A obtenção da 
consistência fica a cargo dos programadores ou do módulo de restrições de 
integridade. 
 
Isolamento: as atualizações não devem ser tornadas visíveis para outras 
transações até o commit. Uma transação não deve ter conhecimento sobre a 
execução das demais. Podemos dizer que um conjunto de transações é isolado 
entre si caso o efeito da execução delas concorrentemente seja o mesmo da 
execução de cada uma delas sequencialmente. O subsistema de controle de 
concorrência é responsável pela garantia do isolamento. 
 
Durabilidade: sempre que o banco de dados for modificado e essas mudanças 
forem efetivadas, elas não podem ser perdidas por causa de falhas subsequentes. 
A durabilidade é garantida por meio das cópias de segurança, dos logs de 
transação e do subsistema de recuperação. 
Vejamos duas questões sobre o assunto. Aqui, é bom dizer que você deve fazer um esforço 
para entender bem cada uma dessas propriedades (um segredo: elas desabam em 
provas!!!) 
 
2. Consultor Legislativo (ALEPI)/Tecnologia da Informação/2020 
Para garantir as propriedades ACID de um Sistema Gerenciador de Banco de Dados 
(SGBD) da Assembleia Legislativa do Piauí, um Analista de TI verificou que: 
I. A execução de uma transação deve levar o banco de dados de um estado íntegro a 
um outro estado íntegro; 
II. Os efeitos de uma transação em caso de sucesso (commit) devem persistir no banco 
de dados mesmo em casos de quedas de energia, travamentos ou erros. Garante que 
os dados estarão disponíveis em definitivo. 
Assinale a opção que corresponde CORRETAMENTE aos protocolos I e II, 
respectivamente, as propriedades ACID. 
a) Consistência e Durabilidade. 
b) Consistência e Atomicidade. 
c) Durabilidade e Atomicidade. 
d) Durabilidade e Isolamento. 
e) Isolamento e Atomicidade. 
Comentário: Apenas relembrando os conceitos que vimos acima ... 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 7 
124 
• Atomicidade: Garante que a transação no SGBD será atômica , ou seja, 
indivisível. Aqui é TUDO ou NADA. Ou seja, a transação será executada por 
completo ou não será executada. 
• Consistência: A consistência afirma que uma transação levará um banco de dados 
de um estado consistente para outro. (essa é a definição do ITEM I). 
• Isolamento: Garante que cada transação é executada de forma isolada. Dessa 
forma, uma transação que ainda não foi concluída não irá afetar a execução de 
outra transação que esteja ocorrendo. 
• Durabilidade: Os dados permanecem registrados no SGBD depois do COMMIT 
independente de falha ou erro, são persistentes ou permanentes. (essa definição 
está associada ao ITEM II. 
Assim temos a nossa resposta na alternativa A. 
Gabarito: A. 
3. Técnico (UEPA)/Informática/2020 
As propriedades de transações impostas pelos métodos de controle de concorrência e 
recuperação do Sistema de Gerenciamento de Banco de Dados (SGBD) são 
a) atomicidade, preservação da consistência, isolamento e durabilidade. 
b) atomicidade, preservação da concorrência, rastreamento e durabilidade. 
c) granularidade, preservação da consistência, rastreamento e durabilidade. 
d) granularidade, preservação da concorrência, isolamento e durabilidade. 
Comentário: Perceba que essa questão cobra apenas a lista das propriedades de uma 
transação, quais sejam: ATOMICIDADE, CONSISTÊNCIA, ISOLAMENTO e 
DURABILIDADE. Perceba que essa lista de propriedades continua sendo bastante 
cobrada. 
Gabarito: A. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 8 
124 
FLUXO DE UMA TRANSAÇÃO 
Depois de entendermos o conceito 
básico, passaremos agora para analisar 
o seu fluxo ou processo. Esse fluxo, que 
descreve as ações presentes na 
execução, possui alguns estados e 
mudanças de um estado para outro 
acontece por meio de uma operação. 
Observe a figura abaixo, as elipses 
representam os estados, as palavras ao 
lado de cada seta tratam das 
operações, que podem ou não resultar 
em uma mudança de estado. 
 
 
 
 
 
 
 
 
 
 
Analisando a máquina de estados da figura acima, observe que operação de Begin 
Transaction inicia a execução da transação, levando a mesma para o estado ATIVO. Em 
seguida, são executadas as operações de Read/Write, ou seja, operações de leituraou 
escrita de itens no banco de dados, que são executadas como parte da transação. Essas 
operações fazem acesso ao banco. Após a execução de todos os comandos sobre o banco 
uma operação de End Transaction especifica que as operações terminaram, marca o limite 
final da transação e leva a transação para o estado PARCIALMENTE EFETIVADA. 
Nesta etapa todas as mudanças feitas pela operação estão devidamente gravadas no log, 
porém, em alguns casos, os dados ainda não estão efetivamente armazenados no banco 
de dados. A grande questão aqui é: de posse do arquivo de log podemos fazer uma 
recuperação do banco de dados caso o comando de efetivar (COMMIT) seja executado com 
erro ou uma falha aconteça durante está operação! 
A operação de COMMIT leva a transação para o estado de EFETIVADA. O Commit 
Transaction sinaliza a finalização com sucesso de uma transação, de modo que qualquer 
atualização executada pela transação possa ser efetivada no banco de dados. 
Figura 2 - Estados e operações de uma transação. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 9 
124 
Até aqui vimos o caminho feliz, outra possibilidade é a ocorrência de um problema durante 
a execução da transação, neste caso, a operação de Rollback ou Abort é executada, 
sinaliza que a transação terminou sem sucesso e o que foi executado ou modificado deve 
ser desfeito. Essas ações de desfazer são feitas no estado de FALHA. 
Após essa rápida descrição textual, faremos abaixo um resumo para fixarmos os estados 
de uma transação: 
• Ativa: poderá emitir operações de read e write. 
 
• Parcialmente efetivada: alguns protocolos de restauração precisam garantir 
que uma falha de sistema não impossibilite a gravação permanente dos 
dados. Uma possibilidade é a gravação das alterações nos logs. Nesta etapa 
são feitas algumas verificações para garantir a continuação da execução. 
 
• Efetivada (committed state): uma vez atendida todas as verificações da 
etapa anterior, é possível executar o commit que se encarregar de gravar os 
dados em um armazenamento não volátil. 
 
• Falha: se uma das verificações falhar ou se a transação for interrompida em 
seu estado ativo. A transação deverá ser revertida para desfazer os efeitos 
das operações de write já efetivadas no banco de dados. 
 
• Encerrada: Quando a transação deixa o sistema. 
Vamos agora fazer uma questão para fixarmos o assunto visto até aqui. 
 
4. Técnico (UEPA)/Informática/2020 
Considerando conceitos de processamento de transações em bancos de dados, 
analise as afirmativas a seguir. 
I. Uma transação é um programa em execução que forma uma unidade lógica de 
processamento de banco de dados que inclui uma ou mais operações de acesso, como 
operações de inserção, exclusão, modificação ou recuperação. 
II. Para especificar os limites de uma transação são utilizadas as operações explícitas 
BEGIN_TRANSACTION e WRITE_TRANSACTION em um programa de aplicação. 
III. A operação COMMIT_TRANSACTION executa as mudanças realizadas pela 
transação de modo que elas podem ser desfeitas posteriormente. 
Considerando V como afirmativa verdadeira e F como falsa, a sequência que expressa 
corretamente o julgamento das afirmativas é 
a) I - V; II - V; III - F. 
b) I - F; II - V; III - V. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 10 
124 
c) I - V; II - F; III - V. 
d) I - V; II - F; III - F. 
Comentário: Vamos analisar cada uma das afirmativas: 
I. Certa. A afirmativa trouxe a definição correta de uma transação. Em outras palavras: 
uma transação é uma unidade de trabalho que contém um bloco de operações. Essas 
operações podem inserir, remover, modificar ou até mesmo buscar dados nas tabelas. 
Ao final da transação, é possível confirmar as alterações realizadas (através do 
comando COMMIT_TRANSACTION) ou descartar as alterações (comando 
ROLLBACK_TRANSACTION). 
II. Errada. Para especificar os limites de uma transação são usados dois comandos 
explícitos: BEGIN_TRANSACTION e END_TRANSACTION, que marcam o início e o 
fim de uma transação, respectivamente. 
III. Errada. O comando COMMIT_TRANSACTION confirma as operações realizadas 
pela transação, de forma que elas ficam registradas permanentemente no banco de 
dados. Não é possível desfazê-las através de um ROLLBACK_TRANSACTION. 
Assim, chegamos à sequência V - F - F, o que nos leva resposta na alternativa D. 
Gabarito: D. 
O LOG DO SISTEMA 
Já entendemos que o fluxo da transação pressupõe 
mecanismos de segurança para garantir a atomicidade e a 
durabilidade das operações nele contidas. Um desses 
mecanismos é o uso do log de transações. Utilizado para 
permitir recuperação de falhas de transações. Também 
chamado de Journal ele registra todas as operações que 
afetam valores de itens do banco de dados. O log fica 
devidamente armazenado em disco e, periodicamente, pode 
sofrer backup em fita ou outro dispositivo de armazenamento 
secundário ou terciário. 
O log não será afetado por nenhum tipo de falha, exceto 
falhas de disco ou catastrófica. A ideia é armazenar as operações executas pela 
transação. Podemos, por exemplo, durante uma falha desfazer as operações, por meio dos 
registros nos arquivos de log, das transações que não foram efetivadas. Outra utilização 
das informações contidas no log seria para efetivar na base de dados as transações que 
tenham a operação de commit ou efetivação devidamente registrada no log utilizando a 
operação de refazer. 
Os registros no log também são conhecidos como entradas. O perfil ou os dados 
armazenados em cada uma dessas entradas vão depender do tipo de uso que se pretende 
dar ao log. Se estamos tratando de um log de redo ou de recuperação precisamos 
armazenar apenas dados sobre a transação, a operação, o item de dados e seus valores, 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 11 
124 
antigo e novo. Veja que o log de redo está preocupado apenas com a reconstrução do banco 
de dados após uma falha. 
É importante abrir um parêntese aqui antes de continuarmos. 
Existe um conceito importante que permeia o uso do log que é o rollback em 
cascata. Nele, caso uma transação T1 tenha lido um dado escrito ou modificado 
por outra transação T2 e a transação T2 sofra rollback, a transação T1 também 
sofrerá. Vejam que nestes casos é importante armazenar no log os registros de 
leitura. 
Existem protocolos para controle de transações que evitam reversões em cascata – os 
quais compreendem quase todos os protocolos práticos – eles não exigem que as 
operações de READ sejam escritas no log do sistema. Entretanto, se o log também for 
usado para outros fins, como auditoria, então esse tipo de entrada deverá ser incluído no 
log. Os logs de auditoria armazenam outros dados como o usuário que efetuou a operação. 
Isso faz diferença se você quiser saber quem teve acesso aos registros na base de dados. 
Um caso interessante de log de auditoria aconteceu recentemente, o supremo 
solicitou acesso ao banco de dados de uma investigação do COAF. Como não é 
possível negar informação a justiça, foi passada uma senha que acessava um 
banco de dados de consulta (acesso apenas de leitura). É lógico que o ministro 
entendeu que qualquer busca ou acesso aos dados ficaria registrada. Então, uma 
busca por uma pessoa específica poderia levantar alguma suspeita. Acho que o 
banco acabou não sendo utilizado. 
Vamos voltar para os logs de transação e para os conceitos teóricos que nos interessam 
neste momento. É importante salientar que os SGBDs possuemvárias outras informações 
em seus arquivos de log de transação, mas vamos facilitar sua vida e a nossa em prol do 
aprendizado e dos assuntos relevantes para concursos. Vejamos uma lista simplificada de 
possíveis entradas no arquivo de log: 
• [start_transaction, T] 
• [write_item, T, X, old-value, new-value] 
• [read_item, T, X] 
• [commit, T] 
• [abort, T] 
As entradas acima representam as operações que as transações podem sofrer ao longo da 
sua execução. Quando uma transação (T1) começa a ser executada, um registro contendo 
“[start_transaction, T1]” será armazenado no arquivo de log de redo. 
Utilizando as informações contidas no arquivo de log podemos executar algumas operações 
sobre o banco de dados. A operação de UNDO ou desfazer, que é similar ao Rollback, mas 
aplicada a uma única operação. E a operação de REDO ou refazer que especifica que certas 
operações de uma transação devem ser refeitas para garantir que todas as operações de 
uma transação efetivada (commited) foram aplicadas com sucesso ao banco de dados. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 12 
124 
Ambas as transações são consideradas 
idempotentes, ou seja, se aplicadas várias vezes 
produzem o mesmo efeito de serem executadas 
apenas uma vez. O exemplo do UNDO é bem claro 
neste ponto, se quisermos atribuir um novo valor a 
coluna salário de um determinado funcionário. O 
funcionário receberá 20 mil reais ao invés de 10 mil. 
Contudo, durante a execução da transação que faria a 
alteração, ocorreu uma falha no sistema de banco de 
dados. Vamos então voltar o salário do funcionário 
para seu valor antigo, ou seja, 10 mil. Não importa se 
o valor atual seja igual ao valor final proposto pela 
transação, ao aplicarmos a operação de UNDO várias vezes seguidas teremos como 
resultado o valor antigo. 
A outra situação é o commit da transação ter sido incluído no arquivo de log, mas a mudança 
de salário de 10 para 20 mil não tenha sido efetivada. Neste caso, temos que reaplicar a 
operação sobre base de dados. Mais uma vez, não importa quantas vezes efetuarmos a 
operação de REDO para ajustar o salário, sempre chegaremos ao mesmo valor de 20 mil. 
Isso é a característica denominada idempotência! 
Vejamos mais uma questão sobre transações: 
 
5. Ano: 2012 Orgão: EBSERH Cargo: Analista de TI – Banco de dados Q. 39 
Em relação aos conceitos de transações, assinale a alternativa correta. 
(A) Uma transação é considerada como terminada, somente se tiver sido confirmada 
(commit). 
(B) As transações acessam os dados, usando duas operações: read e write. 
(C) Quando uma transação tiver sido confirmada (commit), podemos desfazer seus 
efeitos, abortando-a. 
(D) A propriedade ATOMICIDADE diz que depois que uma transação for completada 
com sucesso, as mudanças persistem, ou seja, são atômicas. 
(E) A propriedade ISOLAMENTO diz que a execução de uma transação isolada, 
preserva a consistência do banco de dados. 
Comentários: Vamos analisar cada uma das alternativas acima. 
Vimos que a máquina de estados de uma transação pode chegar ao estado final pelo 
caminho feliz, onde todas as operações são executadas com sucesso e a transação 
pode ser efetivada. Contudo, caso a transação falhe por algum motivo, é possível que 
a operação de rollback seja executada, levando ao término da transação sem a 
execução do commit. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 13 
124 
De forma simples, como observamos na máquina de estado de uma transação, os 
dados são acessados por meio de operações de leitura ou escrita. Sendo assim, a 
alternativa B é a nossa resposta. 
Após uma transação ter sido confirmada não é possível desfazer seus efeitos por meio 
de operações de rollback. Existe uma forma de restaurar o seu banco e dados para um 
determinado momento do tempo, mas isso é feito por meio dos arquivos de backup e 
usando os dados armazenados nos arquivos de log. 
A definição presente na alternativa D confunde a característica de DURABILIDADE 
com ATOMICIDADE. 
A alternativa E apresenta o conceito de CONSISTÊNCIA misturado com o de 
ISOLAMENTO. 
Gabarito: B 
PONTO DE EFETIVAÇÃO 
 
Uma transação T alcança seu ponto de efetivação (commit point) quando: 
1. Todas as suas operações que acessam o banco de dados foram 
executadas com sucesso e; 
2. O efeito de todas elas estiverem gravadas no log. 
Após o ponto de efetivação, a transação é dita efetivada e seu efeito será gravado de modo 
permanente no banco de dados. 
Se tivermos uma falha, todo registro de transação com [start transaction, T] e sem [commit, 
T] deve ser revertido. Contudo, se tivermos o registro de [commit, T] a efetivação deve ser 
garantida. O registro do commit no log caracteriza o ponto de efetivação, nele todas as 
operações que acessam o banco de dados foram executadas com sucesso e o efeito de 
todas as operações da transação já foi gravado no log. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 14 
124 
Outro conceito relevante é o checkpoint. Escritos no log 
periodicamente quando o sistema grava no disco todas as 
operações de escrita de transações efetivadas. O gerenciamento 
de recuperação do SGBD deve decidir quais os intervalos em que 
devem ocorrer checkpoints. Geralmente as opções são definir uma 
unidade de tempo ou um número de transações efetivadas após o 
último checkpoint. 
Quando o SGBD realiza a operação de checkpoint ele basicamente: suspende 
temporariamente a execução de transações, força a escrita de todas as operações de 
modificação das transações efetivadas do buffer de memória no disco, escreve um registro 
[checkpoint] no log, força a escrita do log no disco e finalmente volta à execução das 
transações. 
O registro de checkpoint pode conter algumas informações adicionais como a lista dos 
identificadores das transações ativas e os endereços do primeiro e do último registro no log, 
para cada uma das transações. 
PLANO DE EXECUÇÃO 
A ordem de execução das operações de transações distintas 
executando concorrentemente de forma intercalada é conhecida 
como plano de execução ou escalonamento. Um 
escalonamento S de ‘n’ transações T1, T2, ..., Tn é um 
ordenamento das operações dessas transações, sujeito à 
restrição de que para cada transação Ti em S, as operações de Ti 
em S devem aparecer na mesma ordem que ocorrem em Ti. Ou 
seja, de uma forma mais simples: a ordem das operações da 
transação deve ser respeita no escalonamento. 
Observe, entretanto, que operações de duas transações Tj e Tk poderão ser intercaladas 
com operações de Ti em S. Agora vamos entender o que deve aparecer na descrição de 
um plano de execução. O plano deve nos ajudar a entender se existe uma restrição de 
controle de concorrência, por exemplo, se o isolamento é respeitado. 
Para fins de restauração e controle de concorrência estamos interessados principalmente 
nas operações de: ler_item(r) e escrever_item(w), commit(c) e abort(a). Principalmente 
queremos entender os acontecimentos quando operações de diferentes transações entram 
em conflito. 
Duas operações são ditas em conflito se elas satisfazem todas as três condições 
seguintes: 
1. Pertencerem a transações diferentes 
2. Acessarem o mesmo item X 
3. Pelo menos uma das operações sobre o item X ser um escrever_item(X). 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
126511815 
124 
Com base no conhecimento que vimos até aqui podemos definir o conceito de plano 
completo. A ideia é montar uma sequência lógica para todas as transações dentro de um 
determinado plano que faça algumas restrições sobre a execução das operações e seus 
resultados. Um plano S, com n transações T1, T2, ... ,Tn é chamado um plano completo se 
forem garantidas as seguintes condições: 
1. As operações em S são exatamente as operações de T1, T2, ..., Tn, tendo 
um commit ou um abort como última operação de cada transação no 
plano. (condição de encerramento!) 
 
2. Para quaisquer pares de operações da mesma operação Ti, sua ordem 
de aparecimento em S será a mesma de Ti. (condição de ordenação!) 
 
3. Para quaisquer duas operações conflitantes, uma das duas precisa 
aparecer antes da outra no plano. (condição de conflito!) 
A condição três permite que duas operações não conflitantes apareçam no plano sem definir 
qual deva aparecer primeiro, levando assim, à definição de ordenação parcial das 
operações das n transações. Perceba que um plano completo vai simplesmente garantir 
que todas as transações do plano irão terminar e que a ordem das operações de cada 
transação será mantida. Por fim, vai garantir que, se não tivermos conflitos entre as 
transações a intercalação das operações entre as transações não importa para o resultado 
(lembre-se da regra 2, a ordem das operações intra transação deve ser mantida SEMPRE). 
Em alguns planos é fácil a restauração de transações, enquanto em outros, o processo pode 
ser muito complicado. Portanto, é importante caracterizar os tipos de planos nos quais a 
restauração é possível, bem como aqueles para os quais a restauração é relativamente 
simples. Essas caracterizações, na realidade não fornecem um algoritmo de restauração, 
apenas tentam caracterizar teoricamente os diferentes tipos de planos. 
Um plano considerado restaurável é aquele no qual, para cada par de transações Ti e Tj, 
tal que Tj leia itens de dados previamente escritos por Ti, a operação de efetivação de Ti 
apareça antes da operação de efetivação de Tj. Isso vai evitar que Ti sofra rollback depois 
da efetivação de Tj. Lembre-se, o commit é igual a casamento, não tem mais volta depois 
que você assinou o papel, a parada tá sacramentada. Veja a figura a seguir: 
 
No plano restaurável a o 
commit da transação T2 
acontece depois do commit 
da transação T1. 
No plano não restaurável a 
o commit da transação T2 
acontece antes do commit 
da transação T1. 
Isso permite que, no casso 
de falha, a transação T2 
possa ser desfeita por um 
rollback em cascata. 
Isso F#$% a parada toda!! 
Não tem como um banco 
de dados reverter uma 
operação commitada com 
uma operação de rollback. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 16 
124 
Observem a figura acima, supondo que a transação T1 do plano restaurável falhe e que a 
transação T2 ainda não estivesse sido efetivada, teríamos um caso conhecido como 
reversão em cascata. Nele uma transação não efetivada tem de ser revertida porque leu 
um item de outra transação que falhou. 
É importante estabelecer planos livres de reversão em cascata. Uma possível solução é 
fazer com que uma transação somente possa ler os itens que foram gravados por 
transações efetivadas. Isso vai nos levar ao nível de isolamento read commited que 
falaremos mais adiante. 
SERIALIDADE (SERIALIZABILITY) 
Os planos de execução são considerados seriais se as operações de cada transação são 
executadas consecutivamente, sem intercalação das operações de outra transação. 
Apenas uma transação está ativa por vez, isso limita a concorrência ou intercalação de 
transações e são inaceitáveis na prática. Contudo não podemos simplesmente liberar geral, 
e deixar que os planos sejam executados na ordem que bem entenderem. É imposto, 
portanto, uma restrição ao plano, que ele seja serializável. Mas ... que danado é isso? 
O conceito de serialidade de planos é usado para identificar quais planos são corretos 
quando há intercalação das operações das transações na execução dos planos, ou seja, 
as transações não são isoladas. A teoria da seriabilidade é uma das técnicas padrão para 
discutir a corretude de algoritmos de controle de concorrência, tais como o protocolo de 
bloqueio em duas fases e tem uma relação direta com a propriedade de isolamento. 
Um exemplo clássico de uma execução não isolada é um sistema bancário, onde duas 
transações tentam retirar os últimos R$ 100,00 de uma conta com o mesmo saldo. Se 
ambas as transações lerem o saldo da conta antes de qualquer uma delas atualizar, ambas 
irão determinar que há dinheiro suficiente para satisfazer aos pedidos, e ambas vão retirar 
os últimos R$ 100,00. Claramente, isto é o resultado errado. Além disso, não é um resultado 
serializável. Numa execução serial, apenas a primeira operação seria capaz de retirar os 
últimos R$ 100,00. A segunda iria encontrar uma conta vazia. 
Note que o isolamento é diferente de atomicidade. No exemplo, ambas as transações 
executadas por completo, de modo que foram atómicas. No entanto, elas não foram 
devidamente isoladas e, portanto, produziram um comportamento indesejável. 
Se cada transação preserva a consistência, então qualquer execução serial (isto é, 
sequência) de tais transações preserva consistência. Uma vez que cada execução 
serializável é equivalente a uma execução serial, uma execução serializável das transações 
irá preservar a consistência do banco de dados também. É a combinação de consistência 
das transações e do isolamento que garante que, na execução de um conjunto de 
operações, seja preservada a consistência do banco de dados. 
O banco de dados normalmente define bloqueios em dados acessados por cada transação. 
O efeito da configuração dos bloqueios é fazer com que a execução pareça ser em série. 
Na verdade, internamente, o sistema está executando operações em paralelo, mas através 
deste mecanismo de bloqueio do sistema dá a ilusão de que as operações estão executando 
em série, uma após a outra. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 17 
124 
Um equívoco comum é que a serialização não é importante porque o sistema de banco de 
dados irá manter a consistência através da aplicação de restrições de integridade. No 
entanto, há muitas restrições de consistência que os sistemas de banco de dados não 
podem impor. 
Além disso, às vezes os usuários não dizem ao sistema de banco de dados para impor 
certas restrições, porque elas degradam o desempenho. A última linha de defesa, portanto, 
é o mecanismo de controle de concorrência em si que mantem a consistência e garante ao 
sistema uma execução de forma serializável. Agora você entende a diferença entra plano 
serial e serializável ... vejamos uma questão sobre o assunto: 
6. Analista Legislativo (ALEGO)/Segurança da Informação/2019 
Quando transações são executadas concorrentemente, de maneira intercalada, a 
ordem de execução das operações das várias transações é conhecida como plano de 
execução (ou histórico). 
ELMASRI, R.; NAVATHE, S.B. Sistemas de Banco de Dados. Addison-Wesley, 2005. 
O trecho apresentado define um plano (do inglês, schedule) em banco de dados. 
Imagine que, em um plano S, para cada transação T participante, todas as operações 
de T são executadas consecutivamente. Esse plano é chamado de 
a) restrito (do inglês, strict). 
b) serializável (do inglês, serializable). 
c) serial (do inglês, serial). 
d) não restrito (do inglês, nonstrict). 
e) não serial (do inglês, nonserial). 
Comentário: Um plano nada mais é do que a ordem de execução das operações de 
diferentes transações. Quando as operaçõesdas transações do plano são 
executadas sequencialmente (ou seja, uma após a outra de maneira consecutiva) o 
plano é chamado de plano serial. Caso contrário, é um plano não serial. Vamos agora 
analisar as alternativas: 
a) Errada. Um plano restrito é aquele em que as transações não poderão ler nem 
escrever em um item até que a última transação que escreveu nesse item seja 
efetivada ou abortada. 
b) Errada. Um plano S com n transações é dito serializável quando ele é equivalente 
a um plano serial com as mesmas n transações. 
c) Certa. Como dito, esse é o plano em que as transações executam suas atividades 
de forma consecutiva. 
d) Errada. Não existe o plano não restrito na classificação de Navathe. 
e) Errada. Plano não serial é aquele em que as operações das transações são 
executadas de forma intercalada no plano de execução. 
Concluímos, assim, que o gabarito se encontra na alternativa C. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
==134dde==
 
 
 
 
 
 18 
124 
Gabarito: C 
EQUIVALÊNCIA DE PLANOS 
Dois planos são chamados resultado equivalentes se produzirem o mesmo estado final 
do banco de dados. Para dois planos serem equivalentes, as operações aplicadas a cada 
item de dado afetado por eles devem aparecer na mesma ordem em ambos os planos. 
Quando temos operações em conflito precisamos que a ordem de execução destas 
operações seja a mesma nos dois planos de execução, isso nos leva a ideia de 
equivalência de conflito. 
Um plano de execução S com n transações é dito serializável se ele for equivalente a algum 
plano serial com elas n transações. Dizer que um plano S não serial é serializável é o mesmo 
que dizer que ele é correto. 
Outro conceito que trata de equivalência é o da equivalência de visão. A ideia básica da 
equivalência de visão é a de que, enquanto cada operação de leitura de uma transação 
estiver lendo o resultado da mesma operação de gravação em ambos os planos, as 
operações de gravação de cada transação precisam produzir os mesmos resultados. Vejam 
a definição formal abaixo, suponha que Ri é uma operação de leitura e Wj uma operação de 
escrita. 
Diz que dois planos S e S’ são visão equivalente se: 
• O conjunto de transações participantes em S e S’ seja o mesmo e que S e 
S’ contenham as mesmas operações dessas transações. 
 
• Para toda operação Ri(X) de Ti em S, se o valor X lido pela operação tiver 
sido alterado por uma operação Wj(X) de Tj, a mesma condição deverá ser 
garantida para o valor X lido pela operação Ri(X) de Ti em S’. (Toda leitura 
ver o mesmo valor nos dois planos.) 
 
• Se a operação Wk(Y) de Tk for a última operação a gravar o item Y em S, 
então Wk(Y) de Tk também deverá ser a última operação a gravar Y em S’. 
(A última escrita deve ser sempre a mesma.) 
A abordagem adotada na maioria dos SGBDs comerciais é definir protocolos ou um conjunto 
de regras que devem ser seguidos por todas as transações individualmente, ou impostos 
por um subsistema de controle de concorrência do SGBD. Essas regras garantirão a 
serialidade de todos os planos dos quais as transações participam. 
Um exemplo de teste para verificar a existência de conflito serialidade é a utilização do grafo 
de precedência. Nele uma seta será criada caso alguma das operações de T1 apareça no 
plano antes de alguma operação conflitante de T2. Veja a figura abaixo: 
 
 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 19 
124 
 
 
Para a criação do gráfico de precedência devemos observar as operações de cada 
transação que participa do plano de execução e rodar o seguinte algoritmo: 
1. Para cada transação Ti participante do plano S, criar um nó rotulado Ti no 
grafo de precedência. 
2. Para cada caso em S em que Tj executar um ler_item(X) depois que uma 
Ti executar um escrever_item(X), criar uma seta Ti → Tj no grafo de 
precedência. 
3. Para cada caso em S em que Tj executar um escrever_item(X) depois que 
uma Ti executar um ler_item(X), criar uma seta Ti → Tj no grafo de 
precedência. 
4. Para cada caso em S em que Tj executar um escrever_item(X) depois que 
uma Ti executar um escrever_item(X), criar uma seta Ti → Tj no grafo de 
precedência. 
5. O plano S será serializável se, o grafo de precedência não contiver ciclos. 
Vejam a figura a seguir a construção de diferentes planos de execução a partir das mesmas 
transações. Vejam que alguns planos podem ser serializáveis e outros não. 
 
Não serializável 
Serializável 
Serializável 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 20 
124 
SUPORTE A TRANSAÇÃO EM SQL 
Uma transaction é um mecanismo que podemos utilizar para manter a integridade e a 
consistência dos dados. SQL nos ajuda a gerenciar transações. O SQL/ANSI padrão definiu 
transações logo no início da criação do modelo e vem aprimorando o conceito durante 
iterações subsequentes. De acordo com a norma, uma transação é iniciada pelo SGBDR, e 
continua até que uma instrução de COMMIT ou ROLLBACK é emitida. 
Os detalhes foram deixados para o SGBD implementar. Os comandos de gerenciamento 
de transações do SQL padrão estão listados na tabela abaixo: 
Comando Descrição 
START (BEGIN) 
TRANSACTION 
Inicializa uma transação SQL e seta as suas características. 
SET 
TRANSACTION 
Determina as propriedades da próxima transação SQL para o SQL 
Agent. São três os parâmetros: área de diagnóstico, nível de isolamento 
e modos de acesso (read/write). 
SET 
CONSTRAINTS 
Se a transação SQL estiver executando, estabelece o modo de 
restrições para a transação SQL na sessão corrente. Se não existe 
nenhuma transação em andamento na sessão, determina ao SQL Agent 
o modo de execução para a próxima transação. 
SAVEPOINT Estabelece um savepoint, ponto intermediário da transação para o qual 
o rollback deve retornar em caso de falha. 
RELEASE 
SAVEPOINT 
Destrói um savepoint 
COMMIT Termina a transação SQL corrente com um commit 
ROLLBACK Termina a transação corrente com um rollback, ou desfaz todas as 
modificações até o último savepoint. 
O padrão SQL utiliza de forma implícita o START TRANSACTION, com uma instrução de 
COMMIT explícita, nos casos em que todas as unidades lógicas de trabalho de uma 
transação são concluídas com sucesso. Podemos ainda ter a instrução de ROLLBACK 
quando mudanças ainda não efetivadas precisam ser desfeitas devido a alguma exceção 
ou erro. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 21 
124 
As implementações dos SGBDs para controle de transação são um pouco diferentes para 
cada um deles, contundo a análise detalhada destes comandos foge do escopo deste curso. 
Vamos passar agora para uma rápida explicação dos níveis de isolamento de transações. 
Mais detalhes sobre esse assunto serão vistos nas seções específicas sobre controle de 
concorrência e nas aulas de SGBDs específicos (caso algum aparece no seu edital, claro!). 
Quando executamos várias transações de forma concorrente sobre o mesmo banco de 
dados podemos limitar o acesso as informações para impedir que elas sejam vistas por uma 
transação no momento que estão sendo usadas por outra transação. São quatro os níveis 
de isolamento definidos pelo SQL ANSI: READ UNCOMMITED, READ COMMITED, 
REPEATABLE READ e SERIALAZABLE. 
No primeiro caso READ UNCOMMITED é permito que uma transação TY leia dados que 
ainda não sofreram o COMMIT de outratransação TX que ainda está em execução. Isso 
acaba possibilitando a existência do problema de leitura suja ou dirty read. Esse problema 
ocorre se a transação TX sofrer ROLLBACK. Neste caso, qualquer outra transação que tiver 
feito uma consulta sobre o dado modificado por TX terá feito uma leitura suja. 
Para resolver esse problema surge o próximo nível de isolamento conhecido como READ 
COMMITED. Neste caso, uma transação TY só pode ler os dados modificados pela 
transação TX após o COMMIT. Agora, ainda permanecemos com outro problema 
denominado leitura não repetível. Imagine que TY precisa ler os dados modificados por TX 
duas vezes durante sua execução. Na primeira leitura TY ler os dados modificados por TX, 
contudo, antes da segunda leitura, outra transação TZ faz uma nova modificação sobre os 
dados. Veja que TY faz duas leituras sobre o mesmo dado durante a transação e eles 
possuem valores distintos. 
A questão aqui é, uma transação TY consegue ler apenas dados efetivados. Contudo, se 
um determinado item for modificado várias vezes ao longo do tempo por outras transações, 
todas elas devidamente concluídas com sucesso, a transação lerá valores diferentes! O que 
é estranho, dado que ela não fez modificações sobre os dados. Essas leituras repetidas 
com valores diferentes podem ser evitadas. Como? Vamos para o próximo nível de 
isolamento. 
A solução para o problema da leitura não repetível está no REPEATABLE READ. Neste 
caso a transação TY vai ler os mesmos dados, pois não será permito a transação TZ fazer 
modificações sobre eles durante a execução de TY. Agora contamos com um último 
problema, qual seja, a possibilidade da existência de registros fantasmas. Neste caso, TY 
faz duas leituras sobre um conjunto de dados ou tuplas de uma relação que satisfação a 
uma condição descrita na cláusula WHERE. Suponha que entre a primeira e a segunda 
leitura seja inserido um registro que também satisfaz a essa condição de busca. Esse 
registro é considerado um fantasma! 
Para resolver todos esses problemas, temos o último nível de isolamento conhecido como 
SERIALAZABLE. A ideia é executar concorrentemente apenas as transações que 
produzam o mesmo resultado caso fossem executadas em série. A tabela abaixo mostra os 
problemas e os níveis de isolamento possíveis. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 22 
124 
 
Figura 3 - Níveis de isolamento x tipo de violação 
Além do nível de isolamento é possível determinarmos o modo de acesso de uma transação 
que pode ser READ ONLY ou READ WRITE e o tamanho da área de diagnóstico que 
especifica um valor inteiro n, indicando o número de posições que podem ser manipuladas 
simultaneamente na área de diagnóstico. Essas condições fornecem informações sobre as 
condições de execução (erros e exceções), ao usuário ou ao programa, para a maior parte 
das declarações/comandos SQL executados recentemente. 
Para executar uma transação usando SQL podemos utilizar a seguinte sintaxe: 
 
EXEC SQL WHENEVER SQLERROR GOTO UNDO; 
EXEC SQL SET TRANSATION 
 READ WRITE 
 DIAGNOSTIC SIZE 5 
 ISOLATION LEVEL SERIALAZABLE 
EXEC SQL INSERT INTO EMPREGADO (PNOME, UNOME, SSN, DNO, SALARIO) 
VALUES (´Thiago´, ´Cavalcanti´, 000457878, 2, 12000); 
EXEC SQL UPDATE EMPREGADO 
 SET SALARIO = SALARIO *1,1 WHERE DNO =2; 
EXEC COMMIT; 
GOTO THE_END; 
UNDO: EXEC SQL ROLLBACK; 
THE_END: ...; 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 23 
124 
CONTROLE DE CONCORRÊNCIA 
A IMPORTÂNCIA DO CONTROLE DE CONCORRÊNCIA 
De um modo geral, os sistemas de 
aplicação atuais, e, especialmente, aqueles 
que funcionam dentro do ambiente de 
banco de dados, supõe que muitas 
pessoas que utilizam estes sistemas e 
necessitem de acesso simultâneo aos 
dados. Um hardware moderno e sistemas 
de software são certamente capazes de 
suportar essa quantidade de acessos aos 
dados compartilhados. 
Um exemplo muito comum dessa 
capacidade está em reservas de 
passagens aéreas, onde vários 
funcionários diferentes reservam bilhetes, bem como os clientes na Web, todos podem ter 
solicitações simultâneas de assentos no mesmo voo. Outro exemplo é um aplicativo de 
inventário ou estoque de uma indústria em que vários funcionários procuram para atualizar 
simultaneamente o mesmo item no estoque. 
 
Figura 4 - Vários usuários da aplicação podem ter acesso a base de dados de forma controlada. 
Quando o acesso simultâneo envolve apenas a simples recuperação de dados, ou seja, a 
leitura, não há nenhum problema. Mas quando o acesso simultâneo requer a modificação 
de dados, os dois ou mais usuários que tentam atualizar os dados, simultaneamente, têm 
um problema desagradável. Cada transação pode interferir umas nas outras, o que não 
aconteceria se eles estivessem apenas realizando consultas de dados. 
Este é certamente o caso das reservas de passagens aéreas e do exemplo de inventário, 
uma vez que a venda de assentos em voos e a manutenção de itens no estoque exigem 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 24 
124 
que o número de assentos ou os itens de estoque sejam atualizados. Isto é, muitos acessos 
a base de dados envolvem alterações. O resultado pode ser imprecisão nos dados 
armazenados no banco de dados! E isso, é claro, não é desejado! O que fazer? chamar o 
Chapolin Colorado? Não! Chamar o controle de concorrência! Como controlar esse tipo de 
problema é o que veremos agora. 
POR QUE O CONTROLE DE CONCORRÊNCIA? 
De uma forma mais sistemática existem alguns problemas que acontecem quando 
transações simultâneas resolvem fazer alterações sobre o mesmo conjunto de dados. O 
primeiro problema refere-se à atualização perdida. Se uma transação modifica um dado, 
e, antes de concluir, outra transação atualiza o mesmo dado, essa mudança fica perdida no 
tempo e no espaço. Para evitar problemas deste tipo os SGBDs implementam um 
subsistema de controle de concorrência. 
Concorrência é a propriedade de uma transação poder ser executada em paralelo com 
outras transações. Com a execução de várias transações ao mesmo tempo, o processador 
pode ser compartilhado entre elas, melhorando a eficiência global do computador e do 
sistema, dado que uma maior quantidade de trabalho é executada em menos tempo. 
É necessário que o sistema monitorize a interação entre transações concorrentes, de modo 
a evitar que elas destruam a consistência do banco de dados e mantenham o 
isolamento das transações. Para isso fazemos uso de técnicas ou protocolos, por 
exemplo, técnica de bloqueio, timestamp e protocolos baseados em gráficos. Vamos falar 
um pouco sobre cada um deles. 
TÉCNICAS DE BLOQUEIO 
Quando começamos a estudar as técnicas de bloqueio a primeira definição que temos que 
ter em mente está relacionada ao LOCK. Ele é uma variável associada a um item de dados 
no banco de dados que descreve o status desse item com respeito a possíveis operações 
a serem aplicadas sobre o item de dados. Os autores classificam os LOCKs em dois 
principais tipo: LOCK binário e LOCK múltiplo. 
O lock binário possui dois estados de valores possíveis para cada item de dados: locked 
(1) e unlocked (2). Um valor de lock distinto é associado a cada item do banco de dados 
denotado como lock(x) para o item x. As operações incluídas nas transações, lock_item e 
unlock_item, são implementadas como operações indivisíveis. Um gerenciador é mantido 
pelo SGBD para registrar e controlar o acesso a locks. Um registro de lock descrito como 
<nome-do-item, LOCK> é inserido natabela de locks que mantém o controle sobre esses 
registros. 
Para o conjunto de operações algumas regras podem ser aplicadas. Uma transação T tem 
que executar uma operação lock_item(x) antes de qualquer read_item ou write_item ser 
executado por T. Uma transação T tem que executar a operação unlock_item(x) após todos 
os comandos de read/write serem completados em T. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 25 
124 
 
Uma transação não pode executar outra operação lock_item(x) se já tem um lock sobre x. 
Uma transação T, também, não pode executar um unlock_item(x) a menos que tenha um 
lock sobre x. Apenas uma transação pode ter um lock num dado item, seja para efetuar 
operações de leitura ou escrita. Isso é ruim pois o paralelismo de operações de leitura 
não é um problema grave e pode aumentar a capacidade de processamento do SGBD. Para 
resolver esse problema surge o LOCK MÚLTIPLO. 
 
O lock múltiplo apresenta três operações indivisíveis: read_lock(x), write_lock(x) e 
unlock(x). Conhecidos também como bloqueio compartilhado e exclusivo, o read_lock e 
o write_lock, fazem o papel de efetivar bloqueio sobre os itens de dados que participarão 
de uma transação. Um registro do lock pode ser feito com as seguintes informações <nome-
do-item, LOCK, (número-de-leituras)>. Veja que o número de leituras é opcional. 
Da mesma forma que o bloqueio binário, o LOCK MÚLTIPLO também apresenta um 
conjunto de regras. Muitas vezes, elas nos parecem um pouco obvias, mas ajudam a 
compreender o funcionamento. Vamos a elas: 
• Uma transação T tem que executar uma operação read_lock(x) ou 
write_lock(x) antes de qualquer read_item(x) em T. 
• Uma transação T tem que executar uma operação write_lock(x) antes de 
qualquer write_item(x) em T. 
• Uma transação tem que executar uma operação unlock(x) após todas as 
operações read_item(x) e write_item(x) completadas em T. 
 
Até aqui as operações são bem lógicas, para ler precisamos do bloqueio de 
escrita ou leitura, para escrever precisamos de um lock de escrita. E depois de 
usar o item temos que desbloqueá-los. Espero que você tenha entendido isso. 
Vamos em frente ... 
 
• Uma transação T não executará um read_lock(x) se já tem um lock de 
leitura (compartilhado) ou um lock de escrita (exclusivo) sobre x, este item 
precisa ter seu lock relaxado, passando de write para read_lock para a 
execução do read_lock(x) por T. (decremento de lock) 
LOCK BINÁRIO
LOCK UNLOCK
LOCK MÚLTIPLO
READ_LOCK
(COMPARTILHADO)
WRITE_LOCK
(EXCLUSIVO)
UNLOCK
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 26 
124 
• Uma transação T não executará outro write_lock(x) se já tem um lock (write) 
exclusivo ou um lock (read) compartilhado em x, agora podemos 
incrementar o bloqueio se a transação já tiver o lock de leitura e quiser tomar 
para si o lock de escrita. É necessário que se verifique se nenhuma outra 
transação está com o lock de leitura antes de efetuar o incremento de lock 
sobre o item de dados. (incremento de lock) 
• Uma transação T não executará um unlock(x) a menos que já tenha um lock 
compartilhado ou exclusivo em x. 
Resumindo os conceitos de incremento, decremento e bloqueios exclusivos. O incremento 
de lock acontece quando uma transação após ter um read_lock(x) e sendo a única que 
detém x, pode posteriormente executar um write_lock(x) sobre x. O decremento de lock, 
por sua vez, é feito após ter um lock exclusivo sobre um item x, uma transação T pode 
decrementar o lock, executando um read_lock(x). 
Os bloqueios exclusivos levam em consideração se uma transação T possui um bloqueio 
exclusivo em algum objeto, então nenhuma transação distinta T’ pode fazer bloqueio 
daquele objeto até que T libere o seu bloqueio. 
Locks binários ou múltiplos não garantem a serializabilidade de escalonamentos nos 
quais as transações participam. É necessário um protocolo adicional que contempla o 
posicionamento de locks e unlocks em cada transação, conhecidos como protocolo de 
bloqueio. 
Vamos fazer uma questão sobre esse assunto: 
7. Assistente de Informática (CM Tatuí)/2019 
Nos sistemas gerenciadores de bancos de dados, há um módulo de gerenciamento de 
transações, responsável pelo controle dos bloqueios sobre itens de dados. 
Considerando tal gerenciamento, a implementação do tipo de bloqueio que permite a 
uma transação ler e escrever sobre um item de dados consiste no bloqueio do tipo 
a) exclusivo. 
b) individual. 
c) permanente. 
d) intrínseco. 
e) compartilhado. 
Comentário: Existem dois principais tipos de bloqueio que visam resolver o problema 
da concorrência e garantir a integridade dos dados: 
• Bloqueio compartilhado: é utilizado para leitura dos dados. Bloqueios 
compartilhados permitem que mais de uma transação leia o mesmo dado. Se existir 
um bloqueio compartilhado ativo, um bloqueio exclusivo não pode ser obtido, mas 
outras transações podem solicitar bloqueios compartilhados na mesma informação, 
para fins de leitura; 
• Bloqueio exclusivo: é utilizado para escrita dos dados. Bloqueios 
exclusivos permitem que apenas uma única transação leia e 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 27 
124 
modifique um dado. Se existir um bloqueio exclusivo ativo, outras transações não 
podem obter nem um bloqueio compartilhado nem um bloqueio exclusivo no mesmo 
dado. 
A única alternativa que traz o tipo de bloqueio que permite a leitura e escrita de um 
item de dados é a letra A. O bloqueio compartilhado trazido pela letra e) permite apenas 
a leitura do item. As demais alternativas não trazem tipos de bloqueios existentes no 
contexto de banco de dados. Concluímos, assim, que o gabarito é letra A. 
Gabarito: A 
PROTOCOLO DE BLOQUEIO EM DUAS FASES 
O protocolo de bloqueio em duas fases está baseado em duas etapas. A fase de expansão 
onde uma transação pode obter bloqueio, mas não pode liberar nenhum. E a fase de 
encolhimento nela uma transação pode liberar bloqueios, mas não consegue obter nenhum 
bloqueio novo. O ponto que caracteriza o fim da fase de expansão é denominado ponto de 
bloqueio. Veja a figura abaixo: 
Se não usarmos o bloqueio, ou desbloqueio, dos itens de dados, tão logo seja possível, 
após sua leitura ou escrita, poderemos chegar a resultados inconsistentes. Por outro lado, 
se não desbloquearmos um item de dados antes de solicitarmos um bloqueio a outro item 
de dados, o deadlock poderá ocorrer. Os protocolos de bloqueio restringem o número de 
escalas de execução possíveis. 
Existe um conjunto de variações do protocolo visto acima. Além do básico, visto na figura, 
temos os protocolos conservador ou estático, estrito ou severo e rigoroso. O protocolo 
conservador ou estático bloqueia todos os itens que acessará, antes de iniciar a execução 
da transação. 
Ele só bloqueia quando todos os dados estão disponíveis. No protocolo estrito ou severo, 
considerado o mais popular, não se libera os locks de escrita até o commit ou abort. Por fim 
temos o protocolo rigoroso que não libera os locks de escrita e leitura até o commit ou abort, 
e é mais fácil de implementar do que o estrito. Protocolo de bloqueio em duas fases rigoroso, 
que exige que todos os bloqueios sejam mantidos até que a transação seja efetivada. 
Vejam de forma gráfica como cada um dos protocolos se comporta junto aos locks durante 
um intervalo de tempo. A sua utilização pode causar problemas de daedlock ou starvation. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dadosp/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 28 
124 
 
Figura 5 - Perceba que existe uma ordem alfabética: Básico, Conservador, Estrito e Rigoroso. 
Deadlock é uma situação em que duas ou mais transações estão em estado 
simultâneo de espera, cada uma aguardando que uma das demais libere um 
bloqueio para ela poder prosseguir. Vejam a figura a seguir que mostra um 
exemplo gráfico do caso. 
 
Figura 6 - Exemplo de Deadlock com 3 transações (A,B,C) e 3 itens de dados (R,S,T) 
Existem alguns protocolos que atuam na prevenção do Deadlock. O conservador, nele, se 
algum dos itens não pode ser bloqueado, nenhum será bloqueado. E o ordenado que tenta 
impor uma ordenação em todos os itens e os locks só podem ocorrer segundo esta ordem. 
Os principais métodos para solucionar o impasse podem resultar na repetição da transação. 
Quando uma transação solicita um bloqueio de um registro que já está bloqueado por outra 
transação, então um dos dois procedimentos é seguido: 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 29 
124 
Wait-die (esperar-morer) - se a transação que solicitou o bloqueio é a mais 
antiga, pode aguardar. Se for a mais nova, sofre rollback e recomeça mais tarde 
com mesmo timestamping. 
 
Wound-wait (ferir-esperar) – se uma transação mais nova solicitar o bloqueio e 
o item estiver bloqueado por uma transação mais antiga, a transação mais nova 
pode aguardar. Se for a mais antiga que estiver solicitando, então ela interrompe 
a mais nova, a qual sofre rollback e recomeça mais tarde com mesmo 
timestamping. 
Duas considerações importantes, a primeira refere-se ao fato das transações que são 
abortadas retornam posteriormente com mesmo timestamp. A segunda que você pode 
perceber que a primeira palavra de cada um dos métodos trata do que vai acontecer ou qual 
a ação tomada pela transação mais antiga e a palavra seguinte trata da ação referente a 
transação mais nova. 
A ação será tomada sempre que uma transação solicitar o bloqueio de um item de dados. 
Essa é uma técnica de prevenção de impasses. Contudo, nem sempre é possível prever se 
algum conjunto de transações do banco de dados está em deadlock. Deve-se então 
executar ações que possam detectar a existência do problema no banco. 
Uma possibilidade é executar a verificação sempre que uma solicitação de bloqueio gere 
uma ação de espera. Permite a execução imediata de um impasse, porém tem um custo de 
processamento muito alto, acarretando um overhead sobre o banco de dados. 
Outra possibilidade seria realizar o procedimento em intervalos periódicos. Observamos de 
cara que isso reduz o overhead, contudo alguns deadlocks são verificados tardiamente. Não 
existe uma solução perfeita. Porém, alguns cuidados durante a construção dos sistemas 
podem reduzir substancialmente o risco de impasses. 
É importante criar sistemas com transações curtas e com uma pequena interferência entre 
as transações. O ideal é que cada transação solicite o lock de poucos itens de dados. Esse 
cenário cria uma carga leve com baixo risco de problemas de deadlock. 
Ao detectar um deadlock devemos tomar alguma ação para quebrá-lo. A quebra de 
deadlock consiste na escolha de uma das transações para forçá-la a um rollback. A escolha 
pode ser feita das seguintes formas: 
1. A transação que foi iniciada mais recentemente, 
2. A que tiver feito o menor número de bloqueios ou 
3.A que tiver feito o menor número de atualizações. 
Terminamos aqui nossos comentários sobre deadlock, vamos agora falar um pouco sobre 
livelock e starvation. 
No livelock a transação não pode prosseguir por um período indefinido enquanto 
outras transações continuam normalmente, esse fato ocorre por conta de um 
esquema injusto de espera por locks. Podemos resolver o problema de duas 
formas: associar um protocolo onde o primeiro a chegar será o primeiro a ser 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 30 
124 
servido (first-come-first-serve) ou criar um esquema de incremento de prioridade 
baseado no timestamp da transação. 
 
Starvation é um problema similar ao livelock, ocorre se o algoritmo seleciona a 
mesma transação como vítima repetidamente, causando abort repetidos e nunca 
acabando a execução. Os protocolos wait-die e wound-wait apresentados evitam 
starvation. 
Um exemplo mais fácil de Livelock seria duas pessoas que se encontram frente a frente 
em um corredor, e as duas se afastam para o lado para deixar o outro passar. Eles acabam 
se movendo de um lado para o outro sem fazer nenhum progresso, pois se movem da 
mesma maneira no momento. Aqui, eles nunca se cruzam. 
 
Figura 7 - Lógica por trás do livelock. 
Starvation é uma situação em que todas a transações de baixa prioridade são impedidos 
de evoluir enquanto as transações de alta prioridade prosseguem. Em qualquer sistema, as 
transações de alta/baixa prioridades devem ser executadas. Assim, é necessária alguma 
política para decidir quem recebe os itens para executar as transações. A figura abaixo 
apresenta a lógica de starvation aplicada a processo de sistemas operacionais, a mesma 
lógica pode ser aplicada a transações. 
 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 31 
124 
PROTOCOLO COM BASE EM GRAFOS 
Esse protocolo exige conhecimento anterior sobre a ordem na qual os itens de banco de 
dados são acessados. Um exemplo deste protocolo onde seria permitida somente a 
instrução de bloqueio lock-X. Cada transação Ti, pode bloquear um item de dado no máximo 
uma vez e deve observar as seguintes regras: 
1. O primeiro bloqueio feito por Ti pode ser sobre qualquer dado 
 
2. Subsequentemente, um item de dado Q pode ser bloqueado por Ti somente 
se os pais de Q estivem bloqueados por Ti 
 
3. Itens de dados podem ser desbloqueados a qualquer momento 
 
4. Um item de dado foi bloqueado e desbloqueado por Ti não pode ser 
“rebloqueado” por Ti. 
Vejam um exemplo de um gráfico gerado por um conjunto de transações e ao lado um plano 
de execução para as transações envolvidas. 
 
Figura 8 - Grafo de banco de dados estruturado em árvores. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 32 
124 
 
Figura 9 - Schedule serializável sob o protocolo de árvore. 
ORDENAÇÃO POR TIMESTAMP 
A cada transação Ti do sistema associamos um único 
timestamp fixo, denotado por TS(Ti). Esse é criado pelo 
SBD antes que a transação Ti inicie sua execução. Se uma 
transação Ti recebeu o TS(Ti) e uma nova transação Tj 
entra no sistema, então TS(Ti) < TS(Tj). 
Existem duas formas de implementar. Usar a hora do 
relógio do sistema (clock) como timestamp, isto é, o 
timestamp de uma transação é igual à hora em que a 
transação entra no sistema. Usar um contador lógico que 
é incrementado sempre que se usa um novo timestamp, 
isto é, o timestamp da transação é igual ao valor do 
contador quando a transação aparece no sistema. 
O protocolo que utiliza timestamp pode seguir alguns passos que dependem de tipo de 
bloqueio solicitado pela transação. Cada item Q tem um timestamp de escrita e outro de 
leitura denotado por W-timestamp(Q) e R-timestamp(Q). 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br1265118
 
 
 
 
 
 33 
124 
1. Suponha que a transação Ti emita uma instrução read(Q) 
a. Se TS(Ti) < W-timestamp(Q), então Ti precisa ler um valor de Q que já foi 
sobreposto. Assim, a operação read é rejeitada e Ti é desfeita. Isso significa 
que a transação está tentando ler um dado que foi modificado por outra 
transação ou está bloqueado para leitura. 
b. Se TS(Ti) >= W-timestamp(Q), então a operação read é executada e R-
timestamp(Q) recebe o maior valor entre R-timestamp(Q) e TS(Ti) 
2. Suponha que a transação Ti emita uma write(Q) 
a. Se TS(Ti) < R-timestamp(Q), então o valor de Q que Ti está produzindo foi 
necessário antes e o sistema assumiu que aquele valor nunca seria produzido. 
Logo, a operação write é rejeitada e Ti é desfeita. 
b. Se TS(Ti) < W-timestamp(Q), então Ti está tentando escrever um valor obsoleto 
em Q. Logo, essa operação write é rejeitada e Ti é desfeita. 
c. De outro modo, a operação write é executada e o W-timestamp(Q) é registrada 
com o valor de TS(Ti). 
A ideia é que utilizando esse protocolo a transação não vai ler um item se outra transação 
com um timestamp posterior estiver marcado o item. Neste caso ela precisa ser desfeita e 
reiniciar com um novo TS. A mesma ideia vale para operação de escrita, se a transação for 
bloquear um item para escrita o TS da transação precisa ser maior do que o TS de leitura e 
de escrita do item. 
Vejamos uma questão sobre esse assunto: 
8. FAURGS - Analista de Sistemas (TJ RS)/Classe P/2018 
Um rótulo de tempo é um identificador exclusivo para cada transação, gerado pelo 
sistema. Os valores de rótulos de tempo são gerados na mesma ordem que os tempos 
de início e fim das transações. Qual é o protocolo de controle de concorrência que 
utiliza ordenação por rótulo de tempo para garantir a serialização das transações? 
a) Bloqueio simples. 
b) Serialização. 
c) Timestamp. 
d) Bloqueio de duas fases. 
e) Multiversão. 
Comentário: O protocolo baseado em timestamp utiliza um identificador único e 
exclusivo criado pelo SGBD para identificar uma transação, de acordo com a ordem 
que ela foi submetida ao sistema. 
Esse identificador pode ser a data e hora do sistema no momento exato em que a 
transação foi submetida ("18/12/2020 10:45:03 GMT-3", por exemplo). Ou, ainda, pode 
ser apenas um contador que é incrementado automaticamente pelo SGBD sempre que 
uma nova transação chega. Exemplo: a primeira transação recebe o timestamp 1, a 
próxima recebe o 2 e assim por diante. 
Se uma transação A chegou ao sistema no tempo 1 e uma transação B chegou no 
tempo 2, a transação A será executada primeiro porque ela é mais "antiga" e foi 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 34 
124 
submetida antes. Dessa forma, o protocolo baseado em timestamp utiliza a ordem em 
que as transações chegaram ao SGBD para garantir a serialização. 
Concluímos, assim, que o gabarito é letra C. 
Gabarito: C 
Vamos agora tratar do contexto teórico de recuperação após falha. 
 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 35 
124 
RECUPERAÇÃO APÓS FALHA 
O termo recuperação ou restauração após falha está associado a trazer o sistema ou o 
banco de dados de volta a um estado consistente. A falha pode estar associada a diversos 
motivos: o computador ou servidor de banco de dados pode falhar, algum erro pode 
acontecer durante o processamento de uma transação, uma condição de exceção foi 
detectada, o protocolo de controle de concorrência impõe um rollback a uma transação, 
uma falha no disco ou, ainda, problemas físicos ou catastróficos. 
Todos esses problemas listados acima podem levar nosso sistema de banco de dados a 
usar o processo de recuperação dos dados. Vamos agora tentar explicar como esse 
processo acontece de fato. O modelo genérico apresentado funciona para a maioria dos 
SGBDs comerciais. 
Algoritmos de recuperação podem ser divididos em duas partes: 
1. Ações tomadas durante o processamento normal da transação a fim de garantir 
que haja informação suficiente para permitir a recuperação de falhas. 
 
2. Ações tomadas logo após a falha, recuperando o conteúdo do banco de dados 
para um estado que assegure sua consistência, atomicidade da transação e 
durabilidade. 
Após uma falha na execução de uma transação, o banco de dados deve ser restaurado para 
um estado consistente imediatamente anterior a falha. O Sistema deve manter informações 
sobre as atualizações do banco de dados armazenadas separadamente em um arquivo de 
log. 
CLASSIFICAÇÃO DAS FALHAS 
As falhas podem ser subdivididas em falha de transação, que inclui os erros lógicos e erros 
de sistemas, queda de sistema e falha em disco. Vamos examinar cada uma delas para 
entender o seu significado. 
Erro lógico: A transação não pode mais continuar com sua execução normal 
devido a alguma condição interna, como entrada inadequada, um dado não 
encontrado, overflow ou limite de recurso excedido. 
 
Erro de sistema: O sistema entrou em estado inadequado (por exemplo, 
deadlock, livelock, starvation), com isso, uma transação não pode continuar sua 
execução normal. A transação pode ser reexecutada posteriormente. 
 
Queda do sistema: Há algum mau funcionamento de hardware ou um bug no 
software de banco de dados ou no sistema operacional que causa a perda do 
conteúdo no armazenamento volátil e fez o processamento da transação parar. O 
conteúdo de armazenamento não volátil permanece intato e não é corrompido. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 36 
124 
 
Falha de disco: Um bloco de disco perde seu conteúdo em função da quebra do 
cabeçote ou da falha durante uma operação de transferência de dados. São 
usadas para recuperação do sistema após a falha, as cópias dos dados em outros 
discos ou backups de arquivos em meios terciários, como fitas. 
ESTRUTURA DE ARMAZENAMENTO 
Para começarmos a entender a estrutura padrão de armazenamento precisamos ter em 
mente dois conceitos. O primeiro refere-se à volatilidade. O dado pode estar gravado na 
memória principal, conhecida como volátil, nela a informação permanece apenas enquanto 
o sistema estiver em execução. Outra possibilidade é o dado ser armazenado em um disco 
rígido ou outro dispositivo não volátil. Neste caso o dado possui a propriedade da 
durabilidade e não deve ser perdido. 
Outro ponto importante é a possibilidade de usar mecanismos de redundância para garantir 
a durabilidade da informação no caso de uma falha nos discos. Uma estrutura de RAID - 
redundant array of independent disks – pode garantir essa propriedade por meio da 
replicação da informação em diferentes discos. 
Vamos agora focar nossa atenção no entendimento do processo de transferência de 
informação da memória para o disco. Esse processo é de suma importância para a 
recuperação. Observem a figura abaixo: 
 
Vejam que existem na figura dois conjuntos de operações: read/write e input/output. O 
primeiro par é responsável pela leitura dos dados da memória principal. Cada espaço da 
memória é conhecido como bloco de buffer. O processador vai enviar um comando de 
read(A) para ler a informação na memória principal. 
Vejam que no exemplo o bloco de memória contendo o dado A ainda não está devidamente 
armazenado na memória principal. Neste momento uma operação de entrada e saída é 
inicializada. Os dados são encontrados num bloco físico do disco que é transferido para um 
bloco de buffer. 
A transferência de blocos entre a memória e o armazenamento de disco pode resultarem: 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 37 
124 
1. Conclusão bem-sucedida: A informação transferida chegou de forma segura a seu 
destino. 
2. Falha parcial: Uma falha ocorreu no meio da transferência e o bloco de destino contém 
informação incorreta. 
3. Falha total: A falha ocorreu muito cedo, de modo que o bloco de destino permanece 
intacto. 
As operações de input e output são responsáveis por enviar e trazer os dados do disco para 
a memória principal. Sendo assim, o comando de Input(X) transfere o bloco físico X para a 
memória principal, e Output(X) transfere o bloco de buffer X para o disco e troca-o, no disco, 
pelo bloco físico apropriado. 
O USO DOS ARQUIVOS DE LOG 
 
Figura 10 - Todos os SGBDs possuem arquivos que registram os logs, no SQL Server o log fica registrado nos arquivos .LDF1 
O que acontece quando uma transferência de dados entre a memória principal termina com 
falha? Sabemos que o da não foi devidamente armazenado em disco. Neste momento 
aparece a necessidade de um arquivo de log. Armazenada em um local diferente dos 
arquivos de dados, o arquivo de log deve ser afetado sempre que uma transação realiza 
uma escrita, é essencial que o registro de log para aquela escrita seja criado antes do banco 
de dados ser modificado. Lembrem-se o log deve residir em armazenamento estável! 
Um registro de log deve conter um identificador da transação (Ti), um identificado do item 
de dado (Xj), o valor antigo do dado (V1) e o valor novo (V2). Um registro de log pode ser 
descrito da seguinte forma: <Ti, Xj, V1, V2>. Outras informações que também devem 
aparecer no log dizem respeito das operações executadas que nos levam ao estado da 
transação. Temos, portanto, dentro do log as seguintes informações: <Ti start>, <Ti 
commit>, <Ti abort>. 
A terminologia padrão para recuperação de SGBDs inclui os termos roubado/não roubado 
(steal/no-steal) e forçado/não forçado (force/no-force), que especifica quando uma página 
do banco de dados poderá ser gravada em disco a partir do cache. 
Se uma página em cache atualizada por uma transação não puder ser gravada antes que 
a transação se efetive, ela será chamada de abordagem não roubada. O bit de pin-unpin 
indicará se a página não puder ser escrita de volta no disco. Do contrário, se o protocolo 
permitir o buffer atualizado antes que a transação se efetive, ele será chamado roubado 
(steal). Steal será usado quando o gerenciador do cache (buffer) do SGBD necessitar de 
 
1 Um arquivo LDF é um arquivo de log criado pelo SQL Server. Ele contém um log de ações recentes 
executadas pelo banco de dados e é usado para rastrear eventos para que o banco de dados possa se 
recuperar de falhas de hardware ou outros desligamentos inesperados. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 38 
124 
um frame de buffer para outra transação, e o buffer substituir uma página existente que 
tenha sido atualizada, mas cuja transação não tenha se efetivado. 
Se todas as páginas atualizadas por uma transação forem imediatamente escritas no disco 
quando a transação se efetivar, ela será chamada abordagem forçada. Do contrário, será 
chamada não forçada. 
MODIFICAÇÕES ADIADAS E IMEDIATAS 
A modificação adiada garante atomicidade de transações quando todas as modificações 
do banco de dados são escritas no Log. Adia a execução de todas as operações write de 
uma transação até sua efetivação parcial, ou seja, imediatamente antes do checkpoint ou 
commit. Lembre-se de que uma transação é considerada parcialmente efetivada quando a 
última ação da transação tiver sido executada. Vejam um exemplo na figura abaixo: 
 
Figura 11 - Modificações adiadas 
Quando é utilizada a estratégia de modificação adiada os dados não são escritos no log até 
que a última ação da transação seja finalizada. Desta forma, garantimos que transação foi 
concluída quando escrita no log. Se uma falha acontecer, utilizaremos o log para refazer as 
modificações já executadas que não foram efetivamente gravadas em disco. Para tal, 
utilizamos a operação de Redo(Ti). Como não existe nenhum dado no disco que tenha sido 
gravado, mas que não tenha sua transação finalizada não precisamos desfazer nenhuma 
transação do disco. Esse protocolo é conhecido como NO-UNDO/REDO. 
Ele define o valor de todos os itens de dados atualizados pela transação Ti para os novos 
valores. A operação é idempotente, isto é, executá-la várias vezes geram o mesmo 
resultado. Após a ocorrência de uma falha, o subsistema de recuperação consulta o log 
para determinar quais transações têm de ser refeitas. Ti será refeita, se e somente se, o 
log contiver os registros <Ti start> e <Ti commit>. Sem <Ti commit> os registros de Ti devem 
ser removidos do log. 
Vamos agora falar da modificação imediata. Ela permite que as modificações no banco de 
dados sejam enviadas enquanto as transações ainda estão no estado ativo, ou seja, 
modificações não efetivadas. Na ocorrência de uma queda ou de uma falha de transação, 
o sistema deverá usar o campo relativo ao valor antigo dos registros do log para restauração 
dos itens de dados modificados e não efetivados. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 39 
124 
Antes que uma transação Ti inicie sua execução, o registro <Ti start> é escrito no log. 
Durante sua execução, qualquer operação de write(X) feita por Ti é precedida pela escrita 
apropriada do novo registro no log. Quando Ti é parcialmente efetivada o registro <Ti 
commit> é escrito no log. Vejam o exemplo abaixo do funcionamento das modificações 
imediatas. 
 
Figura 12 - Modificações imediatas 
Para recuperação quando utilizamos modificação imediata temos que usar o protocolo 
UNDO/REDO ou UNDO/NO-REDO. Fazendo primeiro as operações de undo e depois as 
operações de redo. As ações são descritas da seguinte forma. O Undo(Ti) retorna aos 
valores antigos todos os itens de dados atualizados pela transação Ti, se o log contém o 
registro <Ti start>, mas não tem o registro <Ti commit>. O redo(Ti) ajusta os valores de todos 
os itens de dados atualizados pela transação para os novos valores, se o log contém tanto 
o registro <Ti start> quanto o registro <Ti commit>. Lembrando que as duas operações são 
idempotentes. 
Essa primeira opção para de algoritmo baseada na atualização imediata é denominada: 
UNDO/REDO, se as modificações são gravadas no BD (disco) depois do commit da 
transação. Este é um caso mais geral e mais complexo onde devemos executar as 
operações de UNDO e REDO. Esse processo visa garantir que modificações no buffer que 
não foram escritas no disco, mas que já tenham o registro de commit no log sejam 
efetivadas. 
A outra opção seria o UNDO/NO-REDO, nesta técnica de recuperação temos a garantia de 
que todas as atualizações são gravadas no BD (disco) antes do commit da transação 
ser registrado no log, assim não é necessário REDO. Vamos apenas executar o UNDO nas 
operações que estavam em execução e não foram efetivadas. 
CHECKPOINT 
Quando uma falha de sistema ocorre, devemos consultar o log para determinar aquelas 
transações que necessitam ser refeitas e aquelas que necessitam ser inutilizadas. A 
princípio deveríamos pesquisar todo o log. Para diminuir o overhead de leitura do log após 
uma falha podemos introduzir no log os pontos de controle ou checkpoints. 
Basicamente são exigidas três operações: 1. Operação de saída, para armazenamento 
estável, de todos os registros residentes na memória principal. 2. Operação de saída, paraEquipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 40 
124 
disco, de todos os blocos de buffer modificados. 3. Operação de saída para armazenamento 
estável, de um registro de log <checkpoint>. 
Não é permitido às transações processarem quaisquer ações de atualização, como escrever 
em um bloco de buffer ou escrever no registro de log, enquanto o checkpoint está em 
progresso. 
O tempo necessário para forçar a gravação de todos os buffers de memória modificados 
pode atrasar o processamento da transação. Vamos relembrar o processo de execução do 
checkpoint. 
1. Suspender a execução das transações temporariamente 
2. Forçar a gravação no disco de todos os buffers na memória principal que 
tenham sido alterados 
3. Escrever um registro de [checkpoint] no log e forçar a gravação do log no 
disco 
4. Reassumir o controle das transações. 
É possível usar uma técnica conhecida como fuzzy checkpoint, nela o sistema poderá 
reassumir o processamento das transações depois que o registro [checkpoint] for escrito no 
log. 
Agora vamos juntas a o check point com os checkpoints com os cenários de atualização 
adiada e imediata. As figuras abaixo mostram o que acontece em cada um dos casos. 
 
 
 
 
 
 
 
 
 
FALHA CHECKPOINT 
 
Figura 13 - RAA - Recuperação com Atualização Adiada, os dados só são gravados no dico após o commit, o que nos leva a usar as 
operações de REDO/NO-UNDO. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 41 
124 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Existe, porém existe uma situação em que o SGBD garante que os dados de cada operação 
já foram efetivados, não necessitando da operação de REDO, assim chegamos ao processo 
NO-REDO/UNDO, visto na figura abaixo. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
FALHA CHECKPOINT 
Figura 14 - RAI - Recuperação com atualização imediata. Neste caso, os registros são gravados imediatamente no disco 
após as operações, logo precisamos reverter as operações que não foram efetivadas e refazer as operações que já foram 
efetivas após o checkpoint. O que nos leva ao processo de REDO/UNDO 
 
 
 
 
 
 
 
 
FALHA CHECKPOINT 
Figura 15 - RAI - Recuperação com Atualização Imediata no caso NO-REDO/UNDO 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 42 
124 
PAGINAÇÃO SHADOW 
Uma alternativa às técnicas de recuperação baseada em log é o uso da técnica de 
paginação shadow ou sombra. Ela exige (teoricamente) menos acessos ao disco, contundo 
é difícil de ser aplicada em transações concorrentes. Basicamente, pressupõe-se que o 
banco de dados seja composto por “n” páginas de tamanho fixo. Uma tabela de páginas 
com “n” entradas é então construída. 
A ideia é manter duas tabelas de página durante o processamento. A tabela de páginas 
atuais e a tabela de páginas shadow. Quando uma transação começa ambas as tabelas 
são idênticas. Então as operações são feitas na página corrente. Quando todas as 
alterações terminam a página corrente transforma em página shadow. As alterações, então 
são passadas para a nova página corrente. Vejam as três figuras que apresentam o passo-
a-passo desse processo. A primeira representa o estado inicial. 
 
A segunda figura representa as modificações, feitas apenas sobre a pagina corrente. 
 
A próxima e última figura representa a atualização da nova página corrente, devidamente 
atualizada. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 43 
124 
 
As páginas imagem, sombra ou shadow são úteis para ambientes monousuários, pois não 
precisamos de uma estrutura de log. Quando partimos para ambientes multiusuários pode 
ser necessário usar log, principalmente, se o método de controle de concorrência usar. 
A grande vantagem deste método é uma recuperação após falhas significativamente mais 
rápida, pois não há necessidade de Undo ou Redo de operações. Contudo a lista de 
desvantagens é enorme: 
• A fragmentação de dados, nela, as páginas atualizadas mudam de localização no 
disco, impedindo de manter juntas páginas relacionadas. 
• O overhead de efetivação, se a tabela de páginas é grande. 
• O tempo para gravar as tabelas de páginas imagem no commit é significativo; e 
• A coleta de lixo ou garbage collection para liberação de páginas antigas que é 
necessário após o commit. 
Além dos inconvenientes mencionados, a adaptação da paginação shadow a sistemas com 
transações concorrentes é mais difícil que o registro de log. Em tais sistemas, algum tipo de 
registro de log é normalmente necessário, mesmo que a paginação shadow seja usada. 
VISÃO GERAL DO ALGORITMO DE ARIES 
O ARIES é um algoritmo de recuperação que é projetado para trabalhar com uma 
abordagem de “roubar” e “não forçar”. Está baseado em três conceitos: 1. Registro 
adiantado em log, 2. Repetição de histórico durante o refazer e 3. Mudanças do log durante 
o desfazer 
A repetição de histórico significa que o ARIES relê todas as ações tomadas pelo sistema de 
banco de dados antes da queda para reconstruir seu estado quando a queda ocorreu. 
Transações que não foram efetivadas em tempo de queda, ou seja, as transações ativas 
são desfeitas. 
O uso e atualização do log durante o desfazer evitará que o ARIES torne a desfazer 
operações já desfeitas, caso ocorra uma falha durante a recuperação, com consequente 
reinício do processo de recuperação. 
Os buffers podem ser perdidos durante uma queda, uma vez que estão na memória 
principal. Tabelas adicionais armazenadas no log durante o checkpoint (Tabela de Página 
Lixo, Tabela de transações) permitem ao ARIES identificar essas informações. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 44 
124 
Quando o gerenciador de recuperação é invocado após uma falha, o reinício se procede em 
três fases. 
Fase de Análise (1) que identifica páginas sujas no buffer e transações ativas no 
momento da falha. 
 
Fase de Refazer (2) que repete todas as ações, começando do ponto apropriado 
no log e restaura o estado da base de dados idêntico ao momento da falha. 
 
Fase de Desfazer (3) que desfaz as ações das transações que não realizaram o 
commit, de forma que a base de dados reflita apenas as ações das transações 
que realizaram o commit. 
Algumas informações são necessárias para o processo. Precisamos do Log, da Tabela de 
Transações e da Tabela de Página Lixo. Essas duas tabelas são mantidas pelo gerenciador 
de transações e gravadas no log durante o checkpoint. Cada registro tem um número de 
sequência de log (LSN). Sobre o algoritmo ele usa fuzzy checkpoint. 
 
Figura 16 - Exemplo de recuperação em ARIES. (a) O log no ponto da falha. (b) As Tabelas de Transações e de Páginas Sujas no 
momento do check point. (c) As Tabelas de Transações e de Páginas Sujas após a fase de análise. 
a) 
b) 
c) 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 45 
124 
Sobre o algoritmo de ARIES não precisamos descer mais em detalhes, pois não é cobrado 
em provas de concurso. Aqui terminamos nossa aula de transações,controle de 
concorrência e recuperação após falha. Seguimos com nossa tradicional lista de questões 
comentadas, mas antes apresentaremos um resumo da aula em forma de mapas mentais. 
 
 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 46 
124 
MAPAS MENTAIS 
MAPAS 
Apresentamos abaixo um conjunto de mapas mentais que consolidam o conhecimento dos 
assunto vistos na aula. 
Transações 
 
 
 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 47 
124 
Plano de Execução 
 
 
 
Suporte a transações em SQL 
 
 
 
 
 
 
 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 48 
124 
Controle de Concorrência 
 
Recuperação após falha 
 
 
 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 49 
124 
QUESTÕES COMENTADAS DIVERSAS BANCAS 
Apresentamos abaixo um conjunto de questões complementares sobre o assunto 
que aprendemos nesta aula. 
 
1. COPESE UFPI - Consultor Legislativo (ALEPI)/Tecnologia da Informação/2020 
Sobre transações e seus comandos na linguagem SQL, avalie as seguintes 
afirmativas. 
I. Os comandos COMMIT, ROLLBACK e DROP fazem parte do controle de transações 
do SQL; 
II. O comando ROLLBACK fecha o bloco da transação e é a indicação que a transação 
deve ser terminada, mas tudo que tentou ser feito deve ser descartado porque alguma 
coisa errada aconteceu e ela não pode terminar normalmente. Nada realizado dentro 
dela será perdurado no banco de dados; 
III. Commit em duas fases refere-se a uma transação que pode utilizar dois ou mais 
bancos de dados (multi-database), que podem estar localizados em servidores 
diferentes. Durante uma transação em bancos com essa característica garante-se que 
o Commit seja realizado em todos os bancos participantes ou em nenhum, ou seja, ou 
grava tudo ou não grava nada; 
IV. Com relação a uma transação atômica deve-se executar com sucesso todas as 
suas operações ou, em caso de falha, desfazer apenas as operações já executadas 
que causaram a falha. 
Marque a opção que corresponde somente às afirmativas verdadeiras. 
a) Apenas I e II. 
b) Apenas II e III. 
c) Apenas II e IV. 
d) Apenas III e IV. 
e) Apenas I e IV. 
Comentário: Vamos analisar cada uma das as afirmativas da questão: 
I. Errada. Os comandos COMMIT e ROLLBACK pertencem à linguagem DTL (Data 
Transaction Language) e, de fato, fazem parte do controle de transações. O primeiro 
comando encerra a transação e confirma todas as alterações para que permaneçam 
registradas no banco enquanto o segundo encerra a transação, mas descarta todas as 
alterações feitas. Já o comando DROP, pertence à linguagem DDL (Data Definition 
Language). Ele é responsável por remover objetos do banco (tabelas, índices, visões, 
procedimentos). 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 50 
124 
II. Certa. O comando ROLLBACK é utilizado para reverter (ou seja, descartar) todas 
as operações realizadas dentro de uma transação. Nada do que foi feito na transação 
é refletido no banco de dados conforme definido pela propriedade da atomicidade. 
III. Certa. O COMMIT em duas fases é um protocolo associado a banco de dados 
distribuídos. Ocorre quando uma mesma transação realiza alterações em dois ou mais 
bancos de dados. Em respeito à propriedade da atomicidade, o COMMIT em cada 
banco deve ser realizado com sucesso. Se algum deles falhar, a transação deve ser 
abortada por completo. 
IV. Errada. A propriedade da atomicidade nos diz que a transação no SGBD será 
atômica , ou seja, indivisível. O que isso quer dizer? Que ou a transação será 
executada por completo ou não será executada. Não são desfeitas apenas as 
operações que causaram a falha, mas todas as operações da transação. 
Assim, apenas as afirmativas II e III estão corretas. Concluímos, assim, que o gabarito 
está na alternativa B. 
Gabarito: B 
 
2. CEBRASPE (CESPE) - Analista Judiciário (TJ PA)/Análise de Sistema/Suporte/2020 
Um sistema de banco de dados proporciona a empresas o controle centralizado de 
todos os seus dados. O funcionamento do banco de dados baseia-se em unidades 
lógicas de trabalho conhecidas como 
a) entidades. 
b) ocorrências. 
c) registros. 
d) tabelas. 
e) transações. 
Comentário: Uma transação é uma unidade lógica de trabalho que executa 
alguma(s) operação(ões) no banco de dados. Essas operações podem inserir, 
remover, modificar ou recuperar dados nas tabelas. Ao final da transação, é possível 
confirmar as alterações realizadas (através do comando COMMIT) ou descartar as 
alterações (comando ROLLBACK). 
Por exemplo: um sistema de uma instituição financeira pode ter uma transação 
chamada TRANSFERÊNCIA. Essa transação executa duas operações: primeiro, ela 
remove o valor que se quer transferir do saldo da conta de origem; depois, ela adiciona 
esse mesmo valor no saldo da conta de destino. 
Desta forma, temos o gabarito na alternativa E. 
Gabarito: E 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 51 
124 
 
 
3. NC-UFPR - Profissional Nível Universitário Jr (ITAIPU)/Gestão da Informação/2019 
Em relação às propriedades ACID do modelo transacional utilizado nos Sistemas de 
Gerenciamento de Banco de Dados, é correto afirmar: 
a) Atomicidade está relacionada à granularidade dos dados a serem mantidos em um 
atributo do banco de dados. 
b) Consistência está associada ao conteúdo de colunas derivadas, assegurando a 
relação do valor composto com as respectivas unidades. 
c) O isolamento é a propriedade que assegura que todas as operações de uma 
transação sejam executadas ou não nenhuma operação terá efeito na base de dados. 
d) O isolamento resolve os efeitos decorrentes da execução de transações 
concorrentes, em que cada transação é executada de forma que as operações parciais 
das demais transações não afetem a transação atual. 
e) A durabilidade controla o estado de inconsistência do banco de dados durante a 
execução das operações transacionais. 
Comentário: Vamos comentar cada uma das alternativas acima. 
a) Errado. A atomicidade se refere à integralidade da execução das operações de uma 
transação: ou ela é executada por completo, ou não é realizada. 
b) Errado. A consistência determina que a transação deve levar o banco de dados de 
um estado consistente para outro consistente. 
c) Errado. A alternativa descreveu a atomicidade. 
d) Certo. Uma transação não pode comprometer o funcionamento de outra transação, 
ou seja, devem parecer como se estivessem sendo executadas isoladamente 
e) Errado. A durabilidade diz que as alterações realizadas por uma transação devem 
ser persistidas no banco de dados. 
Desta forma, temos nosso gabarito na alternativa D. 
Gabarito: D 
 
4. INAZ do Pará - Analista de Tecnologia da Informação (CORE SP)/2019 
“Bancos de dados ou bases de dados são um conjunto de arquivos relacionados entre 
si com registros sobre pessoas, lugares ou coisas.” 
Disponível em: https://pt.wikipedia.org/wiki/Banco_de_dados. Acesso em: 13.12.2018 
Equipe de TI do EstratégiaConcursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 52 
124 
Quais as 4 propriedades de que depende a integridade de uma transação de banco de 
dados? 
a) Atomicidade, consistência, isolamento e durabilidade. 
b) Relacionamento, consistência, multiplicidade e durabilidade. 
c) Atomicidade, consistência, multiplicidade e durabilidade. 
d) Atomicidade, relacionamento, cardinalidade e durabilidade. 
e) Relacionamento, cardinalidade, multiplicidade e durabilidade. 
Comentário: Mais uma questão que cobra o conjunto de propriedades das 
transações: ACID (Atomicidade, Consistência, Isolamento e Durabilidade). Essas 
propriedades têm como objetivo garantir a integridade e validade das transações 
executadas no banco de dados 
Gabarito: A. 
 
5. IADES - Analista Legislativo (ALEGO)/Segurança da Informação/2019 
“[...] ou ela [transação] será executada em sua totalidade ou não será de modo 
nenhum.” 
ELMASRI, R.; NAVATHE, S.B. Sistemas de Banco de Dados. Addison-Wesley, 2005. 
Essa passagem trata de uma importante propriedade de transações em bancos de 
dados. Essa propriedade é a (o) 
a) atenção (do inglês, atention). 
b) atomicidade (do inglês, atomicity). 
c) isolamento (do inglês, isolation). 
d) durabilidade (do inglês, durability). 
e) preservação de consistência (do inglês, consistency preservation). 
Comentário: A questão trata do conjunto de propriedades ACID (Atomicidade, 
Consistência, Isolamento e Durabilidade). Essas propriedades têm como objetivo 
garantir a integridade e validade das transações executadas no banco de dados. 
O conhecimento dessas propriedades é constantemente explorado em questões de 
SGBD. 
Pessoal, aqui não tem jeito: tem que saber o que significa cada uma das quatro 
propriedades. Uma dica é associar o nome de forma que ajude a lembrar do significado. 
Observe: 
• Atomicidade: Garante que a transação no SGBD será atômica , ou seja, 
indivisível. O que isso quer dizer? Que ou a transação será executada por 
completo ou não será executada; 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 53 
124 
• Consistência: Garante a consistência , ou seja, a integridade dos dados antes 
e depois de uma transação ser executada; 
• Isolamento: Garante que cada transação é executada de forma isolada. Dessa 
forma, uma transação que ainda não foi concluída não irá afetar a execução de 
outra transação que esteja ocorrendo; 
• Durabilidade: Os dados permanecem registrados no SGBD independente de 
falha ou erro. 
Dessa forma, fica claro que o trecho “[...] ou ela [transação] será executada em sua 
totalidade ou não será de modo nenhum.” se refere a propriedade da atomicidade. 
Concluímos, assim, que o gabarito é letra B. 
Gabarito: B 
 
6. NC-UFPR - Técnico (Pref Matinhos)/Informática/2019 
No modelo transacional, qual é o significado correto das propriedades ACID descritas 
abaixo? 
a) A accuracy (A) avalia a precisão em que os dados são salvos. 
b) Atomicidade (A) assegura que as operações realizadas por uma transação não 
afetem as operações que estão sendo realizadas por outras transações em paralelo. 
c) Consistência (A) assegura que os efeitos de uma transação, em caso de sucesso 
(commit), sejam persistidas no banco de dados, mesmo em caso de quedas de 
energias, falhas de hardware etc. 
d) Isolamento (I) são técnicas que procuram evitar que transações paralelas interfiram 
umas nas outras, permitindo que o resultado de várias transações paralelas seja 
consistido, sendo equivalente à execução dessas mesmas transações de forma 
sequencial. 
e) Durabilidade (D) garante que as transações devem ter todas as suas operações 
executadas e persistidas ou, em caso de falhas, nenhuma modificação reflete sobre a 
base de dados. 
Comentário: Vamos analisar cada uma das alternativas: 
a) Errada. O "A" significa atomicidade. Essa propriedade garante que a transação no 
SGBD será atômica, ou seja, indivisível. O que isso quer dizer? Que ou a transação 
será executada por completo ou não será executada. 
b) Errada. A atomicidade garante que ou a transação será executada por completo ou 
não será executada. O isolamento (I) é que garante que uma transação que ainda não 
foi concluída não irá afetar a execução de outra transação que esteja ocorrendo. 
c) Errada. A letra C é que representa a propriedade da consistência. Ela garante a 
integridade dos dados antes e depois de uma transação ser executada. A propriedade 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 54 
124 
da durabilidade (D) é que garante que os dados permanecem registrados no SGBD 
independente de falha ou erro. 
d) Certa. A propriedade do Isolamento (I) garante que cada transação é executada de 
forma isolada. Dessa forma, uma transação que ainda não foi concluída não irá afetar 
a execução de outra transação que esteja ocorrendo. 
e) Errada. A durabilidade (D) garante que os dados permanecem registrados no SGBD 
independente de falha ou erro. A alternativa misturou os conceitos da atomicidade e 
durabilidade. 
Concluímos, assim, que o gabarito é letra D. 
Gabarito: D 
 
7. NC-UFPR - Técnico (UFPR)/Tecnologia da Informação/2019 
Considere as transações representadas abaixo num modelo de concorrência e com 
isolamento transacional: 
 
Nesse contexto, é correto afirmar: 
a) A execução das transações T1 e T2 apresentam o problema da leitura suja no 
modelo transacional. 
b) A instrução begin apresentada nos tempos 1 e 2 equivale ao comando start 
transaction no MySQL e indica que o conjunto de instruções deverá ser executado 
sequencialmente ou desfeito. 
c) A função de agregação avg apresentada no tempo 3 e 6 falha em função da ausência 
da cláusula “group by”, sendo a transação cancelada. 
d) No nível de isolamento serializable, o comando update constante no tempo 4 falha 
em função de o registro ter sido acessado pela transação T2. 
e) Se o nível de isolamento da transação T2 for read-committed, e o valor do salário 
diferente de 1000 para o funcionário identificado pelo id 2, então é esperado que a 
média calculada seja diferente da média obtida na linha 3. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 55 
124 
Comentário: A questão aborda os níveis de isolamento dos bancos de dados e seus 
problemas: leitura suja, fantasma e leitura não repetível. 
a) Errado. A leitura suja acontece quando uma transação (Tx) lê dados não efetivados 
por outra (Ty) e, posteriormente, a transação (Ty) que alterou os dados sofre um 
rollback, fazendo com que Tx leia dados incorretos. Nesse caso, o comando da 
questão aborda o isolamento transacional, o que nos leva a considerar que não haverá 
leitura suja. 
b) Errado. O uso da instrução BEGIN de fato sinaliza o início de uma transação no 
MySQL, ela funciona como um alias para o comando START TRANSACTION. O 
conjunto de instruções que se seguem devem ser executados por completo ou 
desfeitos. O fato de serem executados sequencialmente não é um ponto primordial das 
propriedades das transações. 
c) Errado. A função AVG é de agregação, mas ela faz a média do valor salário e não 
precisa do “group by”, logo ela não falha. 
d) Errado. O nível serializable impede qualquer problema, fazendo com que a 
transação atue como se fosse executada de forma serializada. Neste caso, o plano de 
execução apresentado não seria nem inicializado, visto que as operações apresentamo problema de leitura não repetitiva. 
e) Correto. O nível de isolamento read-committed somente permite ver as 
modificações que foram efetivadas. Assim, como no tempo 5 foi feito um commit da 
atualização do salário, no tempo 6 a outra transação poderá ver o novo valor. 
Observamos, portanto, o problema de leitura não repetitiva. 
Gabarito: E. 
 
8. SUGEP - Técnico (UFRPE)/Tecnologia da Informação/Sistemas/2019 
O conceito de transações permite ao projetista modelar uma sequência de operações 
de banco de dados como um único bloco. Desse modo, o usuário tem a percepção de 
que uma única ação foi executada. Nesse contexto, sobre a propriedade do “tudo ou 
nada” (atomicidade), é correto afirmar que se trata: 
a) da capacidade de efetuar a transação completamente, ou, na impossibilidade, 
retroceder para o último estado consistente do banco de dados (prévio à execução da 
transação). 
b) da consistência da base de dados antes e depois da execução da transação. 
c) da independência entre transações distintas que executam concorrentemente. 
d) da capacidade de o banco persistir o resultado da transação, independentemente 
de falhas de hardware ou software que venham a ocorrer durante a execução da 
transação. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 56 
124 
e) da consistência das restrições de integridade definidas no esquema de banco de 
dados. 
Comentário: Observando as alternativas, podemos encontrar a definição de 
atomicidade na alternativa A. As demais letras se referem às seguintes propriedades 
de transações: 
B) Consistência 
C) Isolamento 
D) Durabilidade 
E) Essa alternativa pode estar ligada a definição de consistência, mas 
subsidiariamente, visto que ao garantir um estado correto as regras de integridade 
devem estar presentes. 
Gabarito: A 
 
9. SUGEP - Técnico (UFRPE)/Tecnologia da Informação/Sistemas/2019 
Na operação dos sistemas, diversas transações são executadas de forma concorrente. 
Durante a execução de uma transação, podem ocorrer falhas, de modo que é 
necessário que haja um gerenciamento das transações, tratando aspectos como a 
recuperação do sistema. Nesse contexto, uma falha global pode ser uma falha de 
sistema ou uma falha da mídia. Sobre esse assunto, é correto afirmar que: 
a) quando ocorre uma falha de sistema, apenas a transação de prioridade zero é 
afetada, ficando as demais resguardadas. 
b) quando ocorre uma falha da mídia, ocorrem danos temporários à manipulação dos 
dados afetados. 
c) quando ocorre uma falha de sistema, o conteúdo da memória principal é 
resguardado. 
d) é uma estratégia de recuperação para falha da mídia a recarga ou restauração do 
banco de dados a partir de uma cópia de “backup”. 
e) é uma estratégia de recuperação para falha de sistema a checagem de danos físicos 
ao banco de dados, antes de sua reinicialização. 
Comentário: Vamos analisar cada uma das alternativas: 
a) Errado. Não existe essa restrição quanto ao nível de prioridade para resguardar 
uma transação. O que acontece com a transação depende do seu status e dos dados 
presentes no arquivo de log. A transação pode ser efetivada ou desfeita. 
b) Errado. A falha na mídia pode prejudicar os dados permanentemente. 
c) Errado. Uma falha no sistema, geralmente, prejudica o funcionamento da memória 
principal. Podendo haver perda dos dados na armazenados. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 57 
124 
d) Certo. Perfeito! A ideia é que as mídias secundárias sejam usadas para resguardar 
e recuperar o banco de dados após uma falha. Além do backup são usados os arquivos 
de log para restaurar os dados a um estado mais próximo possível do momento de 
falha. 
e) Errado. A checagem de dados físicos não pode ser considerada uma estratégia de 
recuperação. No máximo, podemos considerar uma ação realizada dentro da 
estratégia. 
Assim, temos a nossa resposta na alternativa D. 
Gabarito: D 
 
10. COPERVE-UFSC - Técnico (UFSC)/Tecnologia da Informação/2019 
Com relação a uma transação atômica em um banco de dados, é correto afirmar que: 
a) deve executar com sucesso todas as suas operações ou, em caso de falha, desfazer 
apenas as operações já executadas que causaram a falha. 
b) deve conter apenas operações de leitura. 
c) deve conter uma única operação. 
d) deve executar com sucesso todas as suas operações ou, em caso de falha, deve 
desfazer todas as suas operações já executadas. 
e) pode conter uma ou mais operações sobre uma única tabela. 
Comentário: Se você marcou letra A, volte e releia a alternativa! Não é possível que 
você caia nesta casca de banana da banca! Ela começa com o texto correto, mas 
termina dizendo que apenas as operações que causaram a falha serão desfeitas. Isso 
já foi apresentado como alternativa em outras questões e está errado. Todas as 
operações devem ser desfeitas. A nossa resposta para a pergunta encontra-se na 
alternativa D. 
Gabarito: D. 
 
11. VUNESP - Analista de Sistemas (CM Piracicaba)/2019 
Uma das propriedades básicas de uma transação em um banco de dados relacional é 
a atomicidade, a qual estabelece que 
a) a consistência do banco de dados deve ser preservada por todas as transações. 
b) a transação deve ser executada por completo ou ser cancelada desde seu início. 
c) deve haver duas cópias referentes aos dados alterados pela transação. 
d) há um limite de operações possíveis de serem executadas em cada transação. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 58 
124 
e) todas alterações resultantes têm um tempo máximo para serem salvas no banco de 
dados. 
Comentário: A questão nos perguntou especificamente da propriedade da atomicidade. 
A única alternativa que traz a explicação correta é a letra b) a transação deve ser 
executada por completo ou ser cancelada desde seu início. 
Gabarito: B 
 
12. VUNESP - Programador (CM Piracicaba)/2019 
Uma das propriedades básicas de uma transação em um banco de dados relacional 
estabelece que cada transação não deve sofrer interferência de outras transações em 
execução no banco de dados. Essa propriedade denomina-se 
a) durabilidade. 
b) isolamento. 
c) consistência. 
d) integridade. 
e) cardinalidade. 
Comentário: A propriedade de isolamento é que estabelece que cada transação não 
deve sofrer interferência de outras transações em execução no banco de dados. 
Gabarito: B 
 
13. CEBRASPE (CESPE) - Assistente Judiciário (TJ AM)/Suporte ao Usuário de 
Informática/2019 
Acerca de sistema gerenciador de banco de dados, do tuning e da segurança em banco 
de dados, julgue o item subsequente. 
Por ser considerada uma ação atômica, a proteção do banco de dados deve ser 
realizada ao nível de tabela, não sendo possível, por exemplo, realizar a proteção de 
uma tupla inteira ou de parte da tupla. 
Comentário: Existem vários sistemas gerenciadores de banco de dados que fazem 
bloqueio no nível de tabela. Desta forma, temos uma alternativa incorreta. 
Gabarito: E 
 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 59 
124 
14. FCC - Técnico Judiciário (TRF 3ª Região)/Apoio Especializado/Informática/2019 
Em Gerenciamento de Transações, as quatro propriedades que garantem uma 
transação são: 
a) Atualização, Completeza, Durabilidade e Isolamento. 
b) Atomicidade, Completeza, Durabilidade e Delegação.c) Atualização, Consistência, Durabilidade e Integração. 
d) Atomicidade, Consistência, Durabilidade e Isolamento. 
e) Atualização, Criação, Inserção e Exclusão. 
Comentário: Mais uma questão sobre ACID: Atomicidade, consistência, isolamento e 
durabilidade. Assim, temos o gabarito na alternativa D. 
Gabarito: D 
 
15. FCC - Analista em Gestão (DPE AM)/Especializado em Tecnologia da 
Informação de Defensoria/Analista de Banco de Dados/2018 
Uma das propriedades conhecidas em bancos de dados relacionais como ACID é a 
durabilidade, segundo a qual, em uma transação completada com sucesso, todas as 
atualizações feitas no banco de dados por essa transação devem persistir 
a) com exceção da ocorrência de falhas na memória do servidor de banco de dados. 
b) mesmo na ocorrência de falhas no sistema de banco de dados, após o término da 
transação. 
c) a menos que ocorra uma falha no servidor em até 1 segundo, após o término da 
transação. 
d) exceto se houver outras transações em execução no momento da falha. 
e) com exceção da ocorrência de falhas no barramento de dados do servidor do banco 
de dados. 
Comentário: Analisando as alternativas, podemos recorrer ao Navathe que define 
durabilidade ou permanência como uma propriedade onde as mudanças aplicadas ao 
banco de dados pela transação confirmada precisam persistir no banco de dados. 
Essas mudanças não devem ser perdidas por causa de alguma falha. Logo, temos 
uma resposta na alternativa B. 
Gabarito: B 
 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 60 
124 
16. FCC - Analista em Gestão (DPE AM)/Especializado em Tecnologia da 
Informação de Defensoria/Analista de Banco de Dados/2018 
Bloqueios constituem uma técnica bastante utilizada em sistemas de bancos de dados 
relacionais. É correto afirmar que 
a) quando uma transação obtém um bloqueio do tipo compartilhado sobre um item de 
dados, pode escrever mas não ler sobre esse item. 
b) no protocolo de bloqueio em duas fases, na fase de encolhimento, uma transação 
pode obter novos bloqueios. 
c) no protocolo de bloqueio em duas fases, na fase de crescimento, uma transação 
pode liberar e também obter novos bloqueios. 
d) quando uma transação obtém um bloqueio do tipo exclusivo sobre um item de 
dados, pode ler e escrever sobre esse item. 
e) no protocolo de bloqueio em duas fases, na fase de crescimento, uma transação 
pode liberar, mas não obter novos bloqueios. 
Comentário: Para responder a essa questão precisamos de dois conceitos. O primeiro 
deles é sobre o protocolo de bloqueio em duas fases. Esse protocolo requer que cada 
transação emita solicitações de bloqueio e desbloqueio em duas fases: 
• Fase de crescimento. Uma transação pode obter bloqueios, mas não pode liberar 
qualquer bloqueio. 
• Fase de encolhimento. Uma transação pode liberar bloqueios, mas não pode obter 
novos bloqueios. 
O outro é sobre os tipos de bloqueio: exclusivo e compartilhado. Se uma transação 
tiver obtido um bloqueio no modo compartilhado, então ele pode ler mas não pode 
escrever. Se uma transação tiver obtido um bloqueio no modo exclusivo, então ele 
pode ler e escrever. 
Desta forma, temos o gabarito na alternativa D. 
Gabarito: D. 
 
17. FGV - Analista de Políticas Públicas e Gestão Governamental (CGM 
Niterói)/Gestão de Tecnologia/2018 
Considere um banco de dados onde duas transações, t1 e t2, são executadas 
concorrentemente. A primeira, t1, debita R$ 100,00 de uma conta corrente, e a 
segunda, t2, debita R$ 200,00 da mesma conta. Não há uma ordem de execução 
definida para as transações. 
Suponha que cada uma das transações execute duas operações: leitura seguida de 
gravação. Essas operações são representadas como tx(r) para leitura e tx(w) para 
gravação. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 61 
124 
Considere, ainda, os seguintes escalonamentos das operações de t1 e t2. 
I. t1(r), t1(w), t2(r), t2(w) 
II. t2(r), t2(w), t1(r), t1(w) 
III. t2(r), t1(r), t1(w), t2(w) 
IV. t2(r), t1(r), t2(w), t1(w) 
Sobre a adequação desses escalonamentos com vistas à manutenção da integridade 
do banco dados, assinale a afirmativa correta. 
a) Somente I é adequado. 
b) Somente I e II são adequados. 
c) Somente III é adequado. 
d) Somente I e III são adequados. 
e) Todos são adequados. 
Comentário: Para responder a essa questão temos que relembrar o conceito de 
escalonamento. Perceba que são duas transações que simplesmente debitam 100 e 
200 reais respectivamente de uma determinada conta. Para isso você deve ler o saldo 
e subtrair o valor do saldo atual. Vamos supor que os saldo atual seja 500 reais. Em 
uma situação normal deveríamos ter um saldo final de 200 reais. Vejamos o que 
acontece com cada um dos planos de execução descritos: 
I. t1(r) → 500,00, t1(w) → 400,00 (subtrai 100) , t2(r) → 400,00, t2(w) → 200,00 (subtrai 
200) 
II. t2(r) → 500,00, t2(w) -> 300,00 (subtrai 200), t1(r) → 300,00, t1(w) → 200,00 (subtrai 
100) 
Perceba que os dois escalonamentos acima levam ao saldo final de 200,00, o que está 
certo, como já comentamos. Agora, vejamos os próximos planos: 
III. t2(r) → 500,00, t1(r) → 500,00, t1(w) → 400,00 (subtrai 100,00 de 500,00), t2(w) → 
300,00 (subtrai 200,00 de 500,00) 
IV. t2(r) → 500,00, t1(r) → 500,00, t2(w) → 300,00 (subtrai 200,00 de 500,00), t1(w) → 
400,00 (subtrai 100,00 de 500,00) 
Veja que nestas situações acima III e IV, o fato das duas transações lerem o mesmo 
valor vai levar a conta para um estado inconsistente. Logo, temo a reposta na 
alternativa B. 
Gabarito: B 
 
18. CESGRANRIO - Analista de Sistemas Júnior (TRANSPETRO)/ Infraestrutura 
/2018 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 62 
124 
O padrão ANSI/ISO SQL define três níveis de isolamento que permitem a ocorrência 
de violações do tipo leitura fantasma. Esses três níveis são 
a) READ UNCOMMITTED, READ COMMITTED e REPEATABLE READ 
b) READ UNCOMMITTED, READ COMMITTED e SERIALIZABLE 
c) READ UNCOMMITTED, REPEATABLE READ e SERIALIZABLE 
d) READ COMMITTED, REPEATABLE READ e SNAPSHOT 
e) REPEATABLE READ, SNAPSHOT e SERIALIZABLE 
Comentário: O padrão ANSI/ISO SQL define um total de 4 níveis de isolamento, 
onde 3 deles permitem a ocorrência de leitura fantasma. O quadro abaixo relaciona 
cada nível de isolamento com os problemas que podem ocorrer: 
 
Assim, os níveis READ UNCOMMITTED, READ COMMITTED e REPEATABLE 
READ permitem a ocorrência de leituras fantasmas. Concluímos, assim, que 
o gabarito é letra A. 
Gabarito: A 
 
19. NUCEPE UESPI - Perito (PC PI)/Criminal/Informática/2018 
Sobre as transações características dos bancos de dados, seguem-se três afirmações: 
I. O acrônimo ACID (Atomicidade, Consistência, Integridade e Durabilidade) são 
características de uma transação SQL; 
II. Uma transação em SQL precisa terminar com uma efetivação ou com uma reversão, 
essas operações em SQL correspondem respectivamente aos comandos Commit e 
Rollback; 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 63 
124 
III. Em SQL pode-se configurar o nível de transações que podem ser processadas 
simultaneamente. O comando set transaction configura níveis de isolamento como, por 
exemplo, read committed e serializable. 
Está CORRETO apenas o que se afirma em: 
a) I e II. 
b) II. 
c) II e III. 
d) I. 
e) I e III. 
Comentário:Vamos comentar sobre cada uma das alternativas acima. 
I. Incorreta. No nível de isolamento read uncommited a propriedade do isolamento 
não é respeitada. 
II. Certa. O componente do sistema que fornece essa atomicidade é chamado 
gerenciador de transações (também conhecido como monitor de processamento de 
transações ou monitor TP), e as operações COMMIT e ROLLBACK são a chave para 
se entender o modo como ele funciona: 
• A operação COMMIT indica o término bem-sucedido de uma transação. Ela 
informa ao gerenciador de transações que uma unidade lógica de trabalho foi 
concluída com sucesso, que o banco de dados está (ou deveria estar) novamente 
em um estado correto e que todas as atualizações feitas por essa unidade de 
trabalho podem agora complementar o COMMIT (ou seja, gravadas no banco de 
dados). 
• Ao contrário, a operação ROLLBACK assinala o término malsucedido de uma 
transação. Ela informa ao gerenciador de transações que algo saiu errado, 
que o banco de dados pode estar em um estado incorreto, e que todas as 
atualizações feitas pela unidade lógica de trabalho até agora devem ser 
"retomadas" (ou seja, desfeitas)." 
III. Certa. O comando SET TRANSACTION define as características da transação 
corrente. Não produz nenhum efeito nas próximas transações. As características da 
transação disponíveis são o nível de isolamento da transação e o modo de acesso 
da transação (leitura/escrita ou somente para leitura). O nível de isolamento de uma 
transação determina quais dados a transação pode ver quando outras transações 
estão processando ao mesmo tempo. O comando SQL possui a seguinte sintaxe: 
SET TRANSACTION modo_da_transação [, ...] 
onde modo_da_transação é um entre: 
 ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ | READ COMMITTED | 
READ UNCOMMITTED } 
READ WRITE | READ ONLY 
Assim, temos a nossa resposta na alternativa C. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 64 
124 
Gabarito: C. 
 
20. FGV - Analista do Ministério Público (MPE AL)/Administrador de Banco de 
Dados/2018 
Na teoria de bancos de dados, uma transação é um conjunto de operações cujo 
processamento respeita as propriedades de atomicidade, consistência, isolamento e 
durabilidade. 
 
Em sistemas não distribuídos, a propriedade “durabilidade” é usualmente 
implementada por meio de 
a) algoritmos two-phase commitment. 
b) algoritmos two-phase lock. 
c) arquivos de log que provêm redundância. 
d) pela combinação de operações de rollback e commit. 
e) serialização de operações no controle de concorrência. 
Comentário: Analisando as alternativas podemos perceber que: 
a) Errada. Two-phase commitment: está associada ao protocolo de commit em 
banco de dados distribuídos. Nele temos réplicas dos dados em bancos diferentes e 
deve ter uma sincronização para que as atualizações sejam feitas em todas as réplicas. 
Ele garante a atomicidade em SGBD distribuídos. 
b) Errada. Two-phase lock: é um protocolo de bloqueio onde cada transação deve 
passar por um estágio de bloqueio dos itens de dados que são necessários para a sua 
execução e um segundo estágio de liberação. Nesta segunda etapa não é possível 
bloquear mais os itens, apenas o debloqueio, por isso é conhecida como fase de 
encolhimento. 
c) Certo. Arquivos de log, juntamente com os backups e o sistema de recuperação, 
garante a durabilidade dos dados após o ponto de efetivação. 
d) Errada. A combinação de commit e rollback está associada a atomicidade. 
e) Errada. Serialização não ter relação com a propriedade de atomicidade. 
Gabarito: C 
 
21. FAURGS - Técnico de Tecnologia da Informação (BANRISUL)/Administração de 
Bancos de Dados/2018 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 65 
124 
A recuperação de falhas de transação significa que o banco de dados é restaurado ao 
estado consistente mais recente antes da falha. A recuperação é dependente de 
técnicas de atualização da base de dados ao longo das transações: adiada (quando 
não atualizam fisicamente o banco de dados até o ponto de confirmação – commit) ou 
imediata (que pode atualizar a base de dados antes do ponto de confirmação). 
Considere as afirmações abaixo sobre técnicas de recuperação de falhas de transação 
não catastróficas. 
I - Baseiam-se em informações sobre as mudanças que foram aplicadas aos itens de 
dados pelas diversas transações, tipicamente mantidas em um log de sistema. 
II - Em caso de falhas em atualização adiada, como nenhuma alteração foi 
efetivamente feita na base de dados, este tipo de recuperação é chamado de No-
Undo/No-Redo. 
III - A técnica denominada Undo/No-Redo é usada para recuperação de falhas em 
atualização imediata e requer o uso da estratégia force para decidir quando os buffers 
atualizados da memória principal são gravados de volta no disco. 
IV - A técnica denominada Undo/Redo é outra alternativa para recuperação de falhas 
em atualização imediata. É necessária quando o ponto de confirmação foi atingido, 
mas não há garantias de que todas as mudanças tenham sido gravadas em disco. Isto 
é resultado da adoção da estratégia steal/no-force. 
Quais estão corretas? 
a) Apenas I e III. 
b) Apenas I, II e III. 
c) Apenas I, III e IV. 
d) Apenas II, III e IV. 
e) I, II, III e IV. 
Comentário: Vamos analisar cada uma das alternativas: 
I. Certo. A estratégia das técnicas de recuperação de falhas não catastróficas baseia-
se em registros, geralmente em arquivos de log, e a partir deles é possível desfazer 
ou refazer operações realizadas por uma determinada transação em caso de falhas 
para retornar a um estado consistente. 
II. - Errado. Na atualização adiada, as modificações são registradas em logs apenas 
com os valores novos e, em caso de falhas, essas modificações são refeitas até 
o commit (se houver). É chamada de No-Undo/Redo, que significa não desfazer e 
refazer, pois não é necessário desfazer nada em caso de falha, já que nada foi de 
fato feito, pois as alterações só seriam salvas ao final da transação, mas é 
necessário refazer até o commit para retornar a um ponto consistente. 
III. Certo. A técnica Undo/No-Redo consiste em gravar imediatamente os dados no 
banco para que não seja haver um log de redo (registros do que foi feito para 
refazer), garantindo consistência até o ponto de confirmação (commit). A utilização da 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 66 
124 
técnica Force determina que as alterações devem ser salvas imediatamente após a 
confirmação, já que não haverá Redo. 
IV. Certo. A técnica Undo/Redo necessita de logs para refazer e desfazer 
operações, quando um ponto de confirmação de uma transação foi atingido, mas há 
dúvidas acerca da consistência de suas operações, a melhor forma de garanti-la é 
desfazer e refazer as operações e corrigir a transação completamente. A 
técnica steal consiste em salvar de forma antecipada blocos de cache utilizados 
por uma determinada transação e combinada com o not-force que não obriga a 
salvar os dados no banco imediatamente após a confirmação, podem gerar 
problemas como o trazido pela questão. 
Assim, temos o nosso gabarito na alternativa C. 
Gabarito: C 
 
22. FGV - Analista Legislativo (ALERO)/Tecnologia da Informação/Análise e 
Desenvolvimento de Sistemas/2018 
No contexto das propriedades desejadas para transações executadas em banco de 
dados relacionais, é possível que, eventualmente, seja permitida ou forçada a leitura 
de dados que foram modificados em operações ainda não confirmadas(comitted). 
Assinale a principal propriedade que é flexibilizada na ocorrência de um dirty read. 
a) Atomicidade. 
b) Consistência. 
c) Durabilidade. 
d) Integridade referencial. 
e) Isolamento. 
Comentário: Essa questão é muito interessante, veja que quando trabalhamos no 
nível de isolamento read uncommited, que admite leituras não confirmadas, ferimos 
a propriedade de isolamento. Observe que nesta situação, uma transação T1 tem 
acesso aos dados utilizados por outra transação T2 durante a execução de T2. Logo, 
nossa resposta encontra-se na alternativa E. 
Gabarito: E 
 
23. FGV - Analista Legislativo (ALERO)/Tecnologia da Informação/Banco de 
Dados/2018 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 67 
124 
Assinale a opção que indica a técnica que é frequentemente utilizada pelos 
gerenciadores de bancos de dados para a garantia da propriedade de isolamento das 
transações. 
a) Dirty read. 
b) Lazy evaluation. 
c) Redundância de dados. 
d) Two-phase commit. 
e) Two-phase lock. 
Comentário: Essa questão é um complemento da questão anterior. Dado que temos 
problema com a propriedade de isolamento, qual protocolo devemos seguir para que 
uma transação T1 não tenha acesso aos dados de outra durante a sua execução? O 
protocolo de two-phase lock. Assim, temos nossa resposta na alternativa E. 
Gabarito: E 
 
24. Ano: 2018 Banca: CESPE Órgão: STJ Cargo: Técnico Judiciário – Suporte 
Técnico 
Acerca de banco de dados, julgue os itens que se seguem. 
74 Os protocolos de bloqueio em um banco de dados podem bloquear todas as tabelas, 
apenas a tabela afetada ou apenas os dados que são manipulados durante a 
transação. 
Comentário: A questão trata dos níveis de bloqueios de elementos ou objetos de 
banco de dados. Podemos bloquear o banco inteiro, apenas uma tabela, um conjunto 
de linhas ou apenas uma linha. Essas são as opções de bloqueio que visam manter a 
integridade e a consistência dos dados. Assim, podemos marcar nossa resposta como 
correta para a alternativa. 
Gabarito: C 
 
25. Ano: 2016 Órgão: TRF-SP Cargo: Técnico Judiciário de TI – Questão 66 
Após receber permissão para alterar os dados dos registros contidos na tabela 
Processo, o usuário Paulo inseriu diversos registros utilizando a instrução INSERT e 
em seguida constatou, por meio da instrução SELECT, que estes dados foram 
inseridos adequadamente. Porém, outros usuários que acessam a tabela não 
visualizarão os dados inseridos por Paulo até que ele execute o comando: 
(A) commit 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 68 
124 
(B) refresh 
(C) end transaction 
(D) endpoint 
(E) close section 
Comentário: Essa questão trata de alguns conceitos interessantes. O primeiro deles 
é a característica de isolamento das transações. Segundo o enunciado, podemos 
observar que as modificações feitas por uma transação não são vistas por outro 
usuário até o momento do commit. Neste momento os dados já estão devidamente 
armazenados em uma memória não volátil. Outro ponto interessante que podemos 
derivar da questão é o nível de isolamento descrito para o sistema. Neste caso 
podemos usar: Read committed, Repeatable read ou Serializable. 
Gabarito: A 
 
26. ANO: 2013 BANCA: CETRO ÓRGÃO: ANVISA CARGO: ANALISTA 
ADMINISTRATIVO - ÁREA 5 
Em relação às transações em banco de dados, assinale a alternativa correta. 
A) Os esquemas de bloqueio podem ser descritos como otimistas, pois fazem a 
suposição do melhor caso possível. 
B) Para os fragmentos de dados muito pequenos, não é necessário supor acesso 
concorrente, nem há necessidade de bloqueio. 
C) Esquemas de validação ou certificação fazem a suposição de que os conflitos 
provavelmente serão bastante raros na prática, fazendo as verificações se ocorreu 
algum conflito somente no momento do COMMIT. 
D) Esquemas de bloqueio otimistas não fazem verificação da existência de conflitos 
em nenhuma fase da transação. 
E) Os esquemas otimistas devem ser evitados em sistemas com grande número de 
processadores paralelos. 
Comentário: Vamos analisar cada uma das alternativas acima. 
Na letra A, observamos que temos um erro ao dizer que o protocolo de bloqueio é 
considerado otimista. Sabemos que na realidade ele é um modelo de controle de 
concorrência pessimista. 
A questão do tamanho do fragmento de dados ou da granularidade quando relacionado 
com bloqueio é que, quanto menor o tamanho do fragmento a ser bloqueado maior 
será o paralelismo das transações no banco, porém mais complexo será o 
gerenciamento dos bloqueios. Veja que há necessidade de bloqueio, 
independentemente do tamanho do fragmento. Sendo assim, a alternativa B também 
está incorreta. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 69 
124 
Realmente os esquemas de validação ou certificação, ou seja, esquemas otimistas 
fazem a suposição de que os conflitos provavelmente serão bastante raros na prática, 
fazendo verificações se ocorrer algum conflito, somente no momento do COMMIT, logo 
a alternativa C é a correta. 
Os esquemas de bloqueio otimistas fazem verificação com muita frequência, logo a 
letra D está errada. 
Os esquemas otimistas podem ser preferidos em sistemas com grande número de 
processadores paralelos, logo a alternativa E está incorreta. 
Sabemos que a resposta está na alternativa C, mas gostaria de tecer alguns 
comentários sobre protocolos otimistas e pessimistas. 
Em ambientes com aplicações multiusuários uma situação comum é a concorrência de 
dados, onde vários usuários pegam um mesmo dado simultaneamente, e a atualização 
dele pode ser trabalha de duas maneiras, Otimista ou Pessimista. 
A concorrência pessimista trabalha com o conceito de bloqueio do registro na fonte 
de dados, impedindo que os usuários alterem os dados de uma forma que afeta outros 
usuários. Quando um usuário executa uma ação que provoca um bloqueio, outros 
usuários não podem realizar ações que entraria em conflito com o bloqueio até que o 
proprietário de bloqueio o finalize. Este modelo é usado principalmente em ambientes 
onde há contenção pesada de dados, onde o custo de proteção de dados com 
bloqueios é menor que o custo de reverter as transações se ocorrem conflitos de 
simultaneidade. Esse modelo não é uma opção escalável quando os usuários estão 
interagindo com os dados, fazendo com que os registros sejam bloqueados por 
períodos relativamente grande. 
Em contrapartida, concorrência otimista não bloqueia registros quando os lê. Quando 
um usuário deseja atualizar uma linha, o aplicativo deve determinar se outro usuário 
alterou a linha desde que foi lido. Concorrência otimista é geralmente utilizada em 
ambientes com baixa contenção de dados, aliviando o servidor do custo adicional de 
criar e manter locks. Outro ponto é a não necessidade de uma conexão aberta todo o 
tempo, já que não existe lock no banco, liberando o banco de dados para atender mais 
requisições. 
Gabarito: C. 
 
27. ANO: 2013 BANCA: CETRO ÓRGÃO: ANVISA CARGO: ANALISTA 
ADMINISTRATIVO - ÁREA 5 
Assinale a alternativa que apresenta apenas problemas de concorrência em bancos de 
dados que podem ser reduzidos a um deadlock como uma etapa da solução. 
A) Problema da atualização perdida e problema da dependência sem COMMIT. 
B) Problema da análise inconsistente e problema da atualização. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br1265118
 
 
 
 
 
 70 
124 
C) Problema da análise inconsistente e problema da dependência sem COMMIT. 
D) Problema da análise inconsistente, problema da atualização perdida e problema da 
dependência sem COMMIT. 
E) Problema da dependência com COMMIT e problema da atualização perdida. 
Comentário: Há essencialmente três modos pelos quais as coisas podem dar errado: 
isto é, três modos pelos quais uma transação pode produzir uma resposta errada se 
sofrer alguma forma de interferência de outra transação. Observem que a transação 
que interfere pode estar correta em si; é a intercalação descontrolada de operações de 
duas transações individualmente corretar que produz o resultado global incorreto. Os 
três problemas são: 
1. O problema da atualização perdida (lost update). 
2. O problema da dependência sem COMMIT. 
3. O problema da análise inconsistente. 
Analisando a atualização perdida, podemos verificar que o bloqueio resolve o 
problema, contudo outro problema surge que é o problema do deadlock. 
O problema da atualização sem commit também é resolvido com bloqueio, mas não 
gera problemas com impasses ou deadlock. 
Por fim temos a análise inconsistente, novamente, o bloqueio resolve o problema 
original, mas acaba forçando um impasse. 
Analisando, portanto, os três problemas podemos observar que em 1 e 3 temos como 
parte da solução a possibilidade de deadlock ou impasse. 
Gabarito: B. 
 
28. ANO: 2013 BANCA: CETRO ÓRGÃO: ANVISA CARGO: ANALISTA 
ADMINISTRATIVO - ÁREA 5 
Leia as afirmações abaixo relativas a banco de dados que consideram a transação 
“Somente Leitura” na técnica de controle de concorrência conhecida como Leitura 
Multiversão. 
I. Nunca retarda as atualizações. 
II. Nunca necessita efetuar o rollback. 
III. Nunca é retardada por outra transação. 
É correto o que se afirma em: 
A) I e III, apenas. 
B) I e II, apenas. 
C) II e III, apenas. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 71 
124 
D) I, II e III. 
E) II, apenas. 
Comentário: A técnica de controle de concorrência conhecida como bloqueio 
multiversão, também conhecida como leitura multivesão, está disponível hoje em 
vários SGBDs, por exemplo, o PostgreSQL. A maior vantagem da técnica é que as 
operações de leitura nunca precisam esperar, em outras palavras, qualquer número de 
operações de leitura e uma operação de escrita podem atuar sobre o mesmo objeto 
lógico simultaneamente. Para ser mais específico, podemos dizer que: 
1. As leituras nunca são retardadas. 
2. As leituras nunca retardam as atualizações. 
3. Nunca é necessário efetuar o ROLLBACK de uma transação somente de leitura 
4. O impasse só é possível entre transações de atualização. 
Essas vantagens são particularmente significativas em sistemas distribuídos onde as 
atualizações podem demorar um longo tempo e transações somente de leitura podem 
sofrer atrasos indevidos. 
Percebam que pelo exposto acima, podemos marcar nossa resposta na alternativa D. 
Gabarito: D. 
 
29. Ano: 2015 Banca: FGV Órgão: TJ-PI Cargo: Analista Judiciário 
Das propriedades desejadas nas implementações de bancos dedados, designadas 
pelo acrônimo ACID, o “D” de durabilidade é extremamente importante porque trata da 
persistência dos dados mesmo no caso de falhas graves. Usualmente, a técnica 
empregada para garantir essa propriedade baseia-se na utilização de: 
A) algoritmos de controle de concorrência; 
B) comandos de commit e rollback; 
C) chaves estrangeiras e outras cláusulas que possam prevenir os erros mais comuns; 
D) redundância de dados; 
E) sistemas distribuídos. 
Comentário: Sabemos que a durabilidade se refere ao fato de que depois que uma 
transação estiver sido concluída, seus efeitos ficam permanentemente no sistema. As 
modificações persistem até mesmo no caso de uma queda do sistema. 
Intuitivamente, a única maneira do SGBD se proteger contra falhas, que podem destruir 
parte dos dados, é criar e manter certa redundância no sistema. Desta forma, quando 
parte do banco de dados é danificada, sua “cópia redundante” pode ser utilizada para 
recuperar os dados perdidos e restabelecer a operação normal. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 72 
124 
Uma das formas de garantir durabilidade é por meio dos recursos de log da transação. 
Mesmo se o hardware do servidor, o sistema operacional ou a instância do Banco de 
Dados falharem, a instância usa os logs da transação ao reinicializar para reverter 
automaticamente qualquer transação incompleta até o ponto da falha do sistema. 
Outra forma de garantir a durabilidade é fazer cópias de segurança ou backups dos 
dados. Em ambos os casos, logs ou backup, a informação está armazenada de forma 
redundante no sistema. Partindo deste ponto comum, é possível dizer que a 
durabilidade deve estar relacionada a utilização de redundância de dados. 
Gabarito: D. 
 
30. Ano: 2015 Banca: FGV Órgão: TJ-PI Cargo: Analista Judiciário 
Transações de bancos de dados não distribuídos devem possuir propriedades que 
garantam a integridade dos dados quando da realização das operações que as 
compõem. Se nem todas as operações da transação forem realizadas, poderá haver 
um conflito de integridade nos dados. Esse tipo de problema é usualmente contornado 
pelos programadores com o uso de operações complementares do tipo: 
A) sync point; 
B) backup diferencial e backup completo; 
C) begin transaction, commit, rollback; 
D) bloqueio de recursos; 
E) livelock e deadlock. 
Comentário: Para obtermos um certo controle sobre os estados de cada transação é 
necessário, implícita ou explicitamente, temos pontos de controle que delimitam as 
operações e garante as propriedades de consistência e atomicidade. 
Esse controle pode ser mantido na maioria dos SGBDs por um conjunto de comandos 
conhecidos com data transaction language - DTL. Esse conjunto de comandos 
geralmente contém as operações de begin transation, para marcar o início da 
transação e leva-la para o estado ativo; o commit, que marca o final da transação bem-
sucedida e grava os dados de forma permanente na base de dados; e o rollback, que 
desfaz a operações da transação trazendo-o para o estado válido anterior. 
Analisando o texto acima, podemos concluir que o gabarito da questão se encontra na 
alternativa C. 
Gabarito: C. 
 
31. Ano: 2015 Banca: FGV Órgão: TJ-PI Cargo: Analista Judiciário 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 73 
124 
O uso de transações distribuídas em bancos de dados introduz o problema da 
manutenção da propriedade da atomicidade para essas transações. Se uma transação 
depende de operações que devem ocorrer em dois ou mais nós distintos, é necessário 
que o sucesso ou falha dessas operações possa ser percebido por todos os nós 
participantes. 
Um dos algoritmos mais utilizados para a implementação de transações dessa 
natureza é: 
A) Sync-lock; 
B) SyncPoint; 
C) Undo-Redo. 
D) 2-phase lock; 
E) 2-phase commitment; 
Comentário: O algoritmo ou protocolo de 2-phase commitment é uma possibilita a 
efetivação da transação em diferentes hosts. O mecanismo de commit em duas fases 
garante que todos os servidores de banco de dados que participam de uma transação 
distribuída tenham o commit ou rollback da transação. 
Uma única unidade lógica de trabalho pode incluir transações em múltiplos bancos de 
dados. Por exemplo, uma confirmação com commit pode ser executada depois de as 
duas tabelas em bancos de dados separados serem atualizados.O Oracle, por 
exemplo, manterá transparente a integridade entre os dois bancos de dados 
assegurando que todas as transações envolvidas sejam confirmadas com commit ou 
revertidas em grupo. Isso é realizado automaticamente por meio do mecanismo 2PC 
(Two-Phase Commit) do Oracle. 
A primeira fase do 2PC é a fase de preparação. Nessa fase, cada nó envolvido em 
uma transação prepara os dados que ela precisará para confirmar os dados com 
commit ou convertê-los. Uma vez preparado, diz-se que um nó está “em dúvida”. Os 
nós notificam o nó inicial da transação (conhecido como o coordenador global) de seu 
status. 
Uma vez que todos os nós são preparados, a transação insere a fase de confirmação 
e todos os nós são instruídos a confirmar sua parte da transação lógica utilizando o 
commit. Todos os bancos de dados confirmam os dados com commit no mesmo tempo 
lógico, preservando a integridade dos dados distribuídos. 
Vejam que o 2PC é um protocolo para commit distribuídos, não tem relação nenhuma 
com o protocolo de bloqueio em duas fases que serve para evitar problemas em 
transações concorrentes. Desta forma, nosso gabarito pode ser marcado na 
alternativa E. 
Gabarito: E. 
 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 74 
124 
32. Ano: 2014 Banca: FGV Órgão: Câmara Municipal do Recife-PE Cargo: 
Programador de computador 
Sistemas gerenciadores de bancos de dados processam requisições em paralelo que, 
quando operam sobre as mesmas instâncias de dados, podem provocar erros do tipo 
lost update e dirty read. Usualmente, o controle de concorrência nesses sistemas 
segue um mecanismo conhecido como: 
A) Two phase commitment; 
B) Check point; 
C) Snapshot; 
D) Two phase lock; 
E) Data Independence. 
Comentário: Não falei muito sobre o 2PL na questão anterior pois sabia que iria tecer 
alguns comentários sobre ele aqui, acabaria por ficar redundante. O mecanismo de 
bloqueio de duas fases (Two-Phase Lock), garante a serializabilidade tratando os 
bloqueios em duas fases: 
• Fase de aquisição (growing phase): nesta fase a transação apenas adquire os 
bloqueios; 
• Fase de liberação (shrinking phase): nesta fase a transação somente libera 
bloqueios. A partir do momento que o primeiro bloqueio é liberado nenhum bloqueio 
pode ser adquirido pela transação. 
Na versão 2PL Básico, os bloqueios são liberados à medida que a transação deixa de 
utilizá-los. Isso pode acarretar um problema conhecido como rollback em cascata. Uma 
vez que o bloqueio foi liberado, este dado pode ser utilizado por qualquer outra 
transação, assim se a transação não concluir com sucesso, outras transações que 
utilizaram algum dado intermediário podem gerar uma inconsistência no banco de 
dados. 
O Strict 2PL garante execuções concorrentes serializáveis, recuperáveis, evita o 
rollback em cascata, pois liberam os bloqueios apenas no commit ou rollback. 
O mecanismo funciona de forma análoga ao mecanismo de bloqueios simples, 
diferenciando-se apenas pela forma como são tratadas a aquisição e a liberação de 
bloqueios. 
Vejam que, pela explicação acima, nossa reposta, encontra-se na alternativa D. 
Gabarito: D. 
 
33. Ano: 2015 Banca: FGV Órgão: TJ-RO Cargo: Analista de Sistemas 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 75 
124 
No contexto de banco de dados relacionais, a transação T executa as seguintes 
operações: 
O1 - Lê o saldo de uma conta x; 
O2 - Subtrai uma quantia desse saldo; 
O3 - Grava esse saldo recalculado. 
O saldo da conta está gravado em um único registro de uma tabela. Suponha que T 
esteja sendo executada por dois processos diferentes, P1 e P2, em paralelo. P1 deve 
retirar R$ 10,00 da conta 2345 e P2, R$ 30,00 da mesma conta. 
Considerando que as operações podem ser realizadas em diferentes ordens, analise 
as possíveis sequências de execução dessas operações, mostradas a seguir. 
I. P2 processa O1; P2 processa O2; P2 processa O3; P1 processa O1; P1 processa 
O2; P1 processa O3; 
II. P1 processa O1; P1 processa O2; P1 processa O3; P2 processa O1; P2 processa 
O2; P2 processa O3; 
III. P1 processa O1; P1 processa O2; P2 processa O1; P1 processa O3; P2 processa 
O2; P2 processa O3; 
IV. P1 processa O1; P2 processa O1; P1 processa O2; P2 processa O2; P1 processa 
O3; P2 processa O3. 
As únicas sequências que podem ser admitidas pelo controle de concorrência, de 
modo a não introduzir erros no saldo final da conta, são: 
A) I e II; 
B) I e III; 
C) II e III; 
D) II e IV; 
E) III e IV. 
Comentário: Essa questão tem um ponto interessante, perceba que para que cada 
processo seja executado corretamente o resultado gerado após a execução dos dois 
de forma intercalada deve ser o mesmo gerado pela execução deles de forma 
sequencial. Agora veja que as alternativas I e II são exemplos de execução sequencial 
dos processos, logo são duas alternativas corretas. 
Agora observe as demais alternativas apresentam problemas no sentido que leem o 
mesmo saldo e fazem subtrações sobre esse valor, gerando um resultado 
inconsistente. Desta forma, as demais opções estão incorretas. 
Gabarito: A. 
 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 76 
124 
34. Ano: 2015 Banca: FGV Órgão: DPE-MT Cargo: Analista - Análise de Sistemas 
Um dos requisitos observados pelos sistemas gerenciadores de bancos de dados é a 
garantia da durabilidade de uma transação. Se um conjunto de operações tiver sido 
confirmado (commited), o sistema deve manter esse resultado no caso de recuperação 
de falhas, mesmo quando há perda de dados. 
Assinale a opção que indica a característica principal da técnica comumente usada 
para a obtenção dessa garantia nas implementações. 
A) Algoritmos de bloqueio 
B) Arquivos de log 
C) Backup diferencial 
D) Replicação de banco de dados 
E) Serialização 
Comentário: Essa questão apresenta uma ferramenta utilizada para contribuir com a 
durabilidade no armazenamento das informações em banco de dados. A utilização de 
arquivos de log contribui para que durante o processo no armazenamento de 
transações confirmadas ou commitadas, eles sejam passíveis de recuperação. De uma 
forma mais simples, os logs permitem que transações mais recentes possuam a 
propriedade de durabilidade. 
Gabarito: B. 
 
35. ANO: 2015 BANCA: FGV ÓRGÃO: TJ-SC PROVA: ANALISTA JUDICIÁRIO - 
ANALISTA DE SISTEMAS 
ACID é uma conhecida sigla do jargão da área de banco de dados, e refere-se às 
propriedades que as transações executadas por um sistema gerenciador devem 
observar. A letra ”I” nessa sigla está associada ao algoritmo: 
A de “undo/redo” sobre arquivos de log; 
B shadow paging; 
C write-ahead logging; 
D two-phase lock; 
E two-phase commitment. 
Comentário: Essa questão é interessante, pois nos remete a vários conceitos 
associados a transações em banco de dados. O primeiro deles é o undo/redo utilizado 
para recuperação do banco de dados. A depender o protocolo de recuperação 
escolhemos como aplicar as informações presentes no log sobre a base de dados. 
Executando o UNDO sempre que alguma transação não efetivada estiver com seus 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 77 
124 
dados já gravados em disco. E utilizamos a operação de REDO sempre que uma 
instrução já efetivada não estiver devidamente gravada em disco. 
A próxima alternativa se refere àspáginas sombra. Elas são utilizadas como uma 
técnica para garantir a consistência dos dados. Basicamente as modificações são 
feitas na cópia dos dados e em seguida atualizamos os ponteiros utilizando os dados 
da cópia como principais. 
O write-ahead logging, ou escrita antecipada do log, refere-se a uma técnica ou 
protocolo para gravação dos registros do log no disco. 
O two-phase lock, ou bloqueio em duas fases, é um protocolo de controle de 
concorrência que bloqueia os dados que serão utilizados pela transação. Garantido o 
isolamento de outras transações simultâneas. 
Gabarito: D 
 
36. Ano: 2015 Banca: FGV Órgão: TJ-BA Cargo: Analista Judiciário - Tecnologia da 
Informação 
Transações distribuídas em bancos de dados são caracterizadas pela participação de 
dois ou mais hosts ligados em rede. Um dos problemas para sua implementação é a 
garantia de que cada participante faça a sua parte, de modo que uma transação seja 
corretamente completada. Um algoritmo usualmente utilizado nesse contexto é: 
A) Open Data Base Connection; 
B) Dynamic Serializability; 
C) Two phase commitment; 
D) Compensating transactions; 
E) Two phase lock. 
Comentário: Esse assunto já foi tema de uma questão anterior. Quando tratamos de 
efetivação de transações em bancos de dados distribuídos temos que ter alguns 
cuidados pois os hosts estão fisicamente separados. Para ter sucesso na efetivação 
podemos usar o protocolo de commit distribuído conhecido como two-phase commit. 
Gabarito: C. 
 
37. Ano: 2014 Banca: FGV Órgão: PROCEMPA Cargo: Analista de Tecnologia da 
Informação e Comunicação I 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 78 
124 
A ideia do uso da serialização (serializable isolation) para conflitos entre transações 
concorrentes em um banco de dados está baseada no aumento do throughput em 
ambientes em que a probabilidade de conflito é pequena. 
Uma transação T1 serializável gera um erro de conflito quando há uma tentativa de 
A) leitura sobre um registro que foi modificado, mas não confirmado por uma transação 
T2, anterior a T1. 
B) leitura sobre um registro que foi modificado, mas não confirmado por uma transação 
T2, posterior a T1. 
C) leitura sobre um registro que foi modificado e confirmado por uma transação T2, 
anterior a T1. 
D) escrita ou remoção sobre um registro que foi modificado e confirmado por uma 
transação T2, posterior a T1. 
E) escrita ou remoção sobre um registro que foi modificado e confirmado por uma 
transação T2, anterior a T1. 
Comentário: Um escalonamento conflito-serializável é um escalonamento equivalente 
a alguma execução serial das transações. O problema acontece quando uma operação 
de escrita ou remoção de uma transação corrente tenta alterar um registro modificado 
por outra transação cronologicamente posterior. Essa ideia está presente na alternativa 
D, que é a nossa resposta. 
Gabarito: D. 
 
38. Ano: 2014 Banca: FGV Órgão: PROCEMPA Cargo: Analista de Tecnologia da 
Informação e Comunicação I 
Na implementação do controle de concorrência na execução de transações 
concomitantes de bancos, o dirty read é um dos fenômenos a evitar. 
Essa situação caracteriza-se sempre que 
A) uma transação lê dados gravados num dispositivo de armazenamento com defeito. 
B) uma transação grava dados gravados por outra transação que já foi confirmada 
(committed). 
C) uma transação lê dados gravados por outra transação que ainda não foi confirmada 
(committed). 
D) uma operação de leitura falha porque a tabela ao qual pertence está bloqueada. 
E) uma operação de leitura falha por falta de permissão. 
Comentário: O problema de leitura suja acontece quando o banco de dados permite 
que transações concorrentes leiam dados modificados por outra transação ainda não 
efetivada ou commitada. Para evitar este problema basta utilizar um nível de 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 79 
124 
isolamento read committed ou outro nível superior. Esses níveis não vão permitir que 
o problema persista. 
Gabarito: C. 
 
39. Ano: 2014 Banca: FGV Órgão: PROCEMPA Cargo: Analista de Tecnologia da 
Informação e Comunicação I 
Considere uma transação de banco de dados que transfere uma quantia X de uma 
conta A para outra, B. A transação consiste em uma leitura e gravação de A, seguida 
da leitura e gravação de B. Admita que o programador construiu seu programa 
corretamente. 
Caso ocorra algum tipo de erro nas operações sobre B, interrompendo o curso normal 
da transação, o sistema gerenciador do banco de dados deve agir para corrigir a 
situação e garantir que as propriedades da transação sejam respeitadas. 
A propriedade resguardada, nesse caso, é conhecida como 
A) atomicidade. 
B) consistência. 
C) durabilidade. 
D) isolamento. 
E) independência de dados 
Comentário: Vamos revisar aqui rapidamente os conceitos de ACID: 
• Atomicidade: A execução de uma transação deve ser atômica, ou todas as ações 
são executadas, ou nenhuma é; 
• Consistência: Cada transação executada isoladamente deve preservar a 
consistência do banco de dados; 
• Isolamento: Cada transação deve ser isolada dos efeitos da execução concorrente 
de outras transações; 
• Durabilidade: Toda transação que for finalizada de forma bem-sucedida deve 
persistir seus resultados em banco mesmo na presença de falhas no sistema. 
Agora percebam que se transação falhar o SGBD vai reverter as operações 
executadas. Isso garante a propriedade de atomicidade, presente na alternativa A. 
Gabarito: A. 
 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 80 
124 
40. Ano: 2014 Banca: FGV Órgão: DPE-RJ Cargo: Técnico Superior Especializado - 
Administração de Dados 
O controle de concorrência para transações de banco de dados que garante que 
resultados intermediários de uma transação T não afetem outras transações até que T 
tenha sido totalmente executada, ou rejeitada, é usualmente implementado em bancos 
de dados por meio de 
A) arquivos de log. 
B) bloqueio (lock e unlock). 
C) check points. 
D) replicação. 
E) two-phase commitment. 
Comentário: Vejam que a FGV gosta deste tipo de questão. Mais uma vez, cobra do 
candidato o conhecimento sobre o uso de bloqueios para evitar problemas como dirty 
read. Desta forma, temos a resposta na alternativa B. 
Gabarito: B. 
 
41. Ano: 2010 Banca: FGV Órgão: CODESP-SP Cargo: Analista de Sistemas 
Em bancos de dados, uma transação é uma unidade lógica de trabalho, começando 
com a operação BEGIN TRANSACTION e terminando conforme descrito a seguir: 
I. Com uma operação específica, que indica o término bem-sucedido da transação. 
Ela informa ao gerenciador de transações que uma unidade lógica de trabalho foi 
concluída com sucesso, que o BD está novamente em estado correto e que todas as 
atualizações foram feitas por essa unidade de trabalho e podem ser gravadas no banco 
de dados. 
II. Com uma operação específica, que indica o término malsucedido da transação. 
Ela informa ao gerenciador de transações que algo saiu errado, que o BD pode estar 
em um estado incorreto, e que todas as transações feitas pela unidade lógica de 
trabalho até o momento devem ser desfeitas. 
Essas operações são denominadas, respectivamente, 
A) SUCCESS e ROLLBACK. 
B) SUCCESS e RECOVER. 
C) COMMIT e ABORT. 
D) COMMIT e RECOVER. 
E) COMMIT e ROLLBACK. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 81 
124 
Comentário: Se você lembrar dos comandos DTL vistos nesta aula e na aula de SQL 
vai perceber que apenas uma das respostas apresenta duas operações válidas: 
COMMIT e ROLLBACK. 
Gabarito: E. 
 
42. Ano: 2010 Banca: FGV Órgão: BADESC Cargo: Analista de Sistemas 
Assinale a alternativa que indique três maneiras diferentes em que uma transação 
possa ser violada. 
A) Leitura suja, leitura repetível e fantasmas. 
B) Leitura suja, leitura não repetível e fantasmas. 
C) Sem leitura suja, leitura não repetível e fantasmas. 
D) Leitura suja, leitura não repetível e sem fantasmas. 
E) Sem leitura suja, leitura repetível e sem fantasmas. 
Comentário: Em SQL temos quatro níveis de isolamento que resolvem três problemas, 
vejam a tabela abaixo para relembrar os níveis e os problemas que eles resolvem: 
 
Observando a figura, precisamos fazer uma observação que a leitura inválida é, 
geralmente, conhecida como leitura suja. Com essa informação podemos chegar a 
nossa resposta na alternativa B: Leitura suja, leitura não repetível e fantasmas. 
Gabarito: B. 
 
 
43. Ano: 2010 Banca: FGV Órgão: BADESC Cargo: Analista de Sistemas 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 82 
124 
O nível de consistência especificado na SQL-92, também denominado de níveis de 
isolamento, fornece à SQL, em execução concorrente, garantias quanto à interferência 
ou quanto à ausência de interferência entre transações. 
A SQL possui a instrução set transaction que é aplicada para definir características da 
transação a ser iniciada. 
Assinale a alternativa que indique os seguintes níveis possíveis destas características. 
A) serializable, repeatable read, read committed e committable. 
B) serializable, repeatable read, committable e read uncommitted. 
C) serializable, committable, read committed e read uncommitted. 
D) committable, repeatable read, read committed e read uncommitted. 
E) serializable, repeatable read, read committed e read uncommitted. 
Comentário: Podemos usar a figura da questão anterior para resolver está aqui. 
Percebam que os níveis de isolamentos de SQL podem ser: serializable, repeatable 
read, read committed e read uncommitted. 
Gabarito: E. 
 
44. Ano: 2010 Banca: FGV Órgão: BADESC Cargo: Analista de Sistemas 
Analise o seguinte conceito. 
"Situação que dois ou mais usuários (ou processos) se autobloqueiam devido a não 
liberação de recursos concorrentes, onde, cada um, separadamente, espera 
indefinidamente que o outro finalize o processamento, criando um impasse. Portanto, 
é uma situação em que duas ou mais transações se encontram em estado de espera 
simultânea, cada uma esperando que uma outra finalize o processamento para poder 
prosseguir". 
A denominação desse conceito e o termo técnico que o provoca são, respectivamente: 
A) deadlock e bloqueio. 
B) bloqueio e deadlock. 
C) bloqueio e inconsistência. 
D) inconsistência e bloqueio. 
E) deadlock e inconsistência. 
Comentário: A ideia dessa questão é fazer com que você se lembre que o uso de 
bloqueios sobre itens de dados durante a execução de transações pode levar o 
aparecimento de impasses ou deadlocks. Vejam que o conceito que a questão trata é 
o de deadlock e a técnica que leva o aparecimento é denominada bloqueio. 
Gabarito: A. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 83 
124 
 
45. Ano: 2010 Banca: FGV Órgão: BADESC Cargo: Analista de Sistemas 
A propriedade de uma transação denominada de ACID envolve os seguintes conceitos: 
A) Atômico, Concorrente, Isolamento e Durabilidade. 
B) Atomicidade, Consistência, Isolamento e Durabilidade. 
C) Atomicidade, Concorrente, Inconsistente e Durabilidade. 
D) Atomicidade, Consistência, Integridade e Dependência de dados. 
E) Atomicidade, Consistência, Isolamento e Dependência de dados. 
Comentário: Questão água com açúcar, apenas para ter certeza que você lembra das 
propriedades. Faça um exercício mental e veja se você entende o porquê de cada uma 
das propriedades. Lembra-se ACID no contexto de banco de dados é a sigla para: 
Atomicidade, Consistência, Isolamento e Durabilidade. 
Gabarito: B. 
 
46. Ano: 2009 Banca: FGV Órgão: MEC Cargo: Administrador de banco de dados 
Para garantir o controle de concorrência e, consequentemente a consistência dos 
dados, o PostgreSQL utiliza o modelo MVCC (Multi Version Concurrency Control). 
A respeito desse modelo NÃO é correto afirmar que: 
A) a leitura nunca bloqueia a escrita. 
B) a escrita nunca bloqueia a leitura. 
C) cada transação enxerga um snapshot dos dados. 
D) impede que a transação enxergue dados inconsistentes. 
E) considera o estado concorrente dos dados provocados pelas demais transações. 
Comentário: O modelo MVCC é uma técnica utilizada para melhorar a performance 
do banco de dados em um ambiente multiusuário com contexto transacional. A 
consistência nesse contexto é mantida através de um modelo multi versão, onde cada 
transação trabalha com uma imagem dos dados no estado que eles se encontravam 
no início da transação. 
Uma vez iniciada uma transação no modelo MVCC, não é levado em consideração as 
alterações das outras transações simultâneas, proporcionando isolamento completo 
para cada sessão do banco de dados. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 84 
124 
A principal diferença do MVCC para o modelo tradicional é que os bloqueios obtidos 
pelo MVCC ao consultar os dados (read) não conflitam com os bloqueios obtidos ao 
escrevê-los (write) e vice-versa. 
Enfim, o PostgreSQL mantém a consistência dos dados utilizando o modelo 
multiversão MVCC (Multiversion Concurrency Control), que permite que leitura não 
bloqueie escrita nem escrita bloqueie leitura. Ele não considera o estado concorrente 
dos dados provocados pelas demais transações. 
Gabarito: E. 
 
47. Ano: 2009 Banca: FGV Órgão: MEC Cargo: Administrador de banco de dados 
No que diz respeito ao acesso a banco de dados em Java, o controle de transações 
pode ser feito por funções. Assim, para confirmar uma transação no BD e para cancelar 
as alterações da transação, são utilizadas, respectivamente, as seguintes funções: 
A) commit() e recovery() 
B) confirm() e rollback() 
C) commit() e cancel() 
D) confirm() e cancel() 
E) commit() e rollback() 
Comentário: Para finalizar uma transação temos dois possíveis comandos: 
Commit Transaction que faz o encerramento da transação com sucesso e torna as 
atualizações permanentes. 
Rollback Transaction que considera o término de transação com erro e retorna o 
banco de dados à posição anterior à Transação. 
Desta forma, temos a resposta da questão na alternativa E. 
Gabarito: E. 
 
 
48. Ano: 2010 Banca: FGV Órgão: BADESC Cargo: Analista de Sistemas 
Acerca das transações realizadas em um Banco de Dados, assinale a afirmativa 
INCORRETA. 
A) As transações controlam melhor apenas a concorrência. 
B) As transações são unidades lógicas de trabalho numa aplicação. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 85 
124 
C) A base de dados está em um estado consistente antes e depois de uma transação. 
D) As transações de diferentes usuários que envolvem dados compartilhados são 
executadas em sequência. 
E) Um mecanismo de transação garante que toda transação iniciadatermine com 
sucesso ou é desfeita. 
Comentário: Veja que estamos procurando a alternativa incorreta. Sabemos que as 
transações ajudam a controlar a concorrência no banco de dados, e que várias 
transações podem ser executadas simultaneamente no banco de dados. Para garantir 
que a execução de duas transações que acessam os mesmos dados seja feita de 
forma consistente o SGBD deve executá-las em sequência. Logo, a alternativa D está 
correta. Contudo, sabemos que duas transações que possuem apenas operações de 
leitura podem ser executadas em paralelo, mesmo que acessem os mesmos dados. 
A alternativa B tratam da definição de transação como uma unidade lógica de trabalho. 
As alternativas C e E apresentam as propriedades de consistência e atomicidade. 
Já a alternativa A, por conta do “apenas”, está incorreta. Sabemos que as transações 
ajudam na integridade do banco de dados e contribuem para a recuperação. Portanto, 
nossa resposta encontra-se na letra A. 
Gabarito: A. 
 
 
49. ANO: 2015 BANCA: MP-RS ÓRGÃO: MP-RS PROVA: TÉCNICO EM 
INFORMÁTICA - SISTEMAS 
Uma falha não pode deixar o banco de dados em um estado no qual uma transação 
tenha sido parcialmente executada. Qual é a propriedade que garante que todos os 
efeitos de uma transação se refletirão no banco de dados? 
A Consistência. 
B Isolamento. 
C Atomicidade. 
D Durabilidade. 
E Redundância. 
Comentário: A propriedade que garante que todas as operações que fazem parte de 
uma transação sejam executadas ou nenhuma delas será concluída é conhecida como 
atomicidade. Tratamos, portanto, uma transação como algo indivisível. 
Gabarito: C 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 86 
124 
 
50. ANO: 2015 BANCA: UERJ ÓRGÃO: UERJ PROVA: ANALISTA DE SISTEMAS - 
DESENVOLVIMENTO 
Das propriedades ACID, a que está ligada à serialização de transações é: 
A atomicidade 
B consistência 
C isolamento 
D durabilidade 
Comentário: O isolamento trata do fato de uma transação não ter conhecimento das 
demais. Outro contexto importante é a ideia que os efeitos gerados sobre o banco 
quando temos duas transações sendo executadas em paralelo deve ser o mesmo das 
mesmas transações executadas de forma sequencial. Esse contexto nos leva a 
serialização de transações. 
Gabarito: C 
 
51. ANO: 2015 BANCA: UERJ ÓRGÃO: UERJ PROVA: ANALISTA DE SISTEMAS - 
DESENVOLVIMENTO 
Dos níveis de isolamento definidos pela SQL, aquele em que não pode ocorrer o 
fenômeno “leitura fantasma” é: 
A READ UNCOMMITTED 
B REPEATABLE READ 
C READ COMMITTED 
D SERIALIZABLE 
Comentário: Os quatro níveis de isolamento propostos pelo SQL podem permitir que 
alguns problemas aconteçam durante a execução de transações paralelas. O nível de 
isolamento que garante que não teremos problemas com a leitura fantasma é o 
SERIALIZABLE. 
Gabarito: D 
 
52. ANO: 2015 BANCA: CESPE ÓRGÃO: MPOG PROVA: ANALISTA - ANALISTA EM 
TECNOLOGIA DA INFORMAÇÃO 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 87 
124 
Acerca de sistema de gerenciamento de banco de dados (SGBD), julgue os seguintes 
itens. 
[1] Os dados armazenados em um SGBD são acessados por um único usuário de cada 
vez, sendo impedido o acesso concorrente aos dados. 
Comentário: O acesso concorrente para leitura é perfeitamente permitido. Os 
problemas são graves quando temos das transações que querem escrever no mesmo 
registro ao mesmo tempo. Isso deve ser evitado por meio de protocolos de controle de 
concorrência. 
Gabarito: E 
 
53. ANO: 2014 BANCA: VUNESP ÓRGÃO: DESENVOLVESP PROVA: ANALISTA - 
ANALISTA DE SISTEMAS 
Assinale a alternativa correta com relação aos bloqueios, utilizados para implementar 
a concorrência em bancos de dados relacionais. 
A Bloqueios dos tipos compartilhado e exclusivo aplicam-se apenas a bancos de dados 
distribuídos. 
B Bloqueios dos tipos compartilhado e exclusivo aplicam-se apenas a tabelas com mais 
de 100 registros. 
C Uma transação que tenha obtido um bloqueio do tipo compartilhado sobre um item 
pode ler e escrever sobre tal item. 
D Uma transação que tenha obtido um bloqueio do tipo compartilhado sobre um item 
pode ler, mas não escrever sobre tal item. 
E Uma transação que tenha obtido um bloqueio do tipo exclusivo sobre um item pode 
ler, mas não escrever sobre tal item. 
Comentário: Sabemos que uma transação ao obter um bloqueio compartilhado ela só 
pode executar operações de leitura sobre aquele item de dados. O bloqueio 
compartilhado é sinônimo de operações de leitura. A outra opção de bloqueio seria o 
bloqueio exclusivo, nele podemos ter operações de escrita, mas perceba que nenhuma 
outra transação pode ter esse bloqueio sobre o mesmo item de dados 
simultaneamente. 
Gabarito: D 
 
54. ANO: 2014 BANCA: VUNESP ÓRGÃO: TJ-PA PROVA: ANALISTA JUDICIÁRIO - 
ANÁLISE DE SISTEMA - SUPORTE 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 88 
124 
Uma das formas de se implementar um controle para o acesso concorrente de usuários 
a um banco de dados é por meio da utilização de bloqueios, sobre os quais é correto 
afirmar que 
A bloqueios do tipo compartilhado não permitem o acesso simultâneo de mais do que 
um usuário. 
B bloqueios do tipo exclusivo não permitem o acesso simultâneo de mais do que um 
usuário. 
C em um bloqueio do tipo exclusivo é possível apenas ler o conteúdo do item de dados 
bloqueado. 
D um bloqueio do tipo exclusivo só é removido quando o banco de dados é desativado. 
E em um bloqueio do tipo compartilhado é possível ler e escrever sobre o conteúdo do 
item de dados bloqueado. 
Comentário: Essa questão é complementar a anterior. Agora estamos mostrando a 
definição ou a característica determinante da utilização dos bloqueios exclusivos. 
Gabarito: B 
 
55. ANO: 2014 BANCA: CESPE ÓRGÃO: TC-DF PROVA: ANALISTA DE 
ADMINISTRAÇÃO PÚBLICA - SISTEMAS DE TECNOLOGIA DA INFORMAÇÃO 
Julgue os itens subsequentes, no que se refere a bancos de dados distribuídos e data 
warehouse. 
[1] Em sistemas de bancos de dados distribuídos, o controle de concorrência baseado 
em bloqueio de duas fases determina que, após a liberação de um de seus bloqueios, 
as transações não solicitem um novo bloqueio. 
Comentário: Veja que a questão trata do protocolo de bloqueio em duas fases. Uma 
das suas características é justamente o fato de após a liberação de um bloqueio a 
transação não solicitará mais bloqueios. Sabemos que existem quatro tipos de 
protocolos: básico, conservador, estrito e rigoroso. O que muda de um para outro é o 
momento da liberação dos bloqueios. 
Gabarito: C 
 
56. ANO: 2014 BANCA: CESPE ÓRGÃO: TJ-SE PROVA: ANALISTA JUDICIÁRIO - 
ANALISTA DE SISTEMAS 
[1] O Oracle utiliza um protocolo de confirmação em duas fases para lidar com 
transações distribuídas concorrentes. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 89 
124 
Comentário: As transações distribuídas são um conjunto de duas ou mais transações 
que devem ser gerenciadas de forma coordenada. O principal desafio das transações 
distribuídas está relacionado com a manutenção da consistência do banco de dados e 
isto pode ser alcançado com a utilização do mecanismo de two-phase commit (2PC). 
O mecanismo de 2PC é dividido em duas partes: a fase de preparação (prepare) e a 
fase de commit. Na fase de preparação, o coordenador da transação "pergunta" aosparticipantes se todos concordam em finalizar a transação com um commit. 
Na fase de commit, caso todos os participantes tenham respondido que podem efetuar 
o commit da transação, o coordenador envia uma mensagem aos participantes 
solicitando que a transação seja finalizada (commit). Caso contrário, o coordenador 
envia uma mensagem aos participantes para abortarem a transação (rollback). 
Oracle-Controlled Distributed Transactions 
O mecanismo de 2PC implementado pelo Oracle possui as seguintes fases, nas quais 
o banco de dados executa automaticamente sempre que um usuário efetua um commit 
em uma transação distribuída: 
Prepare Phase: O coordenador global (global coordinator) envia uma mensagem aos 
nós participantes para se prepararem para efetuar um commit ou um rollback da 
transação. Se qualquer um dos nós não estiver preparado, a transação é abortada 
(rollback). 
Commit Phase: Se todos os participantes responderem ao coordenador que eles estão 
preparados, então o coordenador solicita a finalização da transação (commit). 
Forget Phase: O coordenador global esquece a transação. 
Gabarito: C 
 
57. ANO: 2015 BANCA: FCC ÓRGÃO: MANAUSPREV PROVA: ANALISTA 
PREVIDENCIÁRIO - TECNOLOGIA DA INFORMAÇÃO 
Uma transação é uma unidade atômica de trabalho que ou estará completa ou não foi 
realizada. Para propostas de restauração, o administrador de restaurações mantém o 
controle das seguintes operações: 
− BEGIN_TRANSACTION: Marca o início da execução da transação. 
− READ ou WRITE: Especifica operações de leitura ou gravação em itens do banco de 
dados, que são executadas como parte de uma transação. 
I. Especifica que as operações READ e WRITE da transação terminaram e marca o 
fim da execução da transação. Entretanto, nesse ponto é necessário verificar se as 
mudanças introduzidas pela transação podem ser permanentemente aplicadas ao 
banco de dados (efetivadas), ou se a transação deverá ser abortada porque viola a 
serialização, ou por alguma outra razão. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 90 
124 
II. Indica término com sucesso da transação, de forma que quaisquer alterações 
(atualizações) executadas poderão ser seguramente efetivadas no banco de dados e 
não serão desfeitas. 
III. Indica que uma transação não terminou com sucesso, de forma que quaisquer 
mudanças ou efeitos que a transação possa ter aplicado ao banco de dados deverão 
ser desfeitas. 
As operações I, II e III correspondem, correta e respectivamente, a: 
A FINISH; ROLLBACK; COMMIT. 
B END_TRANSACTION; SUCCESSFUL_TRANSACTION; 
UNSUCCESSFUL_TRANSACTION. 
C END_TRANSACTION; COMMIT_TRANSACTION; ROLLBACK. 
D STOP_TRANSACTION; GO_TRANSACTION; BACK_TRANSACTION. 
E STOP; COMMIT; ROLLBACK. 
Comentário: Observando os textos das alternativas I, II e III podemos perceber que o 
primeiro trata do END_TRANSACTION, o segundo do COMMIT e o último do 
ROLLBACK. Assim podemos encontrar a resposta na alternativa C. 
Gabarito: C 
 
58. CESPE - 2009 - ANAC - Analista Administrativo - Tecnologia da Informação 
[70] Para o SGBD viabilizar a execução de transações concomitantemente existem 
diversas técnicas de controle de concorrência que são utilizadas para garantir 
propriedade de não-interferência ou isolamento de transações. Uma dessas técnicas 
é o controle de concorrência baseado em ordenamento de registro de timestamp que 
utiliza o bloqueio combinado com o Protocol Two-Phase locking (2PL). 
Comentário: Existem alguns protocolos de controle de concorrência em transações 
de banco de dados um desses é o protocolo de BLOQUEIOS DE DUAS FASES que 
faz com que todas as transações obedeçam às seguintes regras: 
1. Antes de operar sobre qualquer objeto, a transação primeiramente adquire um 
bloqueio sobre aquele objeto. 
2. Após liberar o bloqueio, a transação não adquire mais bloqueios. 
Outro conjunto de protocolos de controle de concorrência utilizar rótulos de tempo 
(timestamp). 
Um timestamp é um identificador exclusivo para cada transação, gerado pelo sistema. 
Os valores de rótulo de tempo são gerados na mesma ordem que os tempos de início 
de transação. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 91 
124 
Vejam que são dois grupos de protocolos distintos (timestamp e bloqueio (em duas 
fases, por exemplo). 
A questão tenta combinar os dois, o que não faz sentido. Logo, alternativa está errada. 
Gabarito: E 
 
59. ANO: 2014 BANCA: FCC ÓRGÃO: TJ-AP PROVA: ANALISTA JUDICIÁRIO - 
BANCO DE DADOS - DBA 
Considerando o controle de concorrência em bancos de dados, há diversos protocolos 
que podem ser utilizados. Dentre eles há o denominado bloqueio de duas fases. Em 
uma dessas fases, uma transação pode liberar bloqueios, porém não pode obter novos 
bloqueios. Tal fase denomina-se 
A crescimento. 
B normalização. 
C encolhimento. 
D validação. 
E granulação. 
Comentário: Como vimos o protocolo de bloqueio em duas fases possui a fase de 
crescimento onde os locks são feitos e outra de encolhimento, nesta, os locks são 
liberados e nenhum outro bloqueio pode ser realizado. 
Gabarito: C 
 
60. ANO: 2014 BANCA: VUNESP ÓRGÃO: TCE-SP PROVA: AGENTE DA 
FISCALIZAÇÃO FINANCEIRA - SISTEMAS, GESTÃO DE PROJETOS E 
GOVERNANÇA DE TI 
Sistemas de gerenciamento de bancos de dados relacionais podem utilizar o 
mecanismo de bloqueio de itens de dados. O tipo de bloqueio que pode realizar leitura 
sobre um item de dados, mas não escrever sobre ele, é denominado 
A compartilhado. 
B classificado. 
C estruturado. 
D protocolar. 
E verificado. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 92 
124 
Comentário: Vimos que os bloqueios sobre os itens de dados podem ser feitos de 
maneira compartilhada ou exclusiva. No caso do bloqueio compartilhado ele permite 
que outras transações leiam o mesmo item de dados. Já quando tratamos do bloqueio 
exclusivo, apenas uma transação tem acesso ao dado e a mesma é permitido fazer 
operações de escrita sobre o item bloqueado. 
Gabarito: A 
 
61. Ano: 2014 Banca: FCC Órgão: TJ-AP Prova: Analista Judiciário - Banco de 
Dados - DBA 
Uma propriedade importante quando se considera a recuperação de um banco de 
dados é constituída pelos chamados pontos de verificação (checkpoints). Um 
checkpoint consiste de um registro, cuja função é indicar que 
A o banco de dados sofreu uma paralisação programada para manutenção. 
B houve uma falha no conjunto de discos utilizado para armazenamento dos dados. 
C houve uma falha de comunicação entre as máquinas servidora e cliente. 
D o banco de dados passou por uma operação de backup completo. 
E todas as transações encerradas anteriormente ao checkpoint já foram confirmadas. 
Comentários: Vamos aproveitar a questão para falarmos um pouco a respeito do 
comando CHECKPOINT. Ele escreve todas as páginas sujas (dirty pages) do banco 
de dados corrente no disco. As páginas sujas são páginas de dados que entraram no 
buffer cache e foram modificadas, mas ainda não foram escritas no disco. 
Os pontos de verificação economizam tempo durante uma recuperação posterior por 
criarem um ponto onde existe a garantia de que todas as páginas sujas foram escritas 
no disco. Por motivo de desempenho, o Mecanismo de Banco de Dados realiza 
modificações nas páginas do banco de dados em memória e não escreve a página no 
disco após cada modificação. 
Entretanto, o Mecanismo de Banco de Dados precisa realizar periodicamente um ponto 
de verificação para escrever as páginas sujas no disco. Escreveras páginas sujas no 
disco cria um ponto bom conhecido a partir do qual o Mecanismo de Banco de Dados 
pode começar a aplicar as modificações contidas no log durante a recuperação após 
uma parada não esperada ou queda. 
Gabarito: E 
 
62. Ano: 2014 Banca: UFG Órgão: UEAP Prova: Analista de TI - Banco de Dados 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 93 
124 
As operações refazer (REDO) e desfazer (UNDO) são usadas no processo de 
recuperação de banco de dados. Na recuperação baseada em atualização adiada, os 
dados atualizados por uma transação não podem ser gravados no banco de dados 
antes do commit da transação. O algoritmo para esse tipo de recuperação é 
denominado 
A UNDO/REDO. 
B UNDO/NO-REDO. 
C NO-UNDO/NO-REDO. 
D NO-UNDO/REDO. 
Comentários: Já entendemos como as operações de UNDO e REDO funcionam. 
Agora vamos falar sobre como a atualização imediata ou a atualização adiada afetam 
o uso dessas operações. Vamos entender os conceitos. 
Quando estamos falando da atualização adiada o processo de recuperação usa duas 
listas de transações: as transações acabadas desde o último checkpoint e as 
transações ativas. Aplica-se a operação REDO para todas as operações de escrita das 
transações acabadas no log, na ordem na qual elas foram gravadas. As transações 
ativas e não acabadas são canceladas e devem ser re-submetidas. Desta forma não 
realizamos a operação de UNDO. 
Veja que a questão trata do algoritmo, neste caso não temos a operação de UNDO, 
mas utilizamos a de REDO. O algoritmo é conhecido como NO-UNDO/REDO. 
As outras opções de algoritmos são baseadas na atualização imediata. O primeiro seria 
o Undo/No-Redo, se a técnica de recuperação garante que todas as atualizações são 
gravadas no BD (disco) antes do commit da transação, não é necessário REDO. 
Vamos apenas fazer o UNDO das operações que estavam em execução e não foram 
efetivadas. 
A segunda opção para de algoritmo baseada na atualização imediata é denominada: 
Undo/Redo, se as modificações são gravadas no BD (disco) depois do commit da 
transação. Este é um caso bem mais geral e mais complexo onde devemos executar 
as operações de UNDO e REDO. 
Vejam que pelo exposto nossa resposta está na alternativa D. 
Gabarito: D 
 
63. Ano: 2010 Banca: FCC Órgão: TCE-SP Prova: Agente da Fiscalização 
Financeira - Produção e Banco de Dados 
Tratando-se do algoritmo ARIES, quando o gerenciador de recuperação é invocado 
após uma falha, o reinício se procede em fases. A identificação das páginas sujas no 
buffer pool e das transações ativas no momento da falha pertence à fase de 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 94 
124 
A preempção. 
B refazer. 
C lock. 
D análise. 
E correção. 
Comentários: Essa e as próximas duas questões tratam do algoritmo de AIRES para 
recuperação após uma falha. O ARIES é um algoritmo de recuperação que é projetado 
para trabalhar com uma abordagem de “roubar” e “não forçar”. Ele está baseado em 
três conceitos: registro adiantado em log, repetição de histórico durante o refazer e 
mudanças do log durante o desfazer. 
Repetição de histórico significa que o ARIES relê todas as ações tomadas pelo sistema 
de banco de dados antes da queda para reconstruir seu estado quando a queda 
ocorreu. Transações que não foram efetivadas em tempo de queda, as transações 
ativas são desfeitas. 
Usar log durante o desfazer evitará que o ARIES torne a desfazer operações já 
desfeitas, caso ocorra uma falha durante a recuperação, com consequente reinício do 
processo de recuperação. 
Quando o gerenciador de recuperação é invocado após uma falha, o reinício se 
procede em três fases: 
Fase de Análise (1): identifica páginas sujas no buffer e transações ativas no momento 
da falha. Essa é nossa resposta para a questão acima. 
Fase de Refazer (2): repete todas as ações, começando do ponto apropriado no log e 
restaura o estado da base de dados idêntico ao momento da falha. 
Fase de Desfazer (3): desfaz as ações das transações que não realizaram o commit, 
de forma que a base de dados reflita apenas as ações das transações que realizaram 
o commit. 
Gabarito: D 
 
64. Ano: 2010 Banca: FCC Órgão: TCE-SP Prova: Agente da Fiscalização Financeira 
- Produção e Banco de Dados 
As fases de operação do algoritmo ARIES são em número de 
A 1 
B 2 
C 3 
D 4 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 95 
124 
E 5 
Comentários: Vimos no comentário da questão anterior que o algoritmo tem três 
fases. 
Gabarito: C 
 
65. Ano: 2010 Banca: FCC Órgão: TCE-SP Prova: Agente da Fiscalização 
Financeira - Produção e Banco de Dados 
O sistema ARIES é considerado um adequado mecanismo de recuperação de BD, pois 
I. fornece alto grau de paralelismo. 
II. usa a abordagem não-tomar-memória e forçar escrita. 
III. reduz a sobrecarga na operação de registro no histórico-de-ocorrências. 
IV. minimiza o tempo de recuperação. 
Está correto o que consta em 
A I e II, apenas. 
B I e III, apenas. 
C I, III e IV, apenas. 
D II, III e IV, apenas. 
E I, II, III e IV. 
Comentários: A alternativa II, a única incorreta do texto do enunciado trocou as 
características do algoritmo. O ARIES é um algoritmo de recuperação que é projetado 
para trabalhar com uma abordagem de “roubar memória” e “não forçar escrita”. Sendo 
assim a alternativa C é nossa resposta. 
Gabarito: C 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 96 
124 
QUESTÕES SEM COMENTÁRIOS 
Apresentamos abaixo um conjunto de questões complementares sobre o 
assunto que aprendemos nesta aula. 
 
1. COPESE UFPI - Consultor Legislativo (ALEPI)/Tecnologia da Informação/2020 
Sobre transações e seus comandos na linguagem SQL, avalie as seguintes 
afirmativas. 
I. Os comandos COMMIT, ROLLBACK e DROP fazem parte do controle de transações 
do SQL; 
II. O comando ROLLBACK fecha o bloco da transação e é a indicação que a transação 
deve ser terminada, mas tudo que tentou ser feito deve ser descartado porque alguma 
coisa errada aconteceu e ela não pode terminar normalmente. Nada realizado dentro 
dela será perdurado no banco de dados; 
III. Commit em duas fases refere-se a uma transação que pode utilizar dois ou mais 
bancos de dados (multi-database), que podem estar localizados em servidores 
diferentes. Durante uma transação em bancos com essa característica garante-se que 
o Commit seja realizado em todos os bancos participantes ou em nenhum, ou seja, ou 
grava tudo ou não grava nada; 
IV. Com relação a uma transação atômica deve-se executar com sucesso todas as 
suas operações ou, em caso de falha, desfazer apenas as operações já executadas 
que causaram a falha. 
Marque a opção que corresponde somente às afirmativas verdadeiras. 
a) Apenas I e II. 
b) Apenas II e III. 
c) Apenas II e IV. 
d) Apenas III e IV. 
e) Apenas I e IV. 
 
2. CEBRASPE (CESPE) - Analista Judiciário (TJ PA)/Análise de Sistema/Suporte/2020 
Um sistema de banco de dados proporciona a empresas o controle centralizado de 
todos os seus dados. O funcionamento do banco de dados baseia-se em unidades 
lógicas de trabalho conhecidas como 
a) entidades. 
b) ocorrências. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 97 
124 
c) registros. 
d) tabelas. 
e) transações. 
 
3. NC-UFPR - Profissional Nível Universitário Jr (ITAIPU)/Gestão da Informação/2019 
Em relação às propriedades ACID do modelo transacional utilizado nos Sistemas de 
Gerenciamento de Banco de Dados, é correto afirmar: 
a) Atomicidade está relacionada à granularidade dos dados a serem mantidos em um 
atributo do banco de dados. 
b) Consistência está associada ao conteúdo de colunas derivadas, assegurando a 
relação do valor composto com as respectivas unidades. 
c) O isolamento é a propriedade que assegura que todas as operações de uma 
transação sejam executadas ou não nenhuma operação terá efeito na base de dados. 
d) O isolamento resolve os efeitos decorrentes da execução de transações 
concorrentes, em que cada transação é executada de forma que as operações parciais 
das demais transações não afetem a transação atual. 
e) A durabilidade controla o estado de inconsistência do banco de dados durante a 
execução das operações transacionais. 
 
4. INAZ do Pará - Analista de Tecnologia da Informação (CORE SP)/2019 
“Bancos de dados ou bases de dados são um conjunto de arquivos relacionados entre 
si com registros sobre pessoas, lugares ou coisas.” 
Disponível em: https://pt.wikipedia.org/wiki/Banco_de_dados. Acesso em: 13.12.2018 
Quais as 4 propriedades de que depende a integridade de uma transação de banco de 
dados? 
a) Atomicidade, consistência, isolamento e durabilidade. 
b) Relacionamento, consistência, multiplicidade e durabilidade. 
c) Atomicidade, consistência, multiplicidade e durabilidade. 
d) Atomicidade, relacionamento, cardinalidade e durabilidade. 
e) Relacionamento, cardinalidade, multiplicidade e durabilidade. 
 
5. IADES - Analista Legislativo (ALEGO)/Segurança da Informação/2019 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 98 
124 
“[...] ou ela [transação] será executada em sua totalidade ou não será de modo 
nenhum.” 
ELMASRI, R.; NAVATHE, S.B. Sistemas de Banco de Dados. Addison-Wesley, 2005. 
Essa passagem trata de uma importante propriedade de transações em bancos de 
dados. Essa propriedade é a (o) 
a) atenção (do inglês, atention). 
b) atomicidade (do inglês, atomicity). 
c) isolamento (do inglês, isolation). 
d) durabilidade (do inglês, durability). 
e) preservação de consistência (do inglês, consistency preservation). 
 
6. NC-UFPR - Técnico (Pref Matinhos)/Informática/2019 
No modelo transacional, qual é o significado correto das propriedades ACID descritas 
abaixo? 
a) A accuracy (A) avalia a precisão em que os dados são salvos. 
b) Atomicidade (A) assegura que as operações realizadas por uma transação não 
afetem as operações que estão sendo realizadas por outras transações em paralelo. 
c) Consistência (A) assegura que os efeitos de uma transação, em caso de sucesso 
(commit), sejam persistidas no banco de dados, mesmo em caso de quedas de 
energias, falhas de hardware etc. 
d) Isolamento (I) são técnicas que procuram evitar que transações paralelas interfiram 
umas nas outras, permitindo que o resultado de várias transações paralelas seja 
consistido, sendo equivalente à execução dessas mesmas transações de forma 
sequencial. 
e) Durabilidade (D) garante que as transações devem ter todas as suas operações 
executadas e persistidas ou, em caso de falhas, nenhuma modificação reflete sobre a 
base de dados. 
 
7. NC-UFPR - Técnico (UFPR)/Tecnologia da Informação/2019 
Considere as transações representadas abaixo num modelo de concorrência e com 
isolamento transacional: 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 99 
124 
 
Nesse contexto, é correto afirmar: 
a) A execução das transações T1 e T2 apresentam o problema da leitura suja no 
modelo transacional. 
b) A instrução begin apresentada nos tempos 1 e 2 equivale ao comando start 
transaction no MySQL e indica que o conjunto de instruções deverá ser executado 
sequencialmente ou desfeito. 
c) A função de agregação avg apresentada no tempo 3 e 6 falha em função da ausência 
da cláusula “group by”, sendo a transação cancelada. 
d) No nível de isolamento serializable, o comando update constante no tempo 4 falha 
em função de o registro ter sido acessado pela transação T2. 
e) Se o nível de isolamento da transação T2 for read-committed, e o valor do salário 
diferente de 1000 para o funcionário identificado pelo id 2, então é esperado que a 
média calculada seja diferente da média obtida na linha 3. 
 
8. SUGEP - Técnico (UFRPE)/Tecnologia da Informação/Sistemas/2019 
O conceito de transações permite ao projetista modelar uma sequência de operações 
de banco de dados como um único bloco. Desse modo, o usuário tem a percepção de 
que uma única ação foi executada. Nesse contexto, sobre a propriedade do “tudo ou 
nada” (atomicidade), é correto afirmar que se trata: 
a) da capacidade de efetuar a transação completamente, ou, na impossibilidade, 
retroceder para o último estado consistente do banco de dados (prévio à execução da 
transação). 
b) da consistência da base de dados antes e depois da execução da transação. 
c) da independência entre transações distintas que executam concorrentemente. 
d) da capacidade de o banco persistir o resultado da transação, independentemente 
de falhas de hardware ou software que venham a ocorrer durante a execução da 
transação. 
e) da consistência das restrições de integridade definidas no esquema de banco de 
dados. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 100 
124 
 
9. SUGEP - Técnico (UFRPE)/Tecnologia da Informação/Sistemas/2019 
Na operação dos sistemas, diversas transações são executadas de forma concorrente. 
Durante a execução de uma transação, podem ocorrer falhas, de modo que é 
necessário que haja um gerenciamento das transações, tratando aspectos como a 
recuperação do sistema. Nesse contexto, uma falha global pode ser uma falha de 
sistema ou uma falha da mídia. Sobre esse assunto, é correto afirmar que: 
a) quando ocorre uma falha de sistema, apenas a transação de prioridade zero é 
afetada, ficando as demais resguardadas. 
b) quando ocorre uma falha da mídia, ocorrem danos temporários à manipulação dos 
dados afetados. 
c) quando ocorre uma falha de sistema, o conteúdo da memória principal é 
resguardado. 
d) é uma estratégia de recuperação para falha da mídia a recarga ou restauração do 
banco de dados a partir de uma cópia de “backup”. 
e) é uma estratégia de recuperação para falha de sistema a checagem de danos físicos 
ao banco de dados, antes de sua reinicialização. 
 
10. COPERVE-UFSC - Técnico (UFSC)/Tecnologia da Informação/2019 
Com relação a uma transação atômica em um banco de dados, é correto afirmar que: 
a) deve executar com sucesso todas as suas operações ou, em caso de falha, desfazer 
apenas as operações já executadas que causaram a falha. 
b) deve conter apenas operações de leitura. 
c) deve conter uma única operação. 
d) deve executar com sucesso todas as suas operações ou, em caso de falha, deve 
desfazer todas as suas operações já executadas. 
e) pode conter uma ou mais operações sobre uma única tabela. 
 
11. VUNESP - Analista de Sistemas (CM Piracicaba)/2019 
Uma das propriedades básicas de uma transação em um banco de dados relacional é 
a atomicidade, a qual estabelece que 
a) a consistência do banco de dados deve ser preservada por todas as transações. 
b) a transação deve ser executadapor completo ou ser cancelada desde seu início. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 101 
124 
c) deve haver duas cópias referentes aos dados alterados pela transação. 
d) há um limite de operações possíveis de serem executadas em cada transação. 
e) todas alterações resultantes têm um tempo máximo para serem salvas no banco de 
dados. 
 
12. VUNESP - Programador (CM Piracicaba)/2019 
Uma das propriedades básicas de uma transação em um banco de dados relacional 
estabelece que cada transação não deve sofrer interferência de outras transações em 
execução no banco de dados. Essa propriedade denomina-se 
a) durabilidade. 
b) isolamento. 
c) consistência. 
d) integridade. 
e) cardinalidade. 
 
13. CEBRASPE (CESPE) - Assistente Judiciário (TJ AM)/Suporte ao Usuário de 
Informática/2019 
Acerca de sistema gerenciador de banco de dados, do tuning e da segurança em banco 
de dados, julgue o item subsequente. 
Por ser considerada uma ação atômica, a proteção do banco de dados deve ser 
realizada ao nível de tabela, não sendo possível, por exemplo, realizar a proteção de 
uma tupla inteira ou de parte da tupla. 
 
14. FCC - Técnico Judiciário (TRF 3ª Região)/Apoio Especializado/Informática/2019 
Em Gerenciamento de Transações, as quatro propriedades que garantem uma 
transação são: 
a) Atualização, Completeza, Durabilidade e Isolamento. 
b) Atomicidade, Completeza, Durabilidade e Delegação. 
c) Atualização, Consistência, Durabilidade e Integração. 
d) Atomicidade, Consistência, Durabilidade e Isolamento. 
e) Atualização, Criação, Inserção e Exclusão. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 102 
124 
 
15. FCC - Analista em Gestão (DPE AM)/Especializado em Tecnologia da 
Informação de Defensoria/Analista de Banco de Dados/2018 
Uma das propriedades conhecidas em bancos de dados relacionais como ACID é a 
durabilidade, segundo a qual, em uma transação completada com sucesso, todas as 
atualizações feitas no banco de dados por essa transação devem persistir 
a) com exceção da ocorrência de falhas na memória do servidor de banco de dados. 
b) mesmo na ocorrência de falhas no sistema de banco de dados, após o término da 
transação. 
c) a menos que ocorra uma falha no servidor em até 1 segundo, após o término da 
transação. 
d) exceto se houver outras transações em execução no momento da falha. 
e) com exceção da ocorrência de falhas no barramento de dados do servidor do banco 
de dados. 
 
16. FCC - Analista em Gestão (DPE AM)/Especializado em Tecnologia da 
Informação de Defensoria/Analista de Banco de Dados/2018 
Bloqueios constituem uma técnica bastante utilizada em sistemas de bancos de dados 
relacionais. É correto afirmar que 
a) quando uma transação obtém um bloqueio do tipo compartilhado sobre um item de 
dados, pode escrever mas não ler sobre esse item. 
b) no protocolo de bloqueio em duas fases, na fase de encolhimento, uma transação 
pode obter novos bloqueios. 
c) no protocolo de bloqueio em duas fases, na fase de crescimento, uma transação 
pode liberar e também obter novos bloqueios. 
d) quando uma transação obtém um bloqueio do tipo exclusivo sobre um item de 
dados, pode ler e escrever sobre esse item. 
e) no protocolo de bloqueio em duas fases, na fase de crescimento, uma transação 
pode liberar, mas não obter novos bloqueios. 
 
17. FGV - Analista de Políticas Públicas e Gestão Governamental (CGM 
Niterói)/Gestão de Tecnologia/2018 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 103 
124 
Considere um banco de dados onde duas transações, t1 e t2, são executadas 
concorrentemente. A primeira, t1, debita R$ 100,00 de uma conta corrente, e a 
segunda, t2, debita R$ 200,00 da mesma conta. Não há uma ordem de execução 
definida para as transações. 
Suponha que cada uma das transações execute duas operações: leitura seguida de 
gravação. Essas operações são representadas como tx(r) para leitura e tx(w) para 
gravação. 
Considere, ainda, os seguintes escalonamentos das operações de t1 e t2. 
I. t1(r), t1(w), t2(r), t2(w) 
II. t2(r), t2(w), t1(r), t1(w) 
III. t2(r), t1(r), t1(w), t2(w) 
IV. t2(r), t1(r), t2(w), t1(w) 
Sobre a adequação desses escalonamentos com vistas à manutenção da integridade 
do banco dados, assinale a afirmativa correta. 
a) Somente I é adequado. 
b) Somente I e II são adequados. 
c) Somente III é adequado. 
d) Somente I e III são adequados. 
e) Todos são adequados. 
 
18. CESGRANRIO - Analista de Sistemas Júnior (TRANSPETRO)/ Infraestrutura 
/2018 
O padrão ANSI/ISO SQL define três níveis de isolamento que permitem a ocorrência 
de violações do tipo leitura fantasma. Esses três níveis são 
a) READ UNCOMMITTED, READ COMMITTED e REPEATABLE READ 
b) READ UNCOMMITTED, READ COMMITTED e SERIALIZABLE 
c) READ UNCOMMITTED, REPEATABLE READ e SERIALIZABLE 
d) READ COMMITTED, REPEATABLE READ e SNAPSHOT 
e) REPEATABLE READ, SNAPSHOT e SERIALIZABLE 
 
19. NUCEPE UESPI - Perito (PC PI)/Criminal/Informática/2018 
Sobre as transações características dos bancos de dados, seguem-se três afirmações: 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 104 
124 
I. O acrônimo ACID (Atomicidade, Consistência, Integridade e Durabilidade) são 
características de uma transação SQL; 
II. Uma transação em SQL precisa terminar com uma efetivação ou com uma reversão, 
essas operações em SQL correspondem respectivamente aos comandos Commit e 
Rollback; 
III. Em SQL pode-se configurar o nível de transações que podem ser processadas 
simultaneamente. O comando set transaction configura níveis de isolamento como, por 
exemplo, read committed e serializable. 
Está CORRETO apenas o que se afirma em: 
a) I e II. 
b) II. 
c) II e III. 
d) I. 
e) I e III. 
 
20. FGV - Analista do Ministério Público (MPE AL)/Administrador de Banco de 
Dados/2018 
Na teoria de bancos de dados, uma transação é um conjunto de operações cujo 
processamento respeita as propriedades de atomicidade, consistência, isolamento e 
durabilidade. 
 
Em sistemas não distribuídos, a propriedade “durabilidade” é usualmente 
implementada por meio de 
a) algoritmos two-phase commitment. 
b) algoritmos two-phase lock. 
c) arquivos de log que provêm redundância. 
d) pela combinação de operações de rollback e commit. 
e) serialização de operações no controle de concorrência. 
 
21. FAURGS - Técnico de Tecnologia da Informação (BANRISUL)/Administração de 
Bancos de Dados/2018 
A recuperação de falhas de transação significa que o banco de dados é restaurado ao 
estado consistente mais recente antes da falha. A recuperação é dependente de 
técnicas de atualização da base de dados ao longo das transações: adiada (quando 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 105 
124 
não atualizam fisicamente o banco de dados até o ponto de confirmação – commit) ou 
imediata (que pode atualizar a base de dados antes do ponto de confirmação). 
Considere as afirmações abaixo sobre técnicas de recuperação de falhas de transação 
não catastróficas. 
I - Baseiam-se em informações sobre as mudanças que foram aplicadas aos itens de 
dados pelasdiversas transações, tipicamente mantidas em um log de sistema. 
II - Em caso de falhas em atualização adiada, como nenhuma alteração foi 
efetivamente feita na base de dados, este tipo de recuperação é chamado de No-
Undo/No-Redo. 
III - A técnica denominada Undo/No-Redo é usada para recuperação de falhas em 
atualização imediata e requer o uso da estratégia force para decidir quando os buffers 
atualizados da memória principal são gravados de volta no disco. 
IV - A técnica denominada Undo/Redo é outra alternativa para recuperação de falhas 
em atualização imediata. É necessária quando o ponto de confirmação foi atingido, 
mas não há garantias de que todas as mudanças tenham sido gravadas em disco. Isto 
é resultado da adoção da estratégia steal/no-force. 
Quais estão corretas? 
a) Apenas I e III. 
b) Apenas I, II e III. 
c) Apenas I, III e IV. 
d) Apenas II, III e IV. 
e) I, II, III e IV. 
 
22. FGV - Analista Legislativo (ALERO)/Tecnologia da Informação/Análise e 
Desenvolvimento de Sistemas/2018 
No contexto das propriedades desejadas para transações executadas em banco de 
dados relacionais, é possível que, eventualmente, seja permitida ou forçada a leitura 
de dados que foram modificados em operações ainda não confirmadas (comitted). 
Assinale a principal propriedade que é flexibilizada na ocorrência de um dirty read. 
a) Atomicidade. 
b) Consistência. 
c) Durabilidade. 
d) Integridade referencial. 
e) Isolamento. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 106 
124 
 
23. FGV - Analista Legislativo (ALERO)/Tecnologia da Informação/Banco de 
Dados/2018 
Assinale a opção que indica a técnica que é frequentemente utilizada pelos 
gerenciadores de bancos de dados para a garantia da propriedade de isolamento das 
transações. 
a) Dirty read. 
b) Lazy evaluation. 
c) Redundância de dados. 
d) Two-phase commit. 
e) Two-phase lock. 
 
24. Ano: 2018 Banca: CESPE Órgão: STJ Cargo: Técnico Judiciário – Suporte 
Técnico 
Acerca de banco de dados, julgue os itens que se seguem. 
74 Os protocolos de bloqueio em um banco de dados podem bloquear todas as tabelas, 
apenas a tabela afetada ou apenas os dados que são manipulados durante a 
transação. 
 
25. Ano: 2016 Órgão: TRF-SP Cargo: Técnico Judiciário de TI – Questão 66 
Após receber permissão para alterar os dados dos registros contidos na tabela 
Processo, o usuário Paulo inseriu diversos registros utilizando a instrução INSERT e 
em seguida constatou, por meio da instrução SELECT, que estes dados foram 
inseridos adequadamente. Porém, outros usuários que acessam a tabela não 
visualizarão os dados inseridos por Paulo até que ele execute o comando: 
(A) commit 
(B) refresh 
(C) end transaction 
(D) endpoint 
(E) close section 
 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 107 
124 
26. ANO: 2013 BANCA: CETRO ÓRGÃO: ANVISA CARGO: ANALISTA 
ADMINISTRATIVO - ÁREA 5 
Em relação às transações em banco de dados, assinale a alternativa correta. 
A) Os esquemas de bloqueio podem ser descritos como otimistas, pois fazem a 
suposição do melhor caso possível. 
B) Para os fragmentos de dados muito pequenos, não é necessário supor acesso 
concorrente, nem há necessidade de bloqueio. 
C) Esquemas de validação ou certificação fazem a suposição de que os conflitos 
provavelmente serão bastante raros na prática, fazendo as verificações se ocorreu 
algum conflito somente no momento do COMMIT. 
D) Esquemas de bloqueio otimistas não fazem verificação da existência de conflitos 
em nenhuma fase da transação. 
E) Os esquemas otimistas devem ser evitados em sistemas com grande número de 
processadores paralelos. 
 
27. ANO: 2013 BANCA: CETRO ÓRGÃO: ANVISA CARGO: ANALISTA 
ADMINISTRATIVO - ÁREA 5 
Assinale a alternativa que apresenta apenas problemas de concorrência em bancos de 
dados que podem ser reduzidos a um deadlock como uma etapa da solução. 
A) Problema da atualização perdida e problema da dependência sem COMMIT. 
B) Problema da análise inconsistente e problema da atualização. 
C) Problema da análise inconsistente e problema da dependência sem COMMIT. 
D) Problema da análise inconsistente, problema da atualização perdida e problema da 
dependência sem COMMIT. 
E) Problema da dependência com COMMIT e problema da atualização perdida. 
 
28. ANO: 2013 BANCA: CETRO ÓRGÃO: ANVISA CARGO: ANALISTA 
ADMINISTRATIVO - ÁREA 5 
Leia as afirmações abaixo relativas a banco de dados que consideram a transação 
“Somente Leitura” na técnica de controle de concorrência conhecida como Leitura 
Multiversão. 
I. Nunca retarda as atualizações. 
II. Nunca necessita efetuar o rollback. 
III. Nunca é retardada por outra transação. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 108 
124 
É correto o que se afirma em: 
A) I e III, apenas. 
B) I e II, apenas. 
C) II e III, apenas. 
D) I, II e III. 
E) II, apenas. 
 
29. Ano: 2015 Banca: FGV Órgão: TJ-PI Cargo: Analista Judiciário 
Das propriedades desejadas nas implementações de bancos dedados, designadas 
pelo acrônimo ACID, o “D” de durabilidade é extremamente importante porque trata da 
persistência dos dados mesmo no caso de falhas graves. Usualmente, a técnica 
empregada para garantir essa propriedade baseia-se na utilização de: 
A) algoritmos de controle de concorrência; 
B) comandos de commit e rollback; 
C) chaves estrangeiras e outras cláusulas que possam prevenir os erros mais comuns; 
D) redundância de dados; 
E) sistemas distribuídos. 
 
30. Ano: 2015 Banca: FGV Órgão: TJ-PI Cargo: Analista Judiciário 
Transações de bancos de dados não distribuídos devem possuir propriedades que 
garantam a integridade dos dados quando da realização das operações que as 
compõem. Se nem todas as operações da transação forem realizadas, poderá haver 
um conflito de integridade nos dados. Esse tipo de problema é usualmente contornado 
pelos programadores com o uso de operações complementares do tipo: 
A) sync point; 
B) backup diferencial e backup completo; 
C) begin transaction, commit, rollback; 
D) bloqueio de recursos; 
E) livelock e deadlock. 
Comentário: Para obtermos um certo controle sobre os estados de cada transação é 
necessário, implícita ou explicitamente, temos pontos de controle que delimitam as 
operações e garante as propriedades de consistência e atomicidade. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 109 
124 
 
31. Ano: 2015 Banca: FGV Órgão: TJ-PI Cargo: Analista Judiciário 
O uso de transações distribuídas em bancos de dados introduz o problema da 
manutenção da propriedade da atomicidade para essas transações. Se uma transação 
depende de operações que devem ocorrer em dois ou mais nós distintos, é necessário 
que o sucesso ou falha dessas operações possa ser percebido por todos os nós 
participantes. 
Um dos algoritmos mais utilizados para a implementação de transações dessa 
natureza é: 
A) Sync-lock; 
B) SyncPoint; 
C) Undo-Redo. 
D) 2-phase lock; 
E) 2-phase commitment; 
 
32. Ano: 2014 Banca: FGV Órgão: Câmara Municipal do Recife-PE Cargo: 
Programador de computador 
Sistemas gerenciadores de bancos de dados processam requisições em paralelo que, 
quando operam sobre as mesmas instâncias de dados, podem provocar erros do tipo 
lost update e dirty read. Usualmente, o controle de concorrência nessessistemas 
segue um mecanismo conhecido como: 
A) Two phase commitment; 
B) Check point; 
C) Snapshot; 
D) Two phase lock; 
E) Data Independence. 
 
33. Ano: 2015 Banca: FGV Órgão: TJ-RO Cargo: Analista de Sistemas 
No contexto de banco de dados relacionais, a transação T executa as seguintes 
operações: 
O1 - Lê o saldo de uma conta x; 
O2 - Subtrai uma quantia desse saldo; 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 110 
124 
O3 - Grava esse saldo recalculado. 
O saldo da conta está gravado em um único registro de uma tabela. Suponha que T 
esteja sendo executada por dois processos diferentes, P1 e P2, em paralelo. P1 deve 
retirar R$ 10,00 da conta 2345 e P2, R$ 30,00 da mesma conta. 
Considerando que as operações podem ser realizadas em diferentes ordens, analise 
as possíveis sequências de execução dessas operações, mostradas a seguir. 
I. P2 processa O1; P2 processa O2; P2 processa O3; P1 processa O1; P1 processa 
O2; P1 processa O3; 
II. P1 processa O1; P1 processa O2; P1 processa O3; P2 processa O1; P2 processa 
O2; P2 processa O3; 
III. P1 processa O1; P1 processa O2; P2 processa O1; P1 processa O3; P2 processa 
O2; P2 processa O3; 
IV. P1 processa O1; P2 processa O1; P1 processa O2; P2 processa O2; P1 processa 
O3; P2 processa O3. 
As únicas sequências que podem ser admitidas pelo controle de concorrência, de 
modo a não introduzir erros no saldo final da conta, são: 
A) I e II; 
B) I e III; 
C) II e III; 
D) II e IV; 
E) III e IV. 
 
34. Ano: 2015 Banca: FGV Órgão: DPE-MT Cargo: Analista - Análise de Sistemas 
Um dos requisitos observados pelos sistemas gerenciadores de bancos de dados é a 
garantia da durabilidade de uma transação. Se um conjunto de operações tiver sido 
confirmado (commited), o sistema deve manter esse resultado no caso de recuperação 
de falhas, mesmo quando há perda de dados. 
Assinale a opção que indica a característica principal da técnica comumente usada 
para a obtenção dessa garantia nas implementações. 
A) Algoritmos de bloqueio 
B) Arquivos de log 
C) Backup diferencial 
D) Replicação de banco de dados 
E) Serialização 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 111 
124 
 
35. ANO: 2015 BANCA: FGV ÓRGÃO: TJ-SC PROVA: ANALISTA JUDICIÁRIO - 
ANALISTA DE SISTEMAS 
ACID é uma conhecida sigla do jargão da área de banco de dados, e refere-se às 
propriedades que as transações executadas por um sistema gerenciador devem 
observar. A letra ”I” nessa sigla está associada ao algoritmo: 
A de “undo/redo” sobre arquivos de log; 
B shadow paging; 
C write-ahead logging; 
D two-phase lock; 
E two-phase commitment. 
 
36. Ano: 2015 Banca: FGV Órgão: TJ-BA Cargo: Analista Judiciário - Tecnologia da 
Informação 
Transações distribuídas em bancos de dados são caracterizadas pela participação de 
dois ou mais hosts ligados em rede. Um dos problemas para sua implementação é a 
garantia de que cada participante faça a sua parte, de modo que uma transação seja 
corretamente completada. Um algoritmo usualmente utilizado nesse contexto é: 
A) Open Data Base Connection; 
B) Dynamic Serializability; 
C) Two phase commitment; 
D) Compensating transactions; 
E) Two phase lock. 
 
37. Ano: 2014 Banca: FGV Órgão: PROCEMPA Cargo: Analista de Tecnologia da 
Informação e Comunicação I 
A ideia do uso da serialização (serializable isolation) para conflitos entre transações 
concorrentes em um banco de dados está baseada no aumento do throughput em 
ambientes em que a probabilidade de conflito é pequena. 
Uma transação T1 serializável gera um erro de conflito quando há uma tentativa de 
A) leitura sobre um registro que foi modificado, mas não confirmado por uma transação 
T2, anterior a T1. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 112 
124 
B) leitura sobre um registro que foi modificado, mas não confirmado por uma transação 
T2, posterior a T1. 
C) leitura sobre um registro que foi modificado e confirmado por uma transação T2, 
anterior a T1. 
D) escrita ou remoção sobre um registro que foi modificado e confirmado por uma 
transação T2, posterior a T1. 
E) escrita ou remoção sobre um registro que foi modificado e confirmado por uma 
transação T2, anterior a T1. 
 
38. Ano: 2014 Banca: FGV Órgão: PROCEMPA Cargo: Analista de Tecnologia da 
Informação e Comunicação I 
Na implementação do controle de concorrência na execução de transações 
concomitantes de bancos, o dirty read é um dos fenômenos a evitar. 
Essa situação caracteriza-se sempre que 
A) uma transação lê dados gravados num dispositivo de armazenamento com defeito. 
B) uma transação grava dados gravados por outra transação que já foi confirmada 
(committed). 
C) uma transação lê dados gravados por outra transação que ainda não foi confirmada 
(committed). 
D) uma operação de leitura falha porque a tabela ao qual pertence está bloqueada. 
E) uma operação de leitura falha por falta de permissão. 
 
39. Ano: 2014 Banca: FGV Órgão: PROCEMPA Cargo: Analista de Tecnologia da 
Informação e Comunicação I 
Considere uma transação de banco de dados que transfere uma quantia X de uma 
conta A para outra, B. A transação consiste em uma leitura e gravação de A, seguida 
da leitura e gravação de B. Admita que o programador construiu seu programa 
corretamente. 
Caso ocorra algum tipo de erro nas operações sobre B, interrompendo o curso normal 
da transação, o sistema gerenciador do banco de dados deve agir para corrigir a 
situação e garantir que as propriedades da transação sejam respeitadas. 
A propriedade resguardada, nesse caso, é conhecida como 
A) atomicidade. 
B) consistência. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 113 
124 
C) durabilidade. 
D) isolamento. 
E) independência de dados 
 
40. Ano: 2014 Banca: FGV Órgão: DPE-RJ Cargo: Técnico Superior Especializado - 
Administração de Dados 
O controle de concorrência para transações de banco de dados que garante que 
resultados intermediários de uma transação T não afetem outras transações até que T 
tenha sido totalmente executada, ou rejeitada, é usualmente implementado em bancos 
de dados por meio de 
A) arquivos de log. 
B) bloqueio (lock e unlock). 
C) check points. 
D) replicação. 
E) two-phase commitment. 
 
41. Ano: 2010 Banca: FGV Órgão: CODESP-SP Cargo: Analista de Sistemas 
Em bancos de dados, uma transação é uma unidade lógica de trabalho, começando 
com a operação BEGIN TRANSACTION e terminando conforme descrito a seguir: 
I. Com uma operação específica, que indica o término bem-sucedido da transação. 
Ela informa ao gerenciador de transações que uma unidade lógica de trabalho foi 
concluída com sucesso, que o BD está novamente em estado correto e que todas as 
atualizações foram feitas por essa unidade de trabalho e podem ser gravadas no banco 
de dados. 
II. Com uma operação específica, que indica o término malsucedido da transação. 
Ela informa ao gerenciador de transações que algo saiu errado, que o BD pode estar 
em um estado incorreto, e que todas as transações feitas pela unidade lógica de 
trabalho até o momento devem ser desfeitas. 
Essas operações são denominadas, respectivamente, 
A) SUCCESS e ROLLBACK. 
B) SUCCESS e RECOVER. 
C) COMMIT e ABORT. 
D) COMMIT e RECOVER. 
E) COMMIT e ROLLBACK. 
Equipe de TI do Estratégia Concursos, Thiago RodriguesCavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 114 
124 
 
42. Ano: 2010 Banca: FGV Órgão: BADESC Cargo: Analista de Sistemas 
Assinale a alternativa que indique três maneiras diferentes em que uma transação 
possa ser violada. 
A) Leitura suja, leitura repetível e fantasmas. 
B) Leitura suja, leitura não repetível e fantasmas. 
C) Sem leitura suja, leitura não repetível e fantasmas. 
D) Leitura suja, leitura não repetível e sem fantasmas. 
E) Sem leitura suja, leitura repetível e sem fantasmas. 
 
43. Ano: 2010 Banca: FGV Órgão: BADESC Cargo: Analista de Sistemas 
O nível de consistência especificado na SQL-92, também denominado de níveis de 
isolamento, fornece à SQL, em execução concorrente, garantias quanto à interferência 
ou quanto à ausência de interferência entre transações. 
A SQL possui a instrução set transaction que é aplicada para definir características da 
transação a ser iniciada. 
Assinale a alternativa que indique os seguintes níveis possíveis destas características. 
A) serializable, repeatable read, read committed e committable. 
B) serializable, repeatable read, committable e read uncommitted. 
C) serializable, committable, read committed e read uncommitted. 
D) committable, repeatable read, read committed e read uncommitted. 
E) serializable, repeatable read, read committed e read uncommitted. 
 
44. Ano: 2010 Banca: FGV Órgão: BADESC Cargo: Analista de Sistemas 
Analise o seguinte conceito. 
"Situação que dois ou mais usuários (ou processos) se autobloqueiam devido a não 
liberação de recursos concorrentes, onde, cada um, separadamente, espera 
indefinidamente que o outro finalize o processamento, criando um impasse. Portanto, 
é uma situação em que duas ou mais transações se encontram em estado de espera 
simultânea, cada uma esperando que uma outra finalize o processamento para poder 
prosseguir". 
A denominação desse conceito e o termo técnico que o provoca são, respectivamente: 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 115 
124 
A) deadlock e bloqueio. 
B) bloqueio e deadlock. 
C) bloqueio e inconsistência. 
D) inconsistência e bloqueio. 
E) deadlock e inconsistência. 
 
45. Ano: 2010 Banca: FGV Órgão: BADESC Cargo: Analista de Sistemas 
A propriedade de uma transação denominada de ACID envolve os seguintes conceitos: 
A) Atômico, Concorrente, Isolamento e Durabilidade. 
B) Atomicidade, Consistência, Isolamento e Durabilidade. 
C) Atomicidade, Concorrente, Inconsistente e Durabilidade. 
D) Atomicidade, Consistência, Integridade e Dependência de dados. 
E) Atomicidade, Consistência, Isolamento e Dependência de dados. 
 
46. Ano: 2009 Banca: FGV Órgão: MEC Cargo: Administrador de banco de dados 
Para garantir o controle de concorrência e, consequentemente a consistência dos 
dados, o PostgreSQL utiliza o modelo MVCC (Multi Version Concurrency Control). 
A respeito desse modelo NÃO é correto afirmar que: 
A) a leitura nunca bloqueia a escrita. 
B) a escrita nunca bloqueia a leitura. 
C) cada transação enxerga um snapshot dos dados. 
D) impede que a transação enxergue dados inconsistentes. 
E) considera o estado concorrente dos dados provocados pelas demais transações. 
 
47. Ano: 2009 Banca: FGV Órgão: MEC Cargo: Administrador de banco de dados 
No que diz respeito ao acesso a banco de dados em Java, o controle de transações 
pode ser feito por funções. Assim, para confirmar uma transação no BD e para cancelar 
as alterações da transação, são utilizadas, respectivamente, as seguintes funções: 
A) commit() e recovery() 
B) confirm() e rollback() 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 116 
124 
C) commit() e cancel() 
D) confirm() e cancel() 
E) commit() e rollback() 
 
48. Ano: 2010 Banca: FGV Órgão: BADESC Cargo: Analista de Sistemas 
Acerca das transações realizadas em um Banco de Dados, assinale a afirmativa 
INCORRETA. 
A) As transações controlam melhor apenas a concorrência. 
B) As transações são unidades lógicas de trabalho numa aplicação. 
C) A base de dados está em um estado consistente antes e depois de uma transação. 
D) As transações de diferentes usuários que envolvem dados compartilhados são 
executadas em sequência. 
E) Um mecanismo de transação garante que toda transação iniciada termine com 
sucesso ou é desfeita. 
 
49. ANO: 2015 BANCA: MP-RS ÓRGÃO: MP-RS PROVA: TÉCNICO EM 
INFORMÁTICA - SISTEMAS 
Uma falha não pode deixar o banco de dados em um estado no qual uma transação 
tenha sido parcialmente executada. Qual é a propriedade que garante que todos os 
efeitos de uma transação se refletirão no banco de dados? 
A Consistência. 
B Isolamento. 
C Atomicidade. 
D Durabilidade. 
E Redundância. 
 
50. ANO: 2015 BANCA: UERJ ÓRGÃO: UERJ PROVA: ANALISTA DE SISTEMAS - 
DESENVOLVIMENTO 
Das propriedades ACID, a que está ligada à serialização de transações é: 
A atomicidade 
B consistência 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 117 
124 
C isolamento 
D durabilidade 
 
51. ANO: 2015 BANCA: UERJ ÓRGÃO: UERJ PROVA: ANALISTA DE SISTEMAS - 
DESENVOLVIMENTO 
Dos níveis de isolamento definidos pela SQL, aquele em que não pode ocorrer o 
fenômeno “leitura fantasma” é: 
A READ UNCOMMITTED 
B REPEATABLE READ 
C READ COMMITTED 
D SERIALIZABLE 
 
52. ANO: 2015 BANCA: CESPE ÓRGÃO: MPOG PROVA: ANALISTA - ANALISTA EM 
TECNOLOGIA DA INFORMAÇÃO 
Acerca de sistema de gerenciamento de banco de dados (SGBD), julgue os seguintes 
itens. 
[1] Os dados armazenados em um SGBD são acessados por um único usuário de cada 
vez, sendo impedido o acesso concorrente aos dados. 
 
53. ANO: 2014 BANCA: VUNESP ÓRGÃO: DESENVOLVESP PROVA: ANALISTA - 
ANALISTA DE SISTEMAS 
Assinale a alternativa correta com relação aos bloqueios, utilizados para implementar 
a concorrência em bancos de dados relacionais. 
A Bloqueios dos tipos compartilhado e exclusivo aplicam-se apenas a bancos de dados 
distribuídos. 
B Bloqueios dos tipos compartilhado e exclusivo aplicam-se apenas a tabelas com mais 
de 100 registros. 
C Uma transação que tenha obtido um bloqueio do tipo compartilhado sobre um item 
pode ler e escrever sobre tal item. 
D Uma transação que tenha obtido um bloqueio do tipo compartilhado sobre um item 
pode ler, mas não escrever sobre tal item. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 118 
124 
E Uma transação que tenha obtido um bloqueio do tipo exclusivo sobre um item pode 
ler, mas não escrever sobre tal item. 
 
54. ANO: 2014 BANCA: VUNESP ÓRGÃO: TJ-PA PROVA: ANALISTA JUDICIÁRIO - 
ANÁLISE DE SISTEMA - SUPORTE 
Uma das formas de se implementar um controle para o acesso concorrente de usuários 
a um banco de dados é por meio da utilização de bloqueios, sobre os quais é correto 
afirmar que 
A bloqueios do tipo compartilhado não permitem o acesso simultâneo de mais do que 
um usuário. 
B bloqueios do tipo exclusivo não permitem o acesso simultâneo de mais do que um 
usuário. 
C em um bloqueio do tipo exclusivo é possível apenas ler o conteúdo do item de dados 
bloqueado. 
D um bloqueio do tipo exclusivo só é removido quando o banco de dados é desativado. 
E em um bloqueio do tipo compartilhado é possível ler e escrever sobre o conteúdodo 
item de dados bloqueado. 
 
55. ANO: 2014 BANCA: CESPE ÓRGÃO: TC-DF PROVA: ANALISTA DE 
ADMINISTRAÇÃO PÚBLICA - SISTEMAS DE TECNOLOGIA DA INFORMAÇÃO 
Julgue os itens subsequentes, no que se refere a bancos de dados distribuídos e data 
warehouse. 
[1] Em sistemas de bancos de dados distribuídos, o controle de concorrência baseado 
em bloqueio de duas fases determina que, após a liberação de um de seus bloqueios, 
as transações não solicitem um novo bloqueio. 
 
56. ANO: 2014 BANCA: CESPE ÓRGÃO: TJ-SE PROVA: ANALISTA JUDICIÁRIO - 
ANALISTA DE SISTEMAS 
[1] O Oracle utiliza um protocolo de confirmação em duas fases para lidar com 
transações distribuídas concorrentes. 
 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 119 
124 
57. ANO: 2015 BANCA: FCC ÓRGÃO: MANAUSPREV PROVA: ANALISTA 
PREVIDENCIÁRIO - TECNOLOGIA DA INFORMAÇÃO 
Uma transação é uma unidade atômica de trabalho que ou estará completa ou não foi 
realizada. Para propostas de restauração, o administrador de restaurações mantém o 
controle das seguintes operações: 
− BEGIN_TRANSACTION: Marca o início da execução da transação. 
− READ ou WRITE: Especifica operações de leitura ou gravação em itens do banco de 
dados, que são executadas como parte de uma transação. 
I. Especifica que as operações READ e WRITE da transação terminaram e marca o 
fim da execução da transação. Entretanto, nesse ponto é necessário verificar se as 
mudanças introduzidas pela transação podem ser permanentemente aplicadas ao 
banco de dados (efetivadas), ou se a transação deverá ser abortada porque viola a 
serialização, ou por alguma outra razão. 
II. Indica término com sucesso da transação, de forma que quaisquer alterações 
(atualizações) executadas poderão ser seguramente efetivadas no banco de dados e 
não serão desfeitas. 
III. Indica que uma transação não terminou com sucesso, de forma que quaisquer 
mudanças ou efeitos que a transação possa ter aplicado ao banco de dados deverão 
ser desfeitas. 
As operações I, II e III correspondem, correta e respectivamente, a: 
A FINISH; ROLLBACK; COMMIT. 
B END_TRANSACTION; SUCCESSFUL_TRANSACTION; 
UNSUCCESSFUL_TRANSACTION. 
C END_TRANSACTION; COMMIT_TRANSACTION; ROLLBACK. 
D STOP_TRANSACTION; GO_TRANSACTION; BACK_TRANSACTION. 
E STOP; COMMIT; ROLLBACK. 
 
58. CESPE - 2009 - ANAC - Analista Administrativo - Tecnologia da Informação 
[70] Para o SGBD viabilizar a execução de transações concomitantemente existem 
diversas técnicas de controle de concorrência que são utilizadas para garantir 
propriedade de não-interferência ou isolamento de transações. Uma dessas técnicas 
é o controle de concorrência baseado em ordenamento de registro de timestamp que 
utiliza o bloqueio combinado com o Protocol Two-Phase locking (2PL). 
 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 120 
124 
59. ANO: 2014 BANCA: FCC ÓRGÃO: TJ-AP PROVA: ANALISTA JUDICIÁRIO - 
BANCO DE DADOS - DBA 
Considerando o controle de concorrência em bancos de dados, há diversos protocolos 
que podem ser utilizados. Dentre eles há o denominado bloqueio de duas fases. Em 
uma dessas fases, uma transação pode liberar bloqueios, porém não pode obter novos 
bloqueios. Tal fase denomina-se 
A crescimento. 
B normalização. 
C encolhimento. 
D validação. 
E granulação. 
 
60. ANO: 2014 BANCA: VUNESP ÓRGÃO: TCE-SP PROVA: AGENTE DA 
FISCALIZAÇÃO FINANCEIRA - SISTEMAS, GESTÃO DE PROJETOS E 
GOVERNANÇA DE TI 
Sistemas de gerenciamento de bancos de dados relacionais podem utilizar o 
mecanismo de bloqueio de itens de dados. O tipo de bloqueio que pode realizar leitura 
sobre um item de dados, mas não escrever sobre ele, é denominado 
A compartilhado. 
B classificado. 
C estruturado. 
D protocolar. 
E verificado. 
 
61. Ano: 2014 Banca: FCC Órgão: TJ-AP Prova: Analista Judiciário - Banco de 
Dados - DBA 
Uma propriedade importante quando se considera a recuperação de um banco de 
dados é constituída pelos chamados pontos de verificação (checkpoints). Um 
checkpoint consiste de um registro, cuja função é indicar que 
A o banco de dados sofreu uma paralisação programada para manutenção. 
B houve uma falha no conjunto de discos utilizado para armazenamento dos dados. 
C houve uma falha de comunicação entre as máquinas servidora e cliente. 
D o banco de dados passou por uma operação de backup completo. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 121 
124 
E todas as transações encerradas anteriormente ao checkpoint já foram confirmadas. 
 
62. Ano: 2014 Banca: UFG Órgão: UEAP Prova: Analista de TI - Banco de Dados 
As operações refazer (REDO) e desfazer (UNDO) são usadas no processo de 
recuperação de banco de dados. Na recuperação baseada em atualização adiada, os 
dados atualizados por uma transação não podem ser gravados no banco de dados 
antes do commit da transação. O algoritmo para esse tipo de recuperação é 
denominado 
A UNDO/REDO. 
B UNDO/NO-REDO. 
C NO-UNDO/NO-REDO. 
D NO-UNDO/REDO. 
 
63. Ano: 2010 Banca: FCC Órgão: TCE-SP Prova: Agente da Fiscalização 
Financeira - Produção e Banco de Dados 
Tratando-se do algoritmo ARIES, quando o gerenciador de recuperação é invocado 
após uma falha, o reinício se procede em fases. A identificação das páginas sujas no 
buffer pool e das transações ativas no momento da falha pertence à fase de 
A preempção. 
B refazer. 
C lock. 
D análise. 
E correção. 
 
64. Ano: 2010 Banca: FCC Órgão: TCE-SP Prova: Agente da Fiscalização Financeira 
- Produção e Banco de Dados 
As fases de operação do algoritmo ARIES são em número de 
A 1 
B 2 
C 3 
D 4 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 122 
124 
E 5 
 
65. Ano: 2010 Banca: FCC Órgão: TCE-SP Prova: Agente da Fiscalização 
Financeira - Produção e Banco de Dados 
O sistema ARIES é considerado um adequado mecanismo de recuperação de BD, pois 
I. fornece alto grau de paralelismo. 
II. usa a abordagem não-tomar-memória e forçar escrita. 
III. reduz a sobrecarga na operação de registro no histórico-de-ocorrências. 
IV. minimiza o tempo de recuperação. 
Está correto o que consta em 
A I e II, apenas. 
B I e III, apenas. 
C I, III e IV, apenas. 
D II, III e IV, apenas. 
E I, II, III e IV. 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
 
 123 
124 
GABARITO 
 
1. B 
2. E 
3. D 
4. A 
5. B 
6. D 
7. E 
8. A 
9. D 
10. D 
11. B 
12. B 
13. E 
14. D 
15. B 
16. D 
17. B 
18. A 
19. C 
20. C 
21. C 
22. E 
23. E 
24. C 
25. C 
26. C 
27. B 
28. D 
29. D 
30. C 
31. E 
32. D 
33. A 
34. B 
35. D 
36. C 
37. D 
38. C 
39. A 
40. B 
41. E 
42. B 
43. E 
44. A 
45. B 
46. E 
47. E 
48. A 
49. C 
50. C 
51. D 
52. E 
53. D 
54. B 
55. C 
56. C 
57. C 
58. E 
59. C 
60. A 
61. E 
62. D 
63. D 
64. C 
65. C 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118
 
 
 
 
CONSIDERAÇÕES FINAIS 
 
Chegamos ao final da nossa aula onde abordamos os assuntos relacionados 
a transações e controlede concorrência. Falamos ainda sobre o log de transações 
e protocolos de bloqueio. Por fim, tivemos uma apresentação dos conceitos 
relacionados a recuperação após falha. 
 
Esperamos que você tenha gostado e aprendido bastante sobre o assunto. 
 
Até a próxima! 
 
Thiago Cavalcanti 
 
Equipe de TI do Estratégia Concursos, Thiago Rodrigues Cavalcanti
Aula 04
Banco de Dados p/ Polícia Federal (Perito - Área 3 - Tecnologia da Informação) - 2020
www.estrategiaconcursos.com.br
1265118

Mais conteúdos dessa disciplina