Transaction

드립이 블로그·2023년 4월 3일
0

Transaction

DB의 상태를 변화시키기 위해 수행하는 작업의 단위이다.
이는 쪼갤 수 없는 업무 처리의 최소 단위이다.

ACID 원칙

트랜잭션에는 4개의 원칙이 있는데 이들의 앞글자를 따와 이를 ACID 원칙이라고 한다.

원자성 (Atomicity)

트랜잭션은 DB에 모두 반영이 되던, 모두 반영이 되지 않던, 둘 중 하나여야 한다는 원칙이다.
트랜잭션 내의 모든 명령 중 일부만 수행이 되고, 어느 하나에서라도 오류가 난다면 전부 취소가 되어야 한다.

일관성 (Consistency)

작업 처리 결과가 항상 일관성이 있어야 한다는 원칙이다.
트랜잭션의 진행 도중에 DB가 변경되더라도, 변경된 DB가 아닌 트랜잭션 진행 시 참조한 DB로 진행이 되어야한다.

독립성 (Isolation)

둘 이상의 트랜잭션이 동시에 진행이 되어도, 다른 트랜잭션의 연산에는 끼어 들 수 없다는 원칙이다.
트랜잭션 진행 도중에는, 그 트랜잭션의 결과를 참조 할 수 없다.

지속성 (Durability)

트랜잭션이 성공적으로 완료된 경우, 결과가 영구적으로 반영이 되어야 한다는 원칙이다.

Transaction의 연산

Commit

트랜잭션의 작업이 성공적으로 끝나고, DB가 다시 일관성 있는 상태가 된 경우에 트랜잭션의 연산이 끝났다는 것을 관리자에게 알리는 연산이다.

Rollback

트랜잭션의 처리가 비정상적으로 종료되어 DB의 일관성이 깨진 경우, 원자성을 위해 트랜잭션이 행한 모든 연산을 취소하는 연산이다.
Rollback 연산시, 해당 트랜잭션을 재시작 또는 폐기한다.

Transaction의 상태

활동 (Active)

트랜잭션이 실행중인 상태이다.

실패 (Failed)

트랜잭션 실행에 오류가 발생해 중단된 상태이다.

철회 (Aborted)

트랜잭션이 비정상적으로 종료되어 Rollback 연산을 실행한 상태이다.

부분완료 (Partially Committed)

마지막 연산까지 실행 한 후, Commit 연산이 실행 되기 직전의 상태이다.

완료 (Committed)

성공적으로 종료되어 Commit 연산을 실행한 후의 상태이다.

0개의 댓글