트랜잭션: 하나의 논리적 작업 단위
트랜잭션은 업무적으로 더 이상 나눌 수 없는 하나의 논리적 작업 단위입니다. 주문 한 건을 받으면 '주문' 행과 '주문상세' 행을 함께 넣어야 주문이 완성됩니다. 둘 중 하나만 들어가면 데이터가 불완전해집니다.
그래서 트랜잭션 안의 작업은 모두 반영되거나(COMMIT) 모두 취소되어야(ROLLBACK) 합니다. 이것을 All or Nothing이라 하고, ACID의 원자성에 해당합니다. 데이터 모델링에서 트랜잭션을 보는 이유도 '어떤 데이터들이 한 업무 단위로 함께 생기고 바뀌는가'를 파악하기 위해서입니다.
- 주문 INSERT
- 주문상세 INSERT
- COMMIT
- 둘 다 반영
- 주문 INSERT
- 주문상세 INSERT 실패
- ROLLBACK
- 둘 다 취소
주문만 남고 주문상세가 없는 반쪽 상태를 만들지 않는 것이 핵심입니다.