Sobes.tech
Junior — Middle

Pode explicar o que se entende por transação no contexto de bases de dados?

sobes.tech IA

Resposta da IA

Uma transação em bases de dados é uma sequência de operações que é executada como uma única unidade. A transação é concluída com sucesso na sua totalidade (commit) ou revertida completamente (rollback) se ocorrer um erro. Isto garante a integridade dos dados e evita atualizações parciais.

As principais propriedades das transações são descritas pela sigla ACID:

  • Atomicidade — todas as operações dentro da transação são realizadas na sua totalidade ou não são realizadas de todo.
  • Consistência — após a execução da transação, a base de dados permanece num estado correto.
  • Isolamento — transações paralelas não afetam umas às outras.
  • Durabilidade — após a confirmação da transação, as alterações permanecem mesmo em caso de falhas.

Exemplo em Node.js usando a biblioteca pg para PostgreSQL:

const { Client } = require('pg');

async function runTransaction() {
  const client = new Client();
  await client.connect();

  try {
    await client.query('BEGIN');
    await client.query('INSERT INTO users(name) VALUES($1)', ['Alice']);
    await client.query('INSERT INTO accounts(user_id, balance) VALUES($1, $2)', [1, 100]);
    await client.query('COMMIT');
  } catch (e) {
    await client.query('ROLLBACK');
    throw e;
  } finally {
    await client.end();
  }
}