DB 가 한 단위로 다루는 작업 단위
트랜잭션은 DB 가 단일 all-or-nothing 단위로 다루는 statement 시퀀스. 모든 statement 가 commit 되거나, 아무것도 안 됨. 이게 ACID 의 4-글자 약속, 구체화: BEGIN 이 트랜잭션 열고, COMMIT 이 효과 영구화, ROLLBACK 이 일어난 적 없는 것처럼 다 버림.
Autocommit default
BEGIN 없으면 모든 statement 가 자체 묵시적 트랜잭션 (autocommit). 단일 statement 작업엔 OK. 한 statement 이상 거쳐 한 행 이상 건드리고 변경이 같이 land 해야 하면 BEGIN ... COMMIT 으로 감싸야.
Savepoint — 트랜잭션 안 트랜잭션
Savepoint 가 열린 트랜잭션 안의 마커, 거기로 롤백 가능 (이전 작업 안 잃고). 한 실패가 지금까지 성공한 거 다 undo 하면 안 되는 긴 batch job 에 유용.