트랜잭션

Published: by Creative Commons Licence

트랜잭션

트랜잭션(transaction) 이란?

  • 트랜잭션은 데이터베이스의 완전성을 보장하기 위한 것이다.
  • 상태를 변화시키기 위해 수행하는 하나의 작업의 단위를 뜻한다.

트랜잭션의 특징(ACID)

  1. 원자성 (Atomicity)

    all or nothing

    • 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는것을 보장하는 것을 의미한다.
  2. 일관성 (Consistency)

    • 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지 하는 것을 의미한다.
    • 일관성 있는 데이터베이스 상태는 다양한 제약 조건등에 만족한다는 것이다.
  3. 고립성(Isolation)

    • 하나의 트랜잭션이 실행하는 도중에 변경된 데이터는 이 트랜잭션이 완료될 때까지 다른 트랜잭션이 참조하지 못하게 하는특성
  4. 지속성(Durability)

    • 트랜잭션이 완료되면, 주기억장치가 아닌 디스크와 같은 보조기억장치에 저장되거나 그렇지 않더라고 시스템 장애가 회복되고 난 후에 어떠한 형태로든지 그 데이터를 복구 할 수 있게 해야함을 뜻함.

트랜잭션의 형태

  • 활동
    • 트랜잭션이 실행 중에 있는 상태, 연산들이 정상적으로 실행 중인 상태
  • 장애
    • 트랜잭션이 실행에 오류가 발생하여 중단된 상태
  • 철회
    • 트랜잭션이 비정상적으로 종료되어, ROLLBACK 연산을 수행한 상태
  • 부분적 완료
    • 트랜잭션이 마지막까지 실행했지만, Commit 연산이 실행되지 직전의 상태
  • 완료
    • 트랜잭션이 성공적으로 종료되어 Commit 연산을 실행한 후의 상태