트랜잭션(Transaction)
트랜잭션 이란?
- 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미한다.
트랜잭션의 특징
- 데이터베이스 시스템에서 병행 제어 및 회복 작업 시 처리되는 논리적 단위 입니다.
- 사용자가 시스템에 대한 서비스 요구 시 시스템이 응답하기 위한 상태 변환 과정의 작업 단위 입니다.
- 하나의 트랜잭션은 commit 되거나 Rollback 됩니다.
트랜잭션의 ACID
Atomicity(원자성)
- 트랜잭션에 포함된 작업은 전부 수행되거나 전부 수행되지 않아야 합니다.
Consistency(일관성)
- 트랜잭션을 수행하기 전이나 후나 데이터베이스는 항상 일관된 상태를 유지해야 합니다.
Isolation(고립성)
- 수행 중인 트랜잭션에 다른 트랜잭션이 끼어들어 변경중인 데이터 값을 훼손하지 않아야 합니다.
Durability(지속성)
- 수행을 성공적으로 완료한 트랜잭션은 변경한 데이터를 영구히 저장해야 합니다.
트랜잭션의 연산 및 상태
Commit 연산
- 하나의 트랜잭션이 성공적으로 끝났고, 데이터베이스가 일관성 있는 상태에 있을 때 하나의 트랜잭션이 끝났다는걸 알리기 위해 사용하는 연산 입니다.
- Commit 연산을 사용하게 되면 트랜잭션이 로그에 저장되며 후에 Rollback 연산을 수행할 수 있는 단위를 만들어 줍니다.
Rollback 연산
- 하나의 트랜잭션 처리가 비정상적으로 종료되어 트랜잭션의 원자성이 깨진 경우 트랜잭션을 처음부터 다시 시작하거나 트랜잭션의 부분적으로 연산된 결과를 다시 취소 시킨다.
-즉, Commit 이나 Rollback을 사용하면 트랜잭션이 처리된 단위대로 후에 Rollback을 진행할 수도 있다.