* 트랜잭션(Transaction)의 정의
- 데이터베이스에서 하나의 논리적 기능 수행을 위한 연삽 집합으로서의 작업의 단위이다.
- 데이터베이스 관리시스템에서 회복 및 병행 수행시 처리되는 논리적 단위이다.
- 정상 종료시 Commit연산이 비정상종료시 Rollback연산이 수행된다.
* 트랜잭션의 특성
ㄴ 원자성(Atomicity):
● 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 한다.
● 완벽히 수행되거나 그렇지 않으면 모두 취소되어야 한다.
ㄴ 일관성(Consistency):
● 데이터베이스는 트랜잭션 수행이 완료 되면 일관성있는 데이터베이스 상태로 변환되어야 한다.
● 시스템이 가지고 있는 고정 요소는 트랜잭션 구행 전과 수행 완료 후에 상태가 같아야 한다.
● 동시에 실행되는 트랜잭션이 없는 고립 상태에서의 트랜잭션 수행은 데이트베이스의 일관성을 유지해야한다.
ㄴ 독립성(Isolation):
● 한 트랜잭션이 완료되기 전에는 다른 데이터를 다른 트랜잭션이 접근 할 수 없어야 한다.
● 여러 트랜잭션들이 동시에 수행되어도 그 결과는 순차적으로 실행딘 결과와 같아야 한다.
ㄴ 영속성(Durability):
● 트랜잭션의 실행이 성공적으로 실행 완료 되면 시스템 오류가 발생하여도 트랜잭션에 의해
변경된 내용은 지속되어야 한다.
● 성공적으로 완료된 트랜잭션의 결과는 영구적으로 반영 되어야한다.
* 트랜잭션의 상태
- 활동(Active): 트랜잭션이 실행중인 상태
- 실패(Failed): 트랜잭션 실행중 오류가 발생하여 중단된 상태
- 철회(Aborted): 트랜잭션이 비정상적으로 종료되어 Rollback 연산이 수행된 상태.
- 부분 완료(Partially Commited): 트랜잭션의 마지막 연산까지 실행 됬지만 Commit 연산이 실행 전인 상태.
- 완료(Commited): 트랜잭션이 성공적으로 완료 되어 Commit 연산이 실행 된 상태.