정의
DB의 상태를 변경하는 기능을 수행하기 위한 작업단위
ACID
atomicity
- transaction은 DB에 모두 반영되거나 모두 반영되지 않아야 한다.
consistancy
Isolation
- 둘 이상의 transaction이 동시에 실행 될 때 어떤 transaction도 다른 transaction 연산에 끼어들 수 없다.
durability
- transaction 성공시 결과는 영구적으로 반영되어야 한다.
격리수준
동시에 DB에 접근 시 어떻게 제어할지 설정하는 것
Read-Uncommited
- 커밋 전의 transaction의 데이터 변경 내용을 다른 transaction이 읽는 것을 허용
- dirty read
Read-Commited
- 커밋 후의 transaction 변경사항만 조회 가능
- 커밋 전의 조회는 변경 전 값 조회
- Non Repeatable Read
Repeatable-Read
- transation 범위 내에서 조회한 내용의 동일성 보장
- Phantom Read
Serializable
- 한 transaction에서 사용하는 데이터를 다른 transation에서 접근 불가
전파 타입
transaction 경계에서의 동작 방식 설정
제목1 | 제목2 | 제목3 |
---|
REQUIRED | 해당 transaction 사용 | 새로운 transaction 생성 |
MANDATORY | 해당 transaction 사용 | 예외 발생 |
REQUIRED_NEW | 해당 transaction 오류, 새로운 transaction 생성 | 새로운 transaction 생성 |
SUPPORTS | 해당 transaction 사용 | transaction 없음 |
NOT SUPPORTS | 해당 transaction 보류 | transaction 없음 |
NEVER | 예외 발생 | transaction 없음 |
NESTED | 중첩 transaction 생성 | 새로운 transaction 생성 |