트랜잭션이란 '쪼갤 수 없는 업무 처리의 최소 단위'를 말한다.
트랜잭션은 은행 ATM이나 데이터베이스 등의 시스템에서 사용되는 더 이상 쪼갤 수 없는 업무 처리의 최소 단위이다.
예를 들어, 은행의 경우 A라는 사람이 B라는 사람에게 돈을 1000원 이체 했다고 치자. 이때 A가 1000원을 이체하고 B의 계좌에 1000원이 입금되기 까지가 트랜잭션이다. 이 거래는 더 이상 쪼갤 수가 없는 하나의 트랜잭션이 된다. 만약 A가 돈을 보냈는데 B가 돈을 받지 못헀다면 그 거래는 성립되지 않는다. 이처럼 A와 B 사이의 계좌이체 거래는 더 이상 쪼개어질 수 없으며 이런 거래의 최소 단위를 트랜잭션이라고 한다.
데이터베이스에서 트랜잭션은 서버에 여러 개의 클라이언트가 동시에 접속하는 등의 복잡한 처리 과정에서 발생할 수 있는 데이터 부정합을 방지하기위해 사용한다.
부정합을 방지하기 데이터베이스에서는 논리적 기능을 수행하기 위한 작업단위로 트랜잭션을 구성한다.
TCL(Transaction Control Language)인 COMMIT ROLLBACK 명령어를 이용하여 논리적 최소 작업단위인 트랜잭션을 처리한다.
: 트랜잭션에서 정의된 연산들은 모두 성공적으로 실행되던지 아니면 전혀 실행되지 않은 상태로 남아 있어야 한다.(all or nothing)
: 트랜잭션이 실행되기 전의 데이터베이스 내용이 잘못 되어 있지 않다면 트랜잭션이 실행된 이후에도 데이터베이스의 내용에 잘못이 있으면 안 된다.
: 트랜잭션이 실행되는 도중에 다른 트랜잭션의 영향을 받아 잘못된 결과를 만들어서는 안 된다.
: 트랜잭션이 성공적으로 수행되면 그 트랜잭션이 갱신한 데이터베이스의 내용은 영구적으로 저장된다.
다음 명령어를 통해 SAVEPOINT를 지정할 수 있다.
SAVEPOINT SP1;
SAVEPOINT까지 ROLLBACK한다.
ROLLBACK TO SP1;