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();
}
}