업무 단위 (묶어서 처리해야하는 작업 단위)
자동으로 commit 안하는 경우 (autocommit off) = transaction의 시작
여러 query 문을 작성하고 한번에 commit
commit을 직접 실행하기 전에는 임시 저장이므로 이에 대한 rollback이 가능
commit 실행 후 db에 실제 반영
-> rollback 불가
모두 성공하거나 모두 실패하도록 하는 업무의 단위
ex) 장바구니에서 모든 물품 결제 시도
-> 하나의 물품이라도 결제 실패한 경우 모든 물품에 대한 결제 시도가 취소됨
atomic(원자성) : 한번에 db로 반영 혹은 rollback
= 모두 성공 혹은 모두 실패
consistent(일관성) : transaction 이전 이후 db 상태가 일관되어야 함
isolation(격리성) : 동시에 여러 transaction 실행 시 서로 영향 받지 않고 독립 실행
durability(지속성) : 트랜잭션 완료 후 결과는 영구적 유지
-> 별도의 transaction을 가지게 되면 일관성이 깨지는 원인이 될 수 있음