컴퓨터 과확 부분에서 트랜잭션(Transaction)이란 쪼갤 수 없는 업무 처리의 최소단위
를 말한다.
데이터베이스에서 데이터의 상태변화를 해야 할때, 즉 테이블에서 데이터를 읽어 온 후 다른 테이블에 데이터를 입력하거나 갱신, 삭제 처리를 할 때 중간에 예기치 못한 에러로 인해 데이터가 원하지 않은 상태로 변경이 되지 않게 에러가 발생하면 작업을 중단하고 원래의 상태로 되돌리게 된다.
위와 같이 데이터의 안정성을 확보하는 방법이 트랜잭션이다.
데이터베이스에선 처리 과정이 모두 성공했을 때만 최종적으로 데이터베이스에 반영을 한다.
예를 들어 내 계좌의 잔액에서 이체한 금액만큼 빼는 일과, 상대 계좌의 잔액에서 해당만큼 더하는 일은 쪼개어져서는 안된다.
두가지 명령 중 하나만 실행되서는 안되며 하나의 업무로 함께 진행되어야 하는 일이기 때문이다.
위와 같이 더이상 쪼갤 수 없기 때문에 일부만 동작해선 안된다는 것이 트랜잭션의 핵심이다.
이러한 트랜잭션을 처리하기 위해 데이터베이스는 다음의 두가지 명령어를 활용하는데, 커밋과 롤백이다.
이때 모든 연산을 취소하지 않고 정해진 부분까지만 되돌리고 싶을 때 사용하는 것이 savepoint 이다.
ROLLBACK TO 이름
을 실행하면 지정한 해당 SAVEPOINT 지점까지 처리한 작업이 ROLLBACK 된다.ACID는 데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 트랜잭션의 특징을 말한다.
출처 : 트랜잭션(Transaction)이란?