Transações Flashcards
Defina as características de uma transação ACID
- Atomicidade: uma transação é uma unidade de processamento, é realizada integralmente ou não é realizada.
- Consistência: uma transação leva um banco de dados de um estado consistente para outro estado consistente.
- Isolamento: uma transação deve parecer como se estivesse sendo executada isoladamente.
- Durabilidade: as alterações aplicadas a um banco de dados por meio de uma transação confirmada (commited) devem persistir no banco de dados.
O que é o Schedule de transações
Quando transações estão sendo executadas concorrentemente e de modo entrelaçado, a ordem de execução das operações das várias transações é conhecida como escalonamento (Schedule)
O que é um schedule Seriável?
Dois escalonamentos são considerados seriais quando as operações de cada transação são executadas em série, consecutivamente, sem quaisquer operações entrelaçadas as outra transação.
O que é um Schedule Serial?
Um escalonamento é serial se, para todas as transações T participantes do escalonamento, todas as operações de T forem executadas consecutivamente no escalonamento; caso contrário, o escalonamento é dito não-serial
O que é uma Leitura Suja (DIRTY READ)?
Leitura de dados não confirmados de uma linha existente, podendo ocasionar a leitura de uma informação nunca confirmada.
O que é uma Leitura não repetida (NON REPEATABLE READ)?
Duas leituras de dados na mesma transação não se repetem. Na segunda leitura, dados não existem ou foram modificados.
O que é leitura fantasma (PHANTOM READ)?
Na releitura de um conjunto de dados, surgem novas informações no conjunto.
O que é a perda de atualização?
duas transações que ocorrem simultaneamente atualizam o mesmo dado. Isto pode ocorrer em uma seqüência segundo a qual uma das atualizações é perdida.
Quais são os níveis de isolamento de transação possíveis e quais problemas eles evitam?
- READ UNCOMMITED: Perda de Atualização
- READ COMMITED: Perda de Atualização e Leitura Suja.
- REPEATABLE READ: Perda de Atualização, Leitura Suja e Leitura Não Repetida.
- SERIALIZABLE: Perda de Atualização, Leitura Suja, Leitura Não Repetida e Leitura Fantasma.
Como funciona uma transação SERIALIZABLE?
Uma transação é totalmente isolada das outras. Caso a transação tenha comandos DML que tentem atualizar dados não gravados de outra transação, essa transação não será efetuada.
Como funciona uma trasação REPEATABLE READ?
Os dados podem ser lidos mais de uma vez, e se outra transação tiver incluído ou atualizado linhas e estas forem gravadas no banco de dados entre uma e outra leitura dos dados, então os dados retornados da última busca serão diferentes dos dados da busca anterior. Esse efeito é conhecido como leitura fantasma.
Como funciona uma transação READ COMMITED?
Caso a transação utilize comando DML que precise do bloqueio de linhas que outras transações estão utilizando, a operação somente será concluída após a liberação da linha da outra transação.
Como funciona uma tran sação READ UNCOMMITED?
Serão lidos conteúdos não gravados ainda pelo banco de dados (transações passíveis de ROLLBACK). Há um enorme risco nessas operações, visto que o usuário que está bloqueando a informação pode descartá-la. Esse efeito é conhecido como leitura suja.
Quais são as técnicas de controle de concorrência utilizadas pelo SGBD?
- Utilização de Locks (Lock Pessimista).
- Ordenamento de Registros de Timestamp (data/hora/minuto/segundo).
- Validação (Lock Otimista).
Como funciona o bloqueio em duas fases (Two Phase Lock)?
Diz-se que uma transação segue o protocolo de bloqueio em duas fases se todas as operações de bloqueio (read_lock ou write_lock) precedem a primeira operação de desbloqueio na transação. Essa transação pode ser dividida em duas fases: uma fase de expansão ou crescimento, durante a qual podem-se obter novos bloqueios em itens mas nenhum pode ser liberado; e uma fase de encolhimento ou retração (segunda fase), durante a qual bloqueios existentes podem ser liberados, mas nenhum bloqueio pode ser obtido.