TRANSAÇÕES E
CONTROLE DE
CONCORRÊNCIA
Danilo Galvão
Emanuel Pantoja
Juliano Padilha
Luiz Venicio
Ricardo Arthur
TRANSAÇÃO
Relembrando Conceitos
• Banco de Dados
– Coleção de dados relacionados. Ex: Planilha,
Cadastro, Lista de Pedidos, etc.
• Sistema Gerenciador de Banco de Dados
(SGBD)
– Coleção dos programas que permitem os
usuários criar e manipular um banco de
dados;
– Ex: Oracle, MySQL, SQL Server;
• Sistema de Banco do Dados
– União do SGBD + Base de dados
Banco de dados
SGBD
Software de
acesso ao dados
Software de
processamento
das consultas
Aplicativo
Sistema de Banco de Dados
TRANSAÇÃO EM
BANCO DE DADOS
TRANSAÇÃ
O
OPERAÇÕES
BANCO
DE
DADOS
O que é uma Transação?
• Refere-se a um conjunto ações que acessa ao BD,
formando uma unidade lógica de processamento;
• Inclui uma ou mais operações de acesso ao BD;
• Processa e possivelmente atualiza vários itens de dados;
• Todas as transações devem ser bem-sucedidas, caso
contrário os efeitos da transação devem ser revertidos.
Exemplo de Transação
Suponha que se deseje transferir $100.00 da conta da Alice para a conta do
Bob. Simplificando ao extremo, os comandos SQL para esta operação seriam:
UPDATE conta_corrente SET saldo = saldo - 100.00
WHERE nome = 'Alice';
UPDATE filiais SET saldo = saldo - 100.00
WHERE nome = (SELECT nome_filial FROM conta_corrente WHERE nome = 'Alice');
UPDATE conta_corrente SET saldo = saldo + 100.00
WHERE nome = 'Bob';
UPDATE filiais SET saldo = saldo + 100.00
WHERE nome = (SELECT nome_filial FROM conta_corrente WHERE nome = 'Bob');
Transações do SGBD
Na execução de uma transação o SGBD deve garantir:
1. Todas as operações na transação completadas com
sucesso e seu efeito será gravado permanentemente
no BD;
2. Uma transação não terá nenhum efeito sobre o BD ou
outras transações caso ela falhe durante a execução.
Finalização de uma Transação
• Commit Transaction
• Encerramento da transação com sucesso;
• Torna as atualizações permanentes.
• Rollback Transaction
• Término da transação com erro;
• Retorna o BD à posição anterior à transação.
Falhas
Bancos de dados estão sufeitos a diversas causas de
falhas:
• Execução de operação na transação;
• Condições de exceção;
• Queda no fornecimento de energia;
• Falhas de hardware;
• Falhas de sabotagem de operação;
• etc.
Falhas
Como evitar:
• Backup;
• Após a falha:
Se o backup deve ser restaurado ou não;
Se será necessário rolar log de transações;
Saber quantas e quais transações serão desfeitas.
Propriedades de uma Transação
• ACID
• A: Atomicidade
• Unidade lógica atômica (tudo ou nada)
• C: Consistência (Preservação)
• Ao final de uma transação o banco continua
consistente
• I: Isolamento
• A execução de uma transação não deve sofrer
interferência de outras transações concorrentes
• D: Durabilidade (Persistência)
• Após o ponto de confirmação, as alterações devem
persistir no banco de dado
Estados de uma Transação
CONTROLE DE
CONCORRÊNCIA
Controle de Concorrência
 Método usado para garantir que as transações sejam
executadas de uma forma segura e sigam as regras
ACID (Atomicidade, Consistência, Isolamento e
Durabilidade).
 Evitar anomalias
 perda da consistência do banco;
 acesso a dados inconsistentes;
 perda de atualizações;
 Os SGBDs (Sistema Gerenciador de Bancos de Dados)
devem ser capazes de assegurar que nenhuma ação de
transação completadas com sucesso seja perdida.
 Uma transação é uma unidade que preserva
consistência.
Controle de Concorrência
 Escalonador
Tem como função assegurar que as transações
preservem a consistência quando executadas
simultaneamente.
Controle de Concorrência
 Escalonamento
 Serialização
• Requisito abstrato que tem como objetivo assegurar
que as transações executem de forma concorrente e
ao final o estado do banco continue consistente.
 Escalonamento Serializável:
• Quando seu efeito sobre o estado do banco de
dados é igual ao de algum escalonamento serial.
 Escalonamento não-serializável:
• Escalonamento que não assegura o estado
consistente do banco de dados
Controle de Concorrência
 Bloqueios
 Como os SGBDs impõem a serialização?
• A técnica mais comum adotada é a utilização de
bloqueios sobre elementos do banco de dados,
a fim de evitar um comportamento não
serializável.
Controle de Concorrência
 Bloqueios
 Definição:
• Mecanismo que permite a uma transação impedir
que outras acessem ou atualizem registros de
forma a evitar os problemas de concorrência;
 XLOCK:
• Bloqueio exclusivo sobre os registros;
• Utilizado para atualizações;
 SLOCK:
• Bloqueio compartilhado sobre os registros;
• Utilizado para consultas.
Problemas clássicos de concorrência
 Atualização Perdida;
 Leitura Suja;
Problemas clássicos de concorrência
Atualização perdida
 A atualização perdida pode ocorrer quando dois
processos leem os mesmos dados do banco de
dados, e tentam atualizar os dados com base no que
foi lido antes de uma das atualizações terem êxito.
Transação 1 Tempo Transação 2
Read P T1
T2 Read P
Write P T3
T4 Write P
Problemas clássicos de concorrência
Leitura Suja
 Ocorre quando uma transação atualiza um item do
banco de dados e, por algum motivo, outra
transação lê esse item supostamente atualizado.
Transação 1 Tempo Transação 2
Read P T1
Write P T2
Fail T3 Read P
Return P T4 Write P
Problemas clássicos de concorrência
Solução
 Um método de controle de concorrência deverá
garantir que em toda execução concorrente das
transações:
1. Cada transação termine;
2. Cada transação é executada sem interferência das
outras, e sem que anomalias de sincronização
ocorram;
Conclusão
Para que se tenha acesso concorrente ao banco de dados
e que se mantenha a consistência do mesmo, faz-se
necessário o uso das técnicas de controle de
concorrência.
Referências
http://www.diegomacedo.com.br/controle-de-concorrencia-
em-banco-de-dados/
http://www.devmedia.com.br/controle-de-concorrencia-
entre-transacoes-em-bancos-de-dados/27756

Banco de Dados - Transações e Controle de Concorrência

  • 1.
    TRANSAÇÕES E CONTROLE DE CONCORRÊNCIA DaniloGalvão Emanuel Pantoja Juliano Padilha Luiz Venicio Ricardo Arthur
  • 2.
  • 3.
    Relembrando Conceitos • Bancode Dados – Coleção de dados relacionados. Ex: Planilha, Cadastro, Lista de Pedidos, etc. • Sistema Gerenciador de Banco de Dados (SGBD) – Coleção dos programas que permitem os usuários criar e manipular um banco de dados; – Ex: Oracle, MySQL, SQL Server; • Sistema de Banco do Dados – União do SGBD + Base de dados
  • 4.
    Banco de dados SGBD Softwarede acesso ao dados Software de processamento das consultas Aplicativo Sistema de Banco de Dados
  • 5.
    TRANSAÇÃO EM BANCO DEDADOS TRANSAÇÃ O OPERAÇÕES BANCO DE DADOS
  • 6.
    O que éuma Transação? • Refere-se a um conjunto ações que acessa ao BD, formando uma unidade lógica de processamento; • Inclui uma ou mais operações de acesso ao BD; • Processa e possivelmente atualiza vários itens de dados; • Todas as transações devem ser bem-sucedidas, caso contrário os efeitos da transação devem ser revertidos.
  • 7.
    Exemplo de Transação Suponhaque se deseje transferir $100.00 da conta da Alice para a conta do Bob. Simplificando ao extremo, os comandos SQL para esta operação seriam: UPDATE conta_corrente SET saldo = saldo - 100.00 WHERE nome = 'Alice'; UPDATE filiais SET saldo = saldo - 100.00 WHERE nome = (SELECT nome_filial FROM conta_corrente WHERE nome = 'Alice'); UPDATE conta_corrente SET saldo = saldo + 100.00 WHERE nome = 'Bob'; UPDATE filiais SET saldo = saldo + 100.00 WHERE nome = (SELECT nome_filial FROM conta_corrente WHERE nome = 'Bob');
  • 8.
    Transações do SGBD Naexecução de uma transação o SGBD deve garantir: 1. Todas as operações na transação completadas com sucesso e seu efeito será gravado permanentemente no BD; 2. Uma transação não terá nenhum efeito sobre o BD ou outras transações caso ela falhe durante a execução.
  • 9.
    Finalização de umaTransação • Commit Transaction • Encerramento da transação com sucesso; • Torna as atualizações permanentes. • Rollback Transaction • Término da transação com erro; • Retorna o BD à posição anterior à transação.
  • 10.
    Falhas Bancos de dadosestão sufeitos a diversas causas de falhas: • Execução de operação na transação; • Condições de exceção; • Queda no fornecimento de energia; • Falhas de hardware; • Falhas de sabotagem de operação; • etc.
  • 11.
    Falhas Como evitar: • Backup; •Após a falha: Se o backup deve ser restaurado ou não; Se será necessário rolar log de transações; Saber quantas e quais transações serão desfeitas.
  • 12.
    Propriedades de umaTransação • ACID • A: Atomicidade • Unidade lógica atômica (tudo ou nada) • C: Consistência (Preservação) • Ao final de uma transação o banco continua consistente • I: Isolamento • A execução de uma transação não deve sofrer interferência de outras transações concorrentes • D: Durabilidade (Persistência) • Após o ponto de confirmação, as alterações devem persistir no banco de dado
  • 13.
    Estados de umaTransação
  • 14.
  • 15.
    Controle de Concorrência Método usado para garantir que as transações sejam executadas de uma forma segura e sigam as regras ACID (Atomicidade, Consistência, Isolamento e Durabilidade).  Evitar anomalias  perda da consistência do banco;  acesso a dados inconsistentes;  perda de atualizações;  Os SGBDs (Sistema Gerenciador de Bancos de Dados) devem ser capazes de assegurar que nenhuma ação de transação completadas com sucesso seja perdida.  Uma transação é uma unidade que preserva consistência.
  • 16.
    Controle de Concorrência Escalonador Tem como função assegurar que as transações preservem a consistência quando executadas simultaneamente.
  • 17.
    Controle de Concorrência Escalonamento  Serialização • Requisito abstrato que tem como objetivo assegurar que as transações executem de forma concorrente e ao final o estado do banco continue consistente.  Escalonamento Serializável: • Quando seu efeito sobre o estado do banco de dados é igual ao de algum escalonamento serial.  Escalonamento não-serializável: • Escalonamento que não assegura o estado consistente do banco de dados
  • 18.
    Controle de Concorrência Bloqueios  Como os SGBDs impõem a serialização? • A técnica mais comum adotada é a utilização de bloqueios sobre elementos do banco de dados, a fim de evitar um comportamento não serializável.
  • 19.
    Controle de Concorrência Bloqueios  Definição: • Mecanismo que permite a uma transação impedir que outras acessem ou atualizem registros de forma a evitar os problemas de concorrência;  XLOCK: • Bloqueio exclusivo sobre os registros; • Utilizado para atualizações;  SLOCK: • Bloqueio compartilhado sobre os registros; • Utilizado para consultas.
  • 20.
    Problemas clássicos deconcorrência  Atualização Perdida;  Leitura Suja;
  • 21.
    Problemas clássicos deconcorrência Atualização perdida  A atualização perdida pode ocorrer quando dois processos leem os mesmos dados do banco de dados, e tentam atualizar os dados com base no que foi lido antes de uma das atualizações terem êxito. Transação 1 Tempo Transação 2 Read P T1 T2 Read P Write P T3 T4 Write P
  • 22.
    Problemas clássicos deconcorrência Leitura Suja  Ocorre quando uma transação atualiza um item do banco de dados e, por algum motivo, outra transação lê esse item supostamente atualizado. Transação 1 Tempo Transação 2 Read P T1 Write P T2 Fail T3 Read P Return P T4 Write P
  • 23.
    Problemas clássicos deconcorrência Solução  Um método de controle de concorrência deverá garantir que em toda execução concorrente das transações: 1. Cada transação termine; 2. Cada transação é executada sem interferência das outras, e sem que anomalias de sincronização ocorram;
  • 24.
    Conclusão Para que setenha acesso concorrente ao banco de dados e que se mantenha a consistência do mesmo, faz-se necessário o uso das técnicas de controle de concorrência.
  • 25.