트랜잭션(Transaction)은 "쪼갤 수 없는 하나의 논리적 작업 단위"입니다. 대표적으로 은행의 계좌 이체(A통장 출금 + B통장 입금)가 있습니다. 모든 과정이 완벽히 성공하면 영구 저장(COMMIT)하고, 하나라도 실패하면 작업 전 상태로 완벽히 되돌려야(ROLLBACK) 합니다.
💡 핵심 비유
결제 후 배송 시스템 고객이 돈을 지불하고 물건을 받기 전까지는 "임시 상태"입니다. 물건을 정상적으로 받으면 거래가 확정(COMMIT)되고, 재고가 없으면 돈을 다시 돌려받고 거래가 취소(ROLLBACK)됩니다.
🧩 원리 이해하기
Script-1.sql
1
-- 1. A의 통장에서 5만원을 뺍니다.
UPDATE ACCOUNTS SET BALANCE = BALANCE - 50000 WHERE NAME = 'A';
-- 2. B의 통장에 5만원을 더합니다.
UPDATE ACCOUNTS SET BALANCE = BALANCE + 50000 WHERE NAME = 'B';
-- 두 작업이 모두 문제없이 끝났다면 영구 저장합니다.
COMMIT;