Digite para filtrar os verbetes do Glossário.

    Banco de dados · Formação DevOps

    O que é Transação?

    Transação reúne operações de banco em uma única unidade de trabalho. Entenda BEGIN, COMMIT, ROLLBACK e o limite das garantias sobre serviços externos.

    Também chamado de: transação de banco, unidade de trabalho, transação atômica

    Delimitar uma unidade de trabalho no banco

    Transação delimita uma unidade de trabalho no banco. Quando reúne alterações, permite confirmá-las em conjunto ou cancelar as mudanças cobertas por essa unidade. As garantias e o comportamento diante de falhas dependem do banco e da configuração utilizada.

    Uma aplicação pode precisar criar uma turma e registrar suas associações obrigatórias. Tratar cada gravação como uma operação independente pode deixar apenas parte do cadastro pronta. Uma transação permite coordenar a confirmação desse conjunto.

    O código precisa definir quais comandos usam a mesma transação e quando ela termina. Uma chamada externa, outra conexão ou uma gravação já confirmada permanece fora desse conjunto, mesmo quando aparece na mesma função da aplicação.

    Início, operações e conclusão

    Exemplo didático de confirmação conjuntasql
    BEGIN;
    INSERT INTO turmas (id, nome) VALUES (10, 'Turma de teste');
    INSERT INTO matriculas (pessoa_id, turma_id) VALUES (7, 10);
    COMMIT;

    O exemplo pressupõe tabelas compatíveis, o estudante 7 existente e o identificador 10 disponível para criar a turma. Entre BEGIN e COMMIT, as duas gravações participam do mesmo bloco, cuja confirmação é solicitada ao final. Para cancelar esse conjunto antes da confirmação, ROLLBACK descarta suas alterações transacionais.

    Bibliotecas podem oferecer uma função que abre a transação e gerencia o encerramento. Ainda assim, você precisa saber se um erro provoca cancelamento ou se foi capturado e ignorado pelo código. O comportamento não deve ser presumido apenas pelo nome da função.

    Atomicidade e isolamento

    Atomicidade trata da confirmação ou do cancelamento do conjunto. Isolamento trata de como transações simultâneas observam e afetam o trabalho umas das outras. Usar uma transação não resolve automaticamente toda disputa por um recurso.

    Duas operações podem ler a mesma disponibilidade e tentar utilizá-la ao mesmo tempo. O projeto pode precisar de restrições, controle de concorrência ou um nível de isolamento apropriado. A regra de negócio precisa ser testada com chamadas simultâneas quando esse caso for relevante.

    Transações longas também podem manter recursos ocupados e interferir em outras operações. Evite deixá-las abertas enquanto aguarda uma interação humana ou uma chamada externa demorada. O escopo deve corresponder ao trabalho que o banco precisa confirmar em conjunto.

    Efeitos fora do banco

    Enviar uma mensagem antes do commit pode anunciar uma operação que depois será cancelada. Enviar apenas depois do commit elimina esse caso, mas ainda deixa a possibilidade de falhar entre a confirmação e o envio. Sistemas que precisam garantir o encaminhamento podem registrar uma tarefa pendente na mesma transação e processá-la depois.

    O processamento posterior precisa registrar o resultado do envio e tratar novas tentativas sem duplicar o efeito no destino. Uma tarefa pendente no banco permite acompanhar o trabalho, mas não comprova que a mensagem foi entregue. O verbete de rollback de transação detalha o que o cancelamento efetivamente desfaz.

    Dúvidas frequentes

    Perguntas frequentes sobre Transação

    Toda instrução precisa de BEGIN explícito?
    No PostgreSQL, instruções também executam em transações implícitas quando não há um bloco explícito. Para agrupar várias operações, a aplicação ou biblioteca precisa definir essa unidade.
    Transação resolve qualquer concorrência?
    O comportamento depende do isolamento, das restrições e da lógica aplicada. Operações simultâneas podem exigir controles adicionais e testes específicos.
    Uma transação local inclui automaticamente outra API?
    O banco não controla automaticamente efeitos externos. A aplicação precisa coordenar chamadas, repetição e recuperação quando o trabalho envolve outros serviços.
    Posso manter a transação aberta enquanto aguardo aprovação manual?
    Uma espera longa pode manter recursos ocupados e interferir em outras operações. O fluxo deve separar a interação humana da unidade de trabalho que precisa ser confirmada.

    Para continuar

    Recursos relacionados

    Aplicação na formação

    Formação DevOps

    Transações delimitam os conjuntos de gravações que precisam ser confirmados ou cancelados nas rotinas da aplicação.

    Conhecer a formação
    Capa da Formação DevOps

    Fontes consultadas

    Referências deste verbete

    Este verbete ajudou você?

    Planos Promovaweb

    Tire seus projetos do papel

    O Plano Martech cobre automação e atendimento. O Plano IA Makers acrescenta desenvolvimento com IA, enquanto o Plano Founders trata de gestão de negócios. Todos são anuais.

    Plano Martech

    Para conectar automação, marketing e atendimento com infraestrutura própria.

    R$ 897

    R$ 597/ano

    • Grade de automação, atendimento, marketing e análise de indicadores
    • Instalador Exclusivo Promovaweb
    • n8n, Evolution API, Chatwoot e Mautic
    • Trilha DevOps incluída
    • Encontros ao vivo (terça e quinta)
    • Comunidade e acompanhamento
    Conhecer o plano

    Plano Founders

    Plano anual para fazer um projeto de tecnologia avançar, com 90 dias de mentoria intensiva. R$ 1.997 à vista ou até 10x de R$ 219 no cartão.

    R$ 1.997/ano

    • 12 meses de acesso ao Founders
    • 90 dias de mentoria intensiva, um encontro por dia útil
    • Dia de conteúdo (terça e quinta) e War Room (segunda, quarta e sexta)
    • Encontro semanal em grupo após a fase intensiva
    • Formação Vibe Coding incluída no plano anual
    • Consultoria individual de até duas horas (bônus)
    Conhecer o plano