Transaction
데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위
데이터 질의어(SELECT, INSERT, DELETE, UPDATE)를 이용해 데이터베이스에 접근
작업 단위 != 질의어 한 문장
질의어 여러 문장이 하나의 작업이 될 수 있음
Commit 호출 -> 트랜잭션 종료
Rollback 호출 -> 트랜잭션 취소
트랜잭션의 4가지 특징(ACID)
원자성, 일관성, 독립성, 지속성이 있다.
원자성(atomicity)
- 트랜잭션은 분해가 불가능한 최소의 단위인 하나의 원자처럼 동작한다는 의미
- 트랜잭션의 작업들이 모두 수행되거나 전혀 수행되지 않아야 함
- 부분적으로 수행되면 전부 반영x
일관성(consistency)
- 트랜잭션의 작업 처리 결과가 항상 일관성이 있어야 함
- 트랜잭션 작업 처리 전과 후 모두 일관성을 가지고 있어야 함
- 트랜잭션 진행 도중에 데이터베이스가 변경되어도 변경되기 전 기준으로 트랜잭션 진행
독립성(isolation)
- 트랜잭션 작업 수행 중에 다른 트랜잭션에 영향을 주어선 안되며, 간섭을 받아서도 안됨
지속성(durability)
- 트랜잭션이 성공적으로 완료됐을 경우, 결과는 영구적으로 반영되어야 함
- 데이터베이스 로그를 이용하여, 장애가 발생하면 해당 로그를 사용해 장애 발생 전으로 복원하는 것으로 지속성 실현
출처
https://mommoo.tistory.com/62
https://pjh3749.tistory.com/225
https://covenant.tistory.com/85