트랜잭션이란 하나의 작업을 수행하기 위해 필요한 데이터베이스 연산을 모아놓은 것
예상되지 않은 결과가 발생하는 것을 방지하고 데이터의 무결성을 보장한다.
1. 트랜잭션 특징
1.1 원자성
- 트랜잭션의 연산은 모두 정상적으로 실행되거나, 하나도 실행되지 않아야 한다.
- 원자성 보장을 위해 트랜잭션 연산 수행 중 장애 발생 시 수행한 연산을 전부 취소하고 이전의 상태로 회복해야 한다.
1.2 일관성
- 트랜잭션을 수행한 뒤 데이터베이스는 일관된 상태를 유지해야 한다.
1.3 격리성
- 여러 트랜잭션이 수행될 때 하나의 트랜잭션의 수행이 완료될 때까지 다른 트랜잭션이 간섭할 수 없도록 한다.
- 여러 트랜잭션이 동시에 수행되어도 순서대로 하나씩 수행되는 것처럼 한다.
1.4 지속성
- 트랜잭션의 수행이 성공적이라면 데이터베이스에 반영한 결과는 영구적이어야 한다.
2. 트랜잭션의 특징을 보장하기 위한 DBMS 기능
트랜잭션 특징 | DBMS 기능 |
---|
원자성 | 회복 기능 |
일관성 | 병행 제어 기능 |
격리성 | 병행 제어 기능 |
지속성 | 회복 기능 |
3. 트랜잭션 상태
3.1 활동 상태
현재 트랜잭션 연산을 수행 중인 상태
3.2 부분 완료 상태
트랜잭션의 마지막 연산을 BUFFER가 수행한 상태
3.3 완료 상태
트랜잭션이 완료되어 COMMIT 연산 실행한 상태
수행결과가 DB에 반영됨을 보장하는 상태
(시스템 장애가 발생하더라도 DB에 수행 결과 반영 보장)
3.4 실패 상태
장애가 발생하여 트랜잭션 연산의 수행이 중단된 상태
3.5 철회 상태
트랜잭션 연산 수행의 실패로 ROLLBACK 연산 실행한 상태
데이터베이스를 트랜잭션 연산을 수행하기 이전의 상태로 되돌림
4. 장애 발생 유뮤에 따른 수행

COMMIT
- 트랜잭션의 수행이 성공적으로 완료되었음을 선언하는 연산
- COMMIT 연산이 실행되면 트랜잭션의 수행 결과가 데이터베이스에 반영되고 일관된 상태 유지
ROLLBACK
- 트랜잭션의 수행이 실패했음을 선언하는 연산
- ROLLBACK 연산이 실행되면 지금까지 트랜잭션이 수행한 연산 결과가 취소되고 데이터베이스가 트랜잭션 수행 전의 상태로 되돌아감
5. 회복
트랜잭션 수행 중 장애 발생 시 데이터베이스를 트랜잭션을 수행하기 이전의 상태로 복구하는 것
데이터베이스 복구를 위해 dump와 log 사용
- dump - 데이터베이스 전체를 다른 저장 장치에 주기적으로 복사하는 방법
- log - 데이터베이스에서 변경 연산이 실행될 때마다 데이터를 변경하기 이전 값과 변경한 이후의 값을 별도 파일로 저장하는 것