Um SGBD normalmente suporta a concorrência, ou seja, vários usuários podem acessar
simultaneamente um mesmo banco de dados, podendo gerar várias transações simultâneas. De
forma a prevenir a perda de consistência do banco de dados, há um mecanismo nos SGBD de dados
que visa prevenir esse tipo de problema, garantindo acessos exclusivos a certos tipos de itens de
dados. Esse mecanismo é conhecido como
a) bloqueio.
b) trigger.
c) hierarquia.
d) ad-hoc.
e) deadlock.
Na empresa HIGH_TEC_STE Consultoria & Projetos, o funcionário João Salles, que exerce a
função de Administrador do BD, se deparou com situação descrita a seguir. Observe.
I. Um programa bloqueou vários registros para evitar a ocorrência de corrida.
II. Um processo SATURNO bloqueou o acesso a um registro ALFA.
III. O processo JÚPITER bloqueou o acesso a um registro BETA.
IV. O processo SATURNO tentou acessar o registro BETA.
V. O processo JÚPITER tentou acessar o registro ALFA.
VI. Neste ponto, foi criada uma situação de impasse, e os processos SATURNO e JÚPITER ficaram
bloqueados e assim permaneceram.
Quando os fatos descritos ocorrem, fica caracterizada uma situação conhecida por
______________.
Duas transações (T1 e T2) de banco de dados executam as seguintes seqüências de operações:
T1:
Na tabela DEPARTAMENTO, bloqueia a linha N em modo compartilhado;
Na tabela DEPARTAMENTO, lê a coluna DESPESA da linha N;
Na tabela DEPARTAMENTO, desbloqueia a linha N;
Na tabela PROJETO, bloqueia a linha M em modo compartilhado;
Na tabela PROJETO, lê a coluna VERBA da linha M;
Na tabela PROJETO, desbloqueia a linha M;
Na tabela PROJETO, bloqueia a linha M em modo exclusivo;
Na tabela PROJETO, escreve a coluna VERBA da linha M com o valor VERBA + DESPESA;
Na tabela PROJETO, desbloqueia a linha M;
T2:
Na tabela PROJETO, bloqueia linha M em modo compartilhado;
Na tabela PROJETO, lê a coluna VERBA da linha M;
Na tabela PROJETO, desbloqueia a linha M;
Na tabela DEPARTAMENTO, bloqueia a linha N em modo compartilhado;
Na tabela DEPARTAMENTO, lê a coluna DESPESA da linha N;
Na tabela DEPARTAMENTO, desbloqueia a linha N;
Na tabela DEPARTAMENTO, bloqueia a linha N em modo exclusivo;
Na tabela DEPARTAMENTO, escreve a coluna DESPESA da linha N com o valor DESPESA +
VERBA;
Na tabela DEPARTAMENTO, desbloqueia a linha N;
É correto afirmar que essas transações
a) não são serializáveis e, portanto, não podem ser executadas concorrentemente.
b) não podem entrar em bloqueio infinito porque obedecem ao protocolo de bloqueio em duas fases
(two-phase locking).
c) podem entrar em bloqueio infinito (deadlock) se executadas concorrentemente.
d) obedecem ao protocolo de bloqueio em duas fases (two-phaxe locking).
e) são serializáveis e obedecem ao protocolo de bloqueio em duas fasex (two-phase locking).
O Administrador de Dados de uma loja virtual verifica que há um problema no sistema controlador
do estoque. Alguns produtos apresentam quantidades negativas, ou seja, houve mais vendas que a
quantidade existente no estoque.
O programador do sistema mostra, em pseudocódigo, o trecho que realiza a verificação do estoque.
a) Está havendo um problema de leitura suja e a solução é mover o COMMIT TRANSACTION
para dentro do THEN, logo abaixo do UPDATE.
b) Está havendo um problema de registro fantasma e a solução é alterar o nível de isolamento para
serializável.
c) Está havendo um problema de deadlock e a solução é colocar a cláusula FOR UPDATE ao final
do BEGIN TRANSACTION.
d) Está havendo um problema de concorrência e a solução é retirar a transação, eliminando os
comandos BEGIN TRANSACTION, ROLLBACK TRANSACTION e COMMIT
TRANSACTION.
e) A transação não bloqueia o produto consultado. O SELECT deverá ter, no final, a cláusula FOR
UPDATE.
T1
1
Leitura(X);
2
X = X – 100;
3
Escrita(X);
4
Leitura(Y);
5
Y = Y + 100;
6
Escrita(Y);
Considere um sistema bancário simplificado e uma transação T1, que transfira R$ 100,00 da conta
X para a conta Y e é definida pelas operações listadas acima. Considere ainda que uma transação T2
esteja sendo executada simultaneamente com T1. Caso a transação T2 realize a operação Escrita(Y)
depois da execução da operação 4 e antes da execução da operação 6 por T1, qual propriedade de
transações será violada no banco de dados do referido sistema bancário?
a) Atomicidade.
b) Isolamento.
c) Distributividade.
d) Consistência.
e) Durabilidade.
Considere um sistema bancário simplificado e uma transação T1, que, por meio das 6 operações
apresentadas na tabela ao lado, transfere R$ 100,00 da conta X para a conta Y. A partir dessas
informações, julgue os itens que se seguem.
I Se, durante a execução de T1, ocorrer uma falha depois da operação 3 e antes da operação 6, e o
sistema de banco de dados restabelecer o valor original de X, estará garantida a atomicidade de T1.
II Se ocorrer uma falha de sistema após a transação T1 ser completada com sucesso, mas, ao ser
reiniciado o sistema, o usuário que a tiver disparado for notificado da transferência de fundos e o
sistema de banco de dados reconstruir as atualizações feitas pela transação, estará garantida a
durabilidade de T1.
III Se outra transação, T2, que estiver sendo executada simultaneamente a T1, tentar executar a
operação escrita(Y) depois de T1 ter executado a operação 4 e ainda não ter executado a operação 6,
e o sistema de banco de dados impedir essa escrita, estará garantida a consistência de T1.
Assinale a opção correta.
a) Apenas um item está certo.
b) Apenas os itens I e II estão certos.
c) Apenas os itens I e III estão certos.
d) Apenas os itens II e III estão certos.
e) Todos os itens estão certos.
Download

Um SGBD normalmente suporta a concorrência, ou seja, vários