트랜잭션
- 논리적 작업단위
- dml작업들을 하나의 단위로 묶은 것
- 명령문 중 하나라도 실행되지 않으면 나머지 명령문도 모두 반영되지 않음
ex) 대학 1-4학년을 누락없이 모두 마쳐야 졸업
트랜잭션의 특성
- 원자성: 부분적인 실행 및 중단이 불가능함
- 일관성: 트랜잭션 실행 시, 그 데이터들은 일관성을 유지함(변경 없음)
- 고립성: 트랜잭션 수행 시 다른 트랜잭션이 끼어들지 못함
- 지속성: 수행된 트랜잭션은 db에 영구적으로 반영됨
트랜잭션의 실행
- 모든 작업 반영(commit)/취소(rollback)만 가능하며, 부분 반영 불가
commit/rollback 실행 전
- 현재 사용자의 dml작업결과는 아무도 볼 수 없음
- 데이터를 이전 상태로 되돌릴 수 있음
commit
- 작업 결과가 db에 영구저장됨
- 모든 사용자가 작업결과를 볼 수 있으며, 다른 사용자가 행 조작 가능
rollback
- 작업결과 반영이 취소되며 데이터가 이전상태로 복구됨