Bando de dados 2 - Lista de Exercícios
1 - Quais as propriedades desejáveis a uma transação? Explique sucintamente cada uma delas.
As propriedades desejáveis de um transação são: atomicidade, consistência, isolamento, durabilidade.
• Atomicidade: todas as operações da transação são refletidas no banco de dados, ou nenhuma delas.
• Consistência: a execução de uma transação isolada preserva a consistência do banco de dados.
• Isolamento: ocultar simultaneidade
• Durabilidade: mudanças são persistidas, mesmo ocorrendo falhas posteriores no sistema.
2 - O que é um conflito entre transações? Dê exemplos.
Duas instruções entram em conflito se elas pertencem a transações diferentes e agem no mesmo item de dado, e pelo menos uma dessas instruções é uma operação de escrita.
Podemos utilizar como exemplo as seguintes situaçõe: read1(x) e write2(x) || write1(x) e write2(x).
3 – Construa o grafo de precedência para os planos abaixo e diga se estes são serializáveis ou não.
a)
T1 T2
Ler (X)
X = X-N
Escrever (X)
Ler (Y)
Y = Y+N
Escrever (Y) Ler (X) X = X+M Escrever (X) b)
T1 T2
Ler (X)
X = X-N Ler (X) X = X+M
Escrever (X)
Ler (Y) Escrever (X)
Y = Y+N
Escrever (Y)
4 – Explique o que é o fenômeno da REVERSÃO EM CASCATA. Exemplifique, mostrando uma situação em que o fenômeno ocorre.
Ocorre quando uma transação não efetivada tem de ser revertida porque leu um item de uma transação que falhou.
Situação:
Se T1 abortar em vez de efetivar, então T2 deverá abortar também, pois o valor lido de X não será mais válido.
5 – Sobre bloqueios, explique e exemplifique:
a) Bloqueio binário: apresenta apenas 2 estados, 0 ou 1. Se o valor do bloqueio for 1º item não pode ser acessado, caso seja 0 o item está liberado para acesso. O comando lock_item garante a permissão de leitura e escrita de um dado item. Existem alguns problemas relacionados a esse tipo de bloqueio, um deles é ser muito restritivo, não permitindo que mais de uma