[Database] 트랜잭션이란?

이강일·2022년 7월 18일
0

트랜잭션(Transaction)이란?

  • 데이터베이스 시스템에서 병행 제어 및 회복 작업 시 처리되는 작업의 논리적인 단위로 사용자가 시스템에 대한 서비스 요구 시 시스템이 응답하기 위한 상태 변환 과정의 작업 단위이다.
  • 작업의 완전성을 보장해 주는 것이다.

트랜잭션의 성질



원자성 (Atomicity)
  • 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력
  • 하나라도 오류가 나면 전체 과정이 취소되어야 한다.
일관성 (Consistency)
  • 트랜잭션 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지시키는 것을 의미한다.
독립성, 격리성 (Isolation)
  • 트랜잭션 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것을 의미한다.
영속성, 지속성 (Durability)
  • 성공적으로 수행된 트랜잭션은 영구적으로 반영되어야 함을 의미한다.
  • 시스템 문제, DB 일관성 체크 등을 하더라도 유지되어야 함을 의미한다.
  • 모든 트랜잭션은 로그로 남고 시스템 장애 발생 전 상태로 되돌리기 가능하다.
  • 로그에 모든 것이 저장된 후에만 반영(commit) 상태로 간주될 수 있다.
Commit 연산
  • 한 작업의 논리적 단위가 성공적으로 끝났고, 데이터베이스가 다시 일관된 상태에 있으며 이 트랜잭션이 행한 갱신 연산이 완료된 것을 트랜잭션 관리자에게 알려주는 연산을 Commit이라 한다.
Roll back 연산
  • 무결성이 보장되지 못하고 실행이 취소되었을 때 이전의 상태로 원상 복귀 시키는 연산을 Rollback이라 한다.

트랜잭션의 상태



트랜잭션의 상태 처리 과정은 5가지 상태가 존재한다.

활동 상태
  • 트랜잭션이 수행을 시작하여 현재 수행 중인 상태
부분 완료 상태
  • 마지막 연산이 실행된 직후의 상태
완료 상태
  • 트랜잭션이 성공적으로 완료되어 Commit 연산을 실행한 상태
실패 상태
  • 트랜잭션이 실행되다 오류가 발생하여 중단된 상태
철회 상태
  • 트랜잭션이 비정상 종료되어 Rollback 연산이 수행된 상태

 




Reference

http://wiki.hash.kr/index.php/%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98
https://wonit.tistory.com/462

0개의 댓글