banco de dados - transacoes (database - transactions)
TRANSCRIPT
![Page 1: Banco de Dados - Transacoes (Database - Transactions)](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55b6c830bb61eb70158b4666/html5/thumbnails/1.jpg)
Transações2014 - Diego Machado @ Sitionet
![Page 2: Banco de Dados - Transacoes (Database - Transactions)](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55b6c830bb61eb70158b4666/html5/thumbnails/2.jpg)
O que é ?
Sequência de operações, tratadas como um bloco único e indivisível.
![Page 3: Banco de Dados - Transacoes (Database - Transactions)](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55b6c830bb61eb70158b4666/html5/thumbnails/3.jpg)
Por que ?
Transferência bancária de fundos;
Débito na conta de origem dos recursos -> Crédito na conta de destino;
Se a primeira operação ocorrer com sucesso e a segunda falhar, o montante de dinheiro deixará de existir.
![Page 4: Banco de Dados - Transacoes (Database - Transactions)](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55b6c830bb61eb70158b4666/html5/thumbnails/4.jpg)
Vantagens ?
Prover isolamento entre acessos concorrentes na mesma massa de dados;
Operações agrupadas em transação única;
Unicidade de chaves primárias e compostas;
ACID (Atomicidade, Consistência, Isolamento e Durabilidade);
![Page 5: Banco de Dados - Transacoes (Database - Transactions)](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55b6c830bb61eb70158b4666/html5/thumbnails/5.jpg)
Como usar ?
$this->db->trans_begin();
$this->db->query('AN SQL QUERY...');
$this->db->query('ANOTHER QUERY...');
$this->db->query('AND YET ANOTHER QUERY...');
if ($this->db->trans_status() === FALSE){ $this->db->trans_rollback();} else { $this->db->trans_commit();}
![Page 6: Banco de Dados - Transacoes (Database - Transactions)](https://reader034.vdocuments.pub/reader034/viewer/2022042608/55b6c830bb61eb70158b4666/html5/thumbnails/6.jpg)
Dúvidas ?
No MySQL, é necessário trabalhar com o mecanismo de armazenamento InnoDB ao invés do padrão MyISAM.
A grande maioria dos outros bancos de dados suportam transações nativamente.