트랜잭션(transaction) 제어

2023. 6. 14. 23:54학습/Computer Science

트랜잭션 제어

  1. 트랜잭션 정의
    1. DB를 조작하는 논리적 연산들(주로 DML)이 하나 이상 모인 단위 작업
    2. 분해할 수 없는 최소 단위로, 트랜잭션의 완료 및 회복의 기준 단위
    3. DB관리 시스템은 트랜잭션이 성공과 실패가 분명하고 상호 독립적이며, 일관되고 믿을 수 있는 시스템을 의미
  2. 트랜잭션 특징
    1. 원자성(Atomicitiy) : 모든 연산이 수행되거나 하나도 수행되지 말아야 함
    2. 일관성(Consistency) : 시스템 고정 요소는 트랜잭션 이후에도 같아야 함
    3. 고립성(Isolation) : 트랜잭션 실행 도중 다른 트랜잭션의 영향을 받지 않아야함
    4. 지속성(Durability) : 트랜잭션의 결과는 항상 유지(영구 반영) 되어야 함
  3. 트랜잭션 상태 제어
    1. 트랜잭션은 수행 즉시 반영되는 것이 아니므로 진행 상황에 따라 다양한 상태를 가진다.
      1. 활동(Active) : 실행 중인 상태
      2. 부분 완료(Partially Committed) 마지막 연산을 끝내고 결과를 반영하기 직전의 상태
      3. 완료(Committed) : 연산을 완료하고 결과를 데이터베이스에 반영한 상태
      4. 실패(Failed) : 연산 실행 중 어떤 오류에 의해 더 이상 연산이 진행될 수 없는 상태
      5. 철회(Aborted) : 트랜잭션 실패로 트랜잭션 실행 전 상태로 복구(ROLL-BACK)된 상태
      6. 실행 취소(Undo) : 변경되었던 데이터를 취소하고 원래의 내용으로 복원
      7. 다시 실행(Redo) : Undo를 통해 원래 내용으로 변경되었던 데이터를 다시 앞의 내용으로 복원
  4. COMMIT
    1. 트랜잭션에 의한 변경 사항을 최종 반영
    2. COMMIT이 완료되면 이전 상태로 복구(ROLLBACK)할 수 없다.
  5. ROLLBACK
    1. 트랜잭션에 의한 변경 사항을 이전 상황으로 복구한다.
    2. 최종 반영 (COMMIT) 전까지의 작업은 메모리 영역에서 진행되므로 복구가 가능하다
  6. SAVEPOINT
    1. 트랜잭션의 규모가 너무 크거나 복잡한 경우에 ROLLBACK 지점을별도로 지정한다.
    2. 여러 개의 SAVEPOINT를 지정할 수 있다.

Cf.) COMMIT 과 ROLLBACK 덕분에 트랜잭션은 원자성을 보장받는다.

728x90