데이터베이스 트랜잭션(Database transaction)
이 사용된다.데이터베이스 트랜잭션
은 데이터베이스가 수행하는 일련의 작업들 (여러 작업들을 하나로 묶은 단위)데이터베이스 트랜잭션(일련의 작업들)
은 실행되면 한 덩어리로 모두 실행된다. (단일 논리 단위)데이터베이스 트랜잭션
예시데이터베이스 트랜잭션의 시작
이라고 함)롤백(rollback)
은 트랜잭션에 의한 변경사항을 취소하는 프로세스를 말한다.커밋(commit)
은 트랜잭션에 의한 영구 변경을 말한다.시스템 장애는 불가피하게 발생하고 트랜잭션은 결과의 신뢰성과 일관성을 보장한다. 이 점은 데이터베이스의 상태가 시스템 장애 시점 이전에 커밋된 모든 트랜잭션의 변경사항을 반영하고, 장애 지점부터 실행된 트랜잭션의 변경사항은 롤백한다는 것을 의미한다.
여러 요청이 데이터베이스 서버로 동시에 들어와 동일한 데이터를 동시에 변경하는 경우 충돌을 피하기 위해 요청을 격리해야 한다. 트랜잭션은 이런 요청들을 격리한다.
데이터베이스 트랜잭션
이 실행 중인 경우, 데이터베이스의 상태는 일시적으로 일관적이지 않은 상태가 되지만, 트랜잭션이 커밋되거나 종료되면 변경사항들이 적용된다.트랜잭션 상태(transaction states)
라고 하며, 아래와 같은 종류가 있다.Active states (활성 상태)
Partially committed (부분 커밋)
Committed (커밋)
Failed (실패)
활성 상태
또는 부분 커밋
상태에서 트랜잭션이 실패하거나 중단되면 트랜잭션은 실패
상태가 된다.Terminated state (제거 상태)
커밋
또는 실패
상태 다음의 마지막 트랜잭션 상태이다.