하나의 논리적 작업 단위를 구성하는 일련의 연산들의 집합을 트랜잭션이라고 한다.
데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위, 한꺼번에 모두 수행되어야 할 일련의 연산이라고 이야기 된다.
예시로 주로 드는게 계좌 간의 자금 이체 예시를 많이 든다. 한 계좌에서 10만원을 인출할 때 다른 계좌로 10만원 입금하는 이체 작업은 전체 작업이 정상적으로 완료되거나 정상적으로 처리 될 수 없으면 아무 것도 실행되지 않은 처음 상태로 되돌려야 한다. 이러한 트랜잭션은 다양한 데이터 항목들을 액세스하고 갱신하는 프로그램 수행의 단위가 된다. 흔히 트랙잭션은 ACID 성질이라고 하는 네 가지 성질로 설명 된다.
- Atomicity(원자성): 트랜잭션이 실패하게 되어 예금이 사라지는 경우 발생해서는 안 되기 때문에 DBMS 완료되지 않은 트랙잭션은 중간 상태를 데이터베이스에 반영해서는 안 된다. 즉 모든 연산이 정상적으로 수행되거나 하나도 수행되지 않거나.
- Consistency(일관성): 고립된 트랜잭션의 수행이 데이터베이스의 일관성을 보존해야 한다. 즉 성공적으로 수행된 트랜잭션은 정당한 데이터들만을 데이터베이스에 반영해야 한다.
- Isolation(독립성): 여러 트랜잭션이 동시에 수행되더라도 각각의 트랜잭션은 다른 트랜잭션의 수행에 영향을 받지 않고 독립적으로 수행되어야 한다.
- Durability(지속성): 트랜잭션이 성공적으로 완료되어 커밋되고 나면 해당 트랜잭션에 의한 모든 변경은 향후에 어떤 하드웨어와 소프트웨어 장애가 발생하더라도 보존되어야 한다.