Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
6 Transaes e Controle de
Concorrncia
Grinaldo Lopes de Oliveira (grinaldo@gmail.com)
Curso Superior de Tecnologia em
Anlise e Desenvolvimento de Sistemas
* Material com crditos de colaborao dos professores Mrcio Soussa, Leandro Coelho e Pablo Florentino
Agenda
Aprendendo
Transaes
Controle de Concorrncia
Transao
O que uma Transao
Transferncia bancria
BEGIN TRANSACTION
update conta1
set saldo = saldo 100
update conta2
set saldo = saldo + 100
COMMIT TRAN
Caractersticas de Transaes
Transaes do SGBD
Finalizao de uma Transao
Commit Transaction
Encerramento da transao com sucesso;
Torna as atualizaes permanentes;
Rollback Transaction
Trmino de transao com erro;
Retorna o banco de dados posio anterior
Transao;
BEGIN
TRANSACTION
ROLLBACK COMMIT
TRANSACTION TRANSACTION
O que faz uma transao falhar?
Estados de uma Transao
Propriedades de uma Transao
ACID
A: Atomicidade
Unidade lgica atmica (tudo ou nada)
C: Consistncia (Preservao)
Ao final de uma transao o banco continua
consistente
I: Isolamento
A execuo de uma transao no deve sofrer
interferncia de outras transaes concorrentes
D: Durabilidade (Persistncia)
Aps o ponto de confirmao, as alteraes devem
persistir no banco de dados
Arquitetura de um SGBD
Referncia
Respostas Comandos da
Aplicao /usurio/ DBA
Catlogo do
Compilador Sistema
Otimizador
Gerente de Transaes
LOG BD
Log de Transaes
Caractersticas:
Registro de todas as operaes (alteraes) realizadas no banco
de dados;
Base para o processo de recuperao (Recovery)
Atualizao anterior operao realizada sobre os dados;
Atualizao fsica (I/O), sem utilizao de buffers.
rea de
Dados
SGBD
Log de
Transaes
Recuperao de Consistncia (Falha de Sistema)
Processo de Recuperao
Tempo TC (Checkpoint) TF (Falha do Sistema)
T1
T2
T3
T4
T5
Select P T1
T2 Select P
Update P T3
T4 Update P
Problemas de Concorrncia
Dependncia de Transao no Concluda:
A Transao 1 tem acesso um dado que depende da
concluso da Transao 2.
T1 Update P
Select P T2
T3 Rollback
Problemas de Concorrncia
Anlise Inconsistente:
Transao 1 Tempo Transao 2
Select Acc1
T3 Update Acc1=50
Commit
Select Acc3
Erro T4
Soma = 110
Controle de Concorrncia
Primitiva
Princpio da correo
Gerenciador
de Transaes
Escalonador Buffers de
(Scheduler) Memria
Controle de Concorrncia
Escalonamento
Serializao (Serializabilidade, Seriabilizao)
Requisito abstrato que tem como objetivo assegurar que
as transaes executem de forma concorrente e ao final o
estado do banco continue consistente.
Escalonamento Serializvel:
Quando seu efeito sobre o estado do banco de dados
igual ao de algum escalonamento serial.
Escalonamento no-serializvel:
Escalonamento que no assegura o estado consistente do
banco de dados
Controle de Concorrncia
Bloqueios
Como os SGBDs impem a serializao ?
H outras tcnicas:
Timbre de hora Timestamp
Tcnicas otimistas- Entendem que operaes conflitantes so exceo
Bloqueios
Definio:
Mecanismo que permite a uma transao impedir que
outras acessem ou atualizem registros de forma a evitar os
problemas de concorrncia;
XLOCK:
Bloqueio exclusivo sobre os registros;
Utilizado para atualizaes;
SLOCK:
Bloqueio compartilhado sobre os registros;
Utilizado para consultas.
Bloqueios
XLOCK SLOCK
XLOCK No No
SLOCK No Sim
Controle de Concorrncia
Bloqueios
Granularidade dos bloqueios
Linha (registros)
Pgina de disco
Tabela
Banco de Dados
Select P T1
(SLOCK)
Select P
T2
(SLOCK)
Update P T3
(Solic. XLOCK)
Update P
WAIT
T4 (Solic. XLOCK)
WAIT
...
WAIT
...
Resoluo dos Problemas de Concorrncia
Dependncia de Transao no Concluda:
Update P
T1
(XLOCK)
Select P
(Solic. SLOCK) T2
WAIT
WAIT
T3 Commit/Rollback
(Libera XLOCK)
Cont. Select P
T4
(SLOCK)
Resoluo dos Problemas de Concorrncia
Anlise Inconsistente:
Transao 1 Tempo Transao 2
Deadlock
Situao onde duas transaes esto simultaneamente em
estado de espera (Wait), cada uma aguardando pela
liberao do bloqueio (Lock) da outra;
O SGBD deve detectar e quebrar o deadlock (sacrificar
uma transao);
Grfico de Espera (Wait-For Graph);
R1
T1 T2
R3 R2
T3
Controle de Concorrncia
Problemas de Concorrncia
Fantasmas (Phantoms)
Controle de Concorrncia
Problemas de Concorrncia
Atualizao perdida (Lost Update)
Fantasmas (Phantoms)
Read committed
Nvel de isolamento Padro
Leitura s pode ser feita em dados efetivados.
Repeatable Read
Registros lidos no sero alterados por outros processos, garantindo releituras
idnticas.
Serializable
A mais restrita de todas.
Inseres ou delees no podem ser feitas em conjuntos de registros lidos.
Nveis de Isolamento (SQL-92)
SET TRANSACTION
ISOLATION LEVEL
[
READ UNCOMMITTED ou
READ COMMITTED *(Padro)
REPEATABLE READ
SERIALIZABLE
]
Debate em Sala de Aula