Transaction이란?
Transaction이란 데이터베이스의 상태를 변환 시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미합니다.
Transaction의 특징
Transaction의 연산은 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 합니다.
트랜잭션 내의 모든 명령은 반드시 완벽히 수행되어야 하며, 모두가 완벽히 수행되지 않고 어느 하나라도 오류가 발생하면 전부 취소가 되어야 합니다.
Transaction이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환합니다.
시스템이 가지고 있는 고정 요소는 Transaction 수행전과 수행 완료 후의 상태가 같아야 합니다.
둘 이상의 Transaction이 동시에 병행 실행되는 경우 하나의 Transaction 실행중에 다른 Transaction의 연산이 끼어들 수 없습니다.
수행중인 Transaction은 완전히 완료될 때까지 다른 Transaction에서 수행 결과를 참조할 수 없습니다.
성공적으로 완료된 Transaction의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 합니다.
보통 commit이 된다면 지속성은 만족할 수 있습니다.
Transaction 연산 및 상태
Rollback 연산은 하나의 Transaction 처리가 비정상적으로 종료되어 데이터베이스의 일관성을 깨뜨렸을 때, 이 Transaction의 일부가 정상적으로 처리되었더라도 Transaction의 원자성을 구현하기 위해 Transaction이 행한 모든 연산을 취소하는 연산입니다.
Rollback시에는 해당 Transaction을 재시작하거나 폐기합니다.
Transaction의 상태
Active
Failed
Aborted
Partially Committed
committed