인용하는 그림은 다양한 곳에서 가져왔음을 밝힙니다

Ch 14. 트랜잭션

Section 1. 트랜잭션의 개념

  • 트랜잭션(transaction) : 데이터베이스 내에서 하나의 논리적 기능을 수행하기 위해 행해지는 한꺼번에 사용 되는 하나 이상의 쿼리를 모아
    쪼갤 수 없는 작업의 논리적인 단위(logical unit of work)

Section 2. 트랜잭션의 ACID 특성

  • Atomicity(원자성)
  • Consistency(일관성)
  • Isolation(고립성)
  • Durability(지속성)

2.1 원자성

  • 수행을 시작하면 한꺼번에 완전하게 전체가 수행이 완료되거나 아니면 어더한 연산도 수행되지 않는 All or Nothing 방식이다.

2.2 일관성

  • 트랜잭션 시작 전후에 일관성 있는 DB상태를 유지 한다.

2.3 고립성

  • 트랜잭션 작업 수행중에 다른 트랜잭션에 영향을 주어서도 안되고, 받아서도 안된다.

2.4 지속성

  • 트랜잭션 작업이 성공적으로 수행되어 DB에 반영되었으면, 그 결과가 영구적으로 DB에 저장되어야 한다.

  • 일반적으로 모든 트랜잭션은 로그로 남고 시스템 장애 발생 전 상태로 되돌릴 수 있다.

Section 3. 트랜잭션의 원자성을 제공하기 위한 연산

  • COMMIT, ROLLBACK이 있다.

3.1 트랜잭션의 성공적인 종료, COMMIT

  • COMMIT : 트랜잭션이 성공적으로 종료하고, 데이터베이스가 새로운 일관된 상태를 가질 때, 지속성이 보장되도록 DB에 반영하는 연산
  • BEGIN TRANSACTION;
    SQL들~~
    COMMIT;

3.2 트랜잭션의 비정상적인 종료, ROLLBACK

  • 트랜잭션이 성공하지 못했을 때, 트랜잭션이 수행한 모든 변경 연산을 복귀시키거나 취소하는 연산
  • ROLLBACK;

Section 4. 트랜잭션 상태 및 DBMS와의 관계

4.1 트랜잭션의 상태

상태
활동(active) 실행중인 상태
부분 완료(partially committed) 트랜잭션이 마지막 명령문을 실행시킨 직후의 상태를 의미
실패(failed) 실행 중 장애나 오류 발생
완료(committed) 성공적으로 완료되어 COMMIT 연산을 수행한 상태
철회(aborted) 실행이 실패해 ROLLBACK 연산을 수행한 상태

Fig

4.2 트랜잭션 특성과 DBMS 기능과의 관계

트랜잭션 특성 DBMS 기능
원자성 회복
일관성 동시성 제어 또는 병행 제어, 무결성 제약조건
고립성 동시성 제어 또는 병행 제어
지속성 회복