Buscar

Gerenciamento de Transações em Banco de Dados

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

*
*
BANCO DE DADOS
Gerenciamento de Transações
*
*
Transação
“Uma transação é uma unidade da execução de programa que acessa e possivelmente atualiza vários itens de dados.”
Silberschatz (2006).
*
*
Transação
Por padrão, MySQL é executado em modo autocommit. Isto significa que assim que você executa uma instrução que atualiza (modifica) uma tabela, o MySQL armazena a atualização no disco. 
Se você estiver usando tabelas com segurança a transação (como InnoDB), você pode colocar o MySQL em modo não autocommit com o seguinte comando: 
SET AUTOCOMMIT=0
*
*
Transação
Depois de desabilitar o modo autocommit configurando a variável AUTOCOMMIT com zero, você deve utilizar COMMIT para armazenar suas alterações em disco ou ROLLBACK se você deseja ignorar as alterações que você fez desde o início da sua transação.
*
*
Transação
SET autocommit=0; 
INSERT INTO paciente VALUES (6,"Julyana",8,"Dengue");
SELECT * FROM paciente p;
ROLLBACK;
SELECT * FROM paciente p;
INSERT INTO paciente VALUES (7,"Miguel",35,"Acnes");
COMMIT;
ROLLBACK;
SELECT * FROM paciente p;
*
*
Transação - Script
Se você quiser disabilitar o modo autocommit para uma única série de instruções, você pode utilizar a instrução START TRANSACTION
*
*
Transação - Script
set autocommit=0;
SELECT count(codfun) into @A FROM funcionario WHERE codfun>30;
UPDATE tabela1 SET valor=@A
 WHERE data_atualizacao<curdate();
UPDATE tabela1 SET data_atualizacao=curdate();
COMMIT;
rollback;
SELECT * FROM tabela1 t;
*
*
Transação em PHP
$res1 = db_res("SELECT c1, c2 FROM t1 WHERE c5 = 3");  $res2 = db_res("UPDATE t2 SET c1 = 5 WHERE c2 = 10");  $res3 = db_res("DELETE FROM t3 WHERE c1 = 20");   if( $res1 && $res2 && $res3 ) {   //commit --- but how?  } else  {   //rollback --- but how?  }  
*
*
Transação
Uma transação precisa ver um banco de dados consistente.
Durante a execução da transação, o banco de dados pode ser temporariamente inconsistente.
Quando a transação é completada com sucesso (é confirmada), o banco de dados precisa ser consistente.
*
*
Transação
Após a confirmação da transação, as mudanças que ele faz no banco de dados persistem.
Várias transações podem ser executadas em paralelo.
Dois problemas principais para resolver:
Falhas de vários tipos, como falhas de hardware e falhas de sistema
Execução simultânea de múltiplas transações
*
*
*
*
*
*
*
*
*
*

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais