SlideShare a Scribd company logo
1 of 25
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

More Related Content

What's hot

Aula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosAula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosRafael Albani
 
Módulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informaçãoMódulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informaçãoLuis Ferreira
 
Banco de Dados Não Relacionais vs Banco de Dados Relacionais
Banco de Dados Não Relacionais vs Banco de Dados RelacionaisBanco de Dados Não Relacionais vs Banco de Dados Relacionais
Banco de Dados Não Relacionais vs Banco de Dados Relacionaisalexculpado
 
Modelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosModelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosjulianaveregue
 
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)Leinylson Fontinele
 
Diagramas de Fluxo de Dados
Diagramas de Fluxo de DadosDiagramas de Fluxo de Dados
Diagramas de Fluxo de DadosJanynne Gomes
 
Sistemas operativos servidor
Sistemas operativos servidorSistemas operativos servidor
Sistemas operativos servidorAndré bogas
 
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de DadosBanco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de DadosLeinylson Fontinele
 
Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamen...
Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamen...Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamen...
Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamen...Leinylson Fontinele
 
Ferramenta de apoio a gerência de configuração de software
Ferramenta de apoio a gerência de configuração de softwareFerramenta de apoio a gerência de configuração de software
Ferramenta de apoio a gerência de configuração de softwareelliando dias
 
Psi-mod-13
Psi-mod-13Psi-mod-13
Psi-mod-13diogoa21
 
Aula 1 introdução a base de dados
Aula 1   introdução a base de dadosAula 1   introdução a base de dados
Aula 1 introdução a base de dadosHélio Martins
 
Utilizando views, stored procedures e triggers
Utilizando views, stored procedures e triggersUtilizando views, stored procedures e triggers
Utilizando views, stored procedures e triggersDaniel Maia
 

What's hot (20)

Aula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de DadosAula1 - Apresentação de Banco de Dados
Aula1 - Apresentação de Banco de Dados
 
Modelos de base de dados
Modelos de base de dadosModelos de base de dados
Modelos de base de dados
 
Tipos de dados em MySQL
Tipos de dados em MySQLTipos de dados em MySQL
Tipos de dados em MySQL
 
Introdução a Bancos de Dados
Introdução a Bancos de DadosIntrodução a Bancos de Dados
Introdução a Bancos de Dados
 
Módulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informaçãoMódulo 12 - Introdução aos sistemas de informação
Módulo 12 - Introdução aos sistemas de informação
 
Modelos de Banco de dados e SGBDS
Modelos de Banco de dados e SGBDSModelos de Banco de dados e SGBDS
Modelos de Banco de dados e SGBDS
 
Banco de Dados Não Relacionais vs Banco de Dados Relacionais
Banco de Dados Não Relacionais vs Banco de Dados RelacionaisBanco de Dados Não Relacionais vs Banco de Dados Relacionais
Banco de Dados Não Relacionais vs Banco de Dados Relacionais
 
Aula 9 banco de dados
Aula 9   banco de dadosAula 9   banco de dados
Aula 9 banco de dados
 
Modelagem relacional e normalização de dados
Modelagem relacional e normalização de dadosModelagem relacional e normalização de dados
Modelagem relacional e normalização de dados
 
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
 
Diagramas de Fluxo de Dados
Diagramas de Fluxo de DadosDiagramas de Fluxo de Dados
Diagramas de Fluxo de Dados
 
Sistemas operativos servidor
Sistemas operativos servidorSistemas operativos servidor
Sistemas operativos servidor
 
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de DadosBanco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
 
Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamen...
Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamen...Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamen...
Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamen...
 
Ferramenta de apoio a gerência de configuração de software
Ferramenta de apoio a gerência de configuração de softwareFerramenta de apoio a gerência de configuração de software
Ferramenta de apoio a gerência de configuração de software
 
Aula 4 banco de dados
Aula 4   banco de dados Aula 4   banco de dados
Aula 4 banco de dados
 
Psi-mod-13
Psi-mod-13Psi-mod-13
Psi-mod-13
 
Banco de Dados - NoSQL
Banco de Dados - NoSQLBanco de Dados - NoSQL
Banco de Dados - NoSQL
 
Aula 1 introdução a base de dados
Aula 1   introdução a base de dadosAula 1   introdução a base de dados
Aula 1 introdução a base de dados
 
Utilizando views, stored procedures e triggers
Utilizando views, stored procedures e triggersUtilizando views, stored procedures e triggers
Utilizando views, stored procedures e triggers
 

Similar to Transações e Controle de Concorrência em BD

Fundamentos de Sistemas de Informacao - Aula #8_2009_2
Fundamentos de Sistemas de Informacao - Aula #8_2009_2Fundamentos de Sistemas de Informacao - Aula #8_2009_2
Fundamentos de Sistemas de Informacao - Aula #8_2009_2Ismar Silveira
 
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)Escalando o ambiente com MariaDB Cluster (Portuguese Edition)
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)Wagner Bianchi
 
Sqlite - Introdução
Sqlite - IntroduçãoSqlite - Introdução
Sqlite - IntroduçãoJoao Johanes
 
Database Class - Pontos de defasagem e questões de brinde.
Database Class - Pontos de defasagem e questões de brinde.Database Class - Pontos de defasagem e questões de brinde.
Database Class - Pontos de defasagem e questões de brinde.Jann Claude Mousquer
 
Conceitos gerais de etl - Qlikview
Conceitos gerais de etl - QlikviewConceitos gerais de etl - Qlikview
Conceitos gerais de etl - QlikviewRoberto Oliveira
 
Sistema de processamento de transações
Sistema de processamento de transações  Sistema de processamento de transações
Sistema de processamento de transações Denilson Sousa
 
Os 10 Mandamentos para realizar um projeto de upgrade SAP
Os 10 Mandamentos para realizar um projeto de upgrade SAPOs 10 Mandamentos para realizar um projeto de upgrade SAP
Os 10 Mandamentos para realizar um projeto de upgrade SAPIssac Nolis Ohasi
 
Apresentação IDMS DC / DB COMPONENTS RESOURCES
Apresentação IDMS DC / DB COMPONENTS RESOURCESApresentação IDMS DC / DB COMPONENTS RESOURCES
Apresentação IDMS DC / DB COMPONENTS RESOURCESSergioBernardes11
 
Banco de Dados - conceitos, usuários, características
Banco de Dados - conceitos, usuários, característicasBanco de Dados - conceitos, usuários, características
Banco de Dados - conceitos, usuários, característicasFernandaNascimento276697
 
Rethinking main memory oltp recovery
Rethinking main memory oltp recoveryRethinking main memory oltp recovery
Rethinking main memory oltp recoveryLucas Vinícius
 
TimesTen In-Memory Database
TimesTen In-Memory DatabaseTimesTen In-Memory Database
TimesTen In-Memory DatabaseAndre Danelon
 
Forefront TMG - Planejando corretamente
Forefront TMG - Planejando corretamenteForefront TMG - Planejando corretamente
Forefront TMG - Planejando corretamenteUilson Souza
 
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA CareerMarcus Vinicius Miguel Pedro
 

Similar to Transações e Controle de Concorrência em BD (20)

Fundamentos de Sistemas de Informacao - Aula #8_2009_2
Fundamentos de Sistemas de Informacao - Aula #8_2009_2Fundamentos de Sistemas de Informacao - Aula #8_2009_2
Fundamentos de Sistemas de Informacao - Aula #8_2009_2
 
DB2 Express-C
DB2 Express-CDB2 Express-C
DB2 Express-C
 
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)Escalando o ambiente com MariaDB Cluster (Portuguese Edition)
Escalando o ambiente com MariaDB Cluster (Portuguese Edition)
 
Sqlite - Introdução
Sqlite - IntroduçãoSqlite - Introdução
Sqlite - Introdução
 
Sqlite
Sqlite Sqlite
Sqlite
 
SQL e Transações
SQL e TransaçõesSQL e Transações
SQL e Transações
 
2012 - Veris - DBA Career and Oracle Database
2012 - Veris - DBA Career and Oracle Database2012 - Veris - DBA Career and Oracle Database
2012 - Veris - DBA Career and Oracle Database
 
Database Class - Pontos de defasagem e questões de brinde.
Database Class - Pontos de defasagem e questões de brinde.Database Class - Pontos de defasagem e questões de brinde.
Database Class - Pontos de defasagem e questões de brinde.
 
Conceitos gerais de etl - Qlikview
Conceitos gerais de etl - QlikviewConceitos gerais de etl - Qlikview
Conceitos gerais de etl - Qlikview
 
Oracleplsql
OracleplsqlOracleplsql
Oracleplsql
 
Sistema de processamento de transações
Sistema de processamento de transações  Sistema de processamento de transações
Sistema de processamento de transações
 
Os 10 Mandamentos para realizar um projeto de upgrade SAP
Os 10 Mandamentos para realizar um projeto de upgrade SAPOs 10 Mandamentos para realizar um projeto de upgrade SAP
Os 10 Mandamentos para realizar um projeto de upgrade SAP
 
Apresentação IDMS DC / DB COMPONENTS RESOURCES
Apresentação IDMS DC / DB COMPONENTS RESOURCESApresentação IDMS DC / DB COMPONENTS RESOURCES
Apresentação IDMS DC / DB COMPONENTS RESOURCES
 
Conceitos DW
Conceitos DWConceitos DW
Conceitos DW
 
Banco de Dados - conceitos, usuários, características
Banco de Dados - conceitos, usuários, característicasBanco de Dados - conceitos, usuários, características
Banco de Dados - conceitos, usuários, características
 
Apostila Oracle 10g
Apostila Oracle 10gApostila Oracle 10g
Apostila Oracle 10g
 
Rethinking main memory oltp recovery
Rethinking main memory oltp recoveryRethinking main memory oltp recovery
Rethinking main memory oltp recovery
 
TimesTen In-Memory Database
TimesTen In-Memory DatabaseTimesTen In-Memory Database
TimesTen In-Memory Database
 
Forefront TMG - Planejando corretamente
Forefront TMG - Planejando corretamenteForefront TMG - Planejando corretamente
Forefront TMG - Planejando corretamente
 
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
 

More from Juliano Padilha

A2Lab - WordPress REST API
A2Lab - WordPress REST APIA2Lab - WordPress REST API
A2Lab - WordPress REST APIJuliano Padilha
 
A2Lab - Payment Request API
A2Lab - Payment Request APIA2Lab - Payment Request API
A2Lab - Payment Request APIJuliano Padilha
 
Lean Startup - Introdução
Lean Startup - IntroduçãoLean Startup - Introdução
Lean Startup - IntroduçãoJuliano Padilha
 
Proposta de redesign dos sites de pós graduação da ufpa
Proposta de redesign dos sites de pós graduação da ufpaProposta de redesign dos sites de pós graduação da ufpa
Proposta de redesign dos sites de pós graduação da ufpaJuliano Padilha
 
Sociologia - Comportamento Organizacional como um Diferencial Competitivo
Sociologia - Comportamento Organizacional como um Diferencial CompetitivoSociologia - Comportamento Organizacional como um Diferencial Competitivo
Sociologia - Comportamento Organizacional como um Diferencial CompetitivoJuliano Padilha
 
Psicologia - Tecnologia, infância e desenvolvimento
Psicologia - Tecnologia, infância e desenvolvimentoPsicologia - Tecnologia, infância e desenvolvimento
Psicologia - Tecnologia, infância e desenvolvimentoJuliano Padilha
 
Interação Homem-Computador - Mau design no site do Arctic Monkeys
Interação Homem-Computador - Mau design no site do Arctic MonkeysInteração Homem-Computador - Mau design no site do Arctic Monkeys
Interação Homem-Computador - Mau design no site do Arctic MonkeysJuliano Padilha
 
Interação Homem-Computador - Interfaces naturais
Interação Homem-Computador - Interfaces naturaisInteração Homem-Computador - Interfaces naturais
Interação Homem-Computador - Interfaces naturaisJuliano Padilha
 
Interação Homem-Computador - Homem x Máquina
Interação Homem-Computador - Homem x MáquinaInteração Homem-Computador - Homem x Máquina
Interação Homem-Computador - Homem x MáquinaJuliano Padilha
 
Gerência de Projeto - Projeto Final sobre Melhoria da Confecção e Gerenciamen...
Gerência de Projeto - Projeto Final sobre Melhoria da Confecção e Gerenciamen...Gerência de Projeto - Projeto Final sobre Melhoria da Confecção e Gerenciamen...
Gerência de Projeto - Projeto Final sobre Melhoria da Confecção e Gerenciamen...Juliano Padilha
 
Ética - História e cultura afro-brasileira: relações étnico-raciais no ambien...
Ética - História e cultura afro-brasileira: relações étnico-raciais no ambien...Ética - História e cultura afro-brasileira: relações étnico-raciais no ambien...
Ética - História e cultura afro-brasileira: relações étnico-raciais no ambien...Juliano Padilha
 
Engenharia de Software II - Teste de segurança de software
Engenharia de Software  II - Teste de segurança de softwareEngenharia de Software  II - Teste de segurança de software
Engenharia de Software II - Teste de segurança de softwareJuliano Padilha
 
Empreendedorismo em Informática - Tech Mídia Soluções Indoor (Projeto Final)
Empreendedorismo em Informática - Tech Mídia Soluções Indoor (Projeto Final)Empreendedorismo em Informática - Tech Mídia Soluções Indoor (Projeto Final)
Empreendedorismo em Informática - Tech Mídia Soluções Indoor (Projeto Final)Juliano Padilha
 
Arquitetura de Software - Arquiteturas Baseadas em Agentes de Software - Sist...
Arquitetura de Software - Arquiteturas Baseadas em Agentes de Software - Sist...Arquitetura de Software - Arquiteturas Baseadas em Agentes de Software - Sist...
Arquitetura de Software - Arquiteturas Baseadas em Agentes de Software - Sist...Juliano Padilha
 
Análise de Projeto de Sistemas - Projeto Fazendola
Análise de Projeto de Sistemas - Projeto FazendolaAnálise de Projeto de Sistemas - Projeto Fazendola
Análise de Projeto de Sistemas - Projeto FazendolaJuliano Padilha
 
Cultura criativa e inovação
Cultura criativa e inovaçãoCultura criativa e inovação
Cultura criativa e inovaçãoJuliano Padilha
 

More from Juliano Padilha (17)

A2Lab - WordPress REST API
A2Lab - WordPress REST APIA2Lab - WordPress REST API
A2Lab - WordPress REST API
 
A2Lab - Payment Request API
A2Lab - Payment Request APIA2Lab - Payment Request API
A2Lab - Payment Request API
 
Lean Startup - Introdução
Lean Startup - IntroduçãoLean Startup - Introdução
Lean Startup - Introdução
 
Proposta de redesign dos sites de pós graduação da ufpa
Proposta de redesign dos sites de pós graduação da ufpaProposta de redesign dos sites de pós graduação da ufpa
Proposta de redesign dos sites de pós graduação da ufpa
 
The Lean LaunchPad
The Lean LaunchPadThe Lean LaunchPad
The Lean LaunchPad
 
Sociologia - Comportamento Organizacional como um Diferencial Competitivo
Sociologia - Comportamento Organizacional como um Diferencial CompetitivoSociologia - Comportamento Organizacional como um Diferencial Competitivo
Sociologia - Comportamento Organizacional como um Diferencial Competitivo
 
Psicologia - Tecnologia, infância e desenvolvimento
Psicologia - Tecnologia, infância e desenvolvimentoPsicologia - Tecnologia, infância e desenvolvimento
Psicologia - Tecnologia, infância e desenvolvimento
 
Interação Homem-Computador - Mau design no site do Arctic Monkeys
Interação Homem-Computador - Mau design no site do Arctic MonkeysInteração Homem-Computador - Mau design no site do Arctic Monkeys
Interação Homem-Computador - Mau design no site do Arctic Monkeys
 
Interação Homem-Computador - Interfaces naturais
Interação Homem-Computador - Interfaces naturaisInteração Homem-Computador - Interfaces naturais
Interação Homem-Computador - Interfaces naturais
 
Interação Homem-Computador - Homem x Máquina
Interação Homem-Computador - Homem x MáquinaInteração Homem-Computador - Homem x Máquina
Interação Homem-Computador - Homem x Máquina
 
Gerência de Projeto - Projeto Final sobre Melhoria da Confecção e Gerenciamen...
Gerência de Projeto - Projeto Final sobre Melhoria da Confecção e Gerenciamen...Gerência de Projeto - Projeto Final sobre Melhoria da Confecção e Gerenciamen...
Gerência de Projeto - Projeto Final sobre Melhoria da Confecção e Gerenciamen...
 
Ética - História e cultura afro-brasileira: relações étnico-raciais no ambien...
Ética - História e cultura afro-brasileira: relações étnico-raciais no ambien...Ética - História e cultura afro-brasileira: relações étnico-raciais no ambien...
Ética - História e cultura afro-brasileira: relações étnico-raciais no ambien...
 
Engenharia de Software II - Teste de segurança de software
Engenharia de Software  II - Teste de segurança de softwareEngenharia de Software  II - Teste de segurança de software
Engenharia de Software II - Teste de segurança de software
 
Empreendedorismo em Informática - Tech Mídia Soluções Indoor (Projeto Final)
Empreendedorismo em Informática - Tech Mídia Soluções Indoor (Projeto Final)Empreendedorismo em Informática - Tech Mídia Soluções Indoor (Projeto Final)
Empreendedorismo em Informática - Tech Mídia Soluções Indoor (Projeto Final)
 
Arquitetura de Software - Arquiteturas Baseadas em Agentes de Software - Sist...
Arquitetura de Software - Arquiteturas Baseadas em Agentes de Software - Sist...Arquitetura de Software - Arquiteturas Baseadas em Agentes de Software - Sist...
Arquitetura de Software - Arquiteturas Baseadas em Agentes de Software - Sist...
 
Análise de Projeto de Sistemas - Projeto Fazendola
Análise de Projeto de Sistemas - Projeto FazendolaAnálise de Projeto de Sistemas - Projeto Fazendola
Análise de Projeto de Sistemas - Projeto Fazendola
 
Cultura criativa e inovação
Cultura criativa e inovaçãoCultura criativa e inovação
Cultura criativa e inovação
 

Transações e Controle de Concorrência em BD

  • 1. TRANSAÇÕES E CONTROLE DE CONCORRÊNCIA Danilo Galvão Emanuel Pantoja Juliano Padilha Luiz Venicio Ricardo Arthur
  • 3. 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
  • 4. Banco de dados SGBD Software de acesso ao dados Software de processamento das consultas Aplicativo Sistema de Banco de Dados
  • 5. TRANSAÇÃO EM BANCO DE DADOS 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 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');
  • 8. 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.
  • 9. 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.
  • 10. 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.
  • 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 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
  • 13. Estados de uma Transação
  • 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 de concorrência  Atualização Perdida;  Leitura Suja;
  • 21. 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
  • 22. 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
  • 23. 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;
  • 24. 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.