Skip to content

Latest commit

 

History

History
49 lines (44 loc) · 2.51 KB

트랜잭션.md

File metadata and controls

49 lines (44 loc) · 2.51 KB

트랜잭션

트랜잭션이란?

트랜잭션(Transaction): 데이터베이스의 상태를 변화시키기 해서 수행하는 작업의 단위

  • 데이터베이스의 상태 변화
    • SELECT
    • INSERT
    • DELETE
    • UPDATE

작업의 단위는 질의어 한문장이 아니라 많은 질의어 명령문들을 사람이 정하는 기준에 따라 정하는 것을 의미

트랜잭션의 특징(ACID)

특징

  • 원자성 (Atomicity)
    트랜잭션이 데이터베이스에 모두 반영되던가, 아니면 전혀 반영되지 않아야 한다
  • 일관성 (Consistency)
    트랜잭션의 작업 처리 결과가 항상 일관성이 있어야 한다
    데이터 타입이 반환 후와 전이 항상 동일해야 함
  • 독립성 (Isolation)
    하나의 트랜잭션은 다른 트랜잭션의 연산에 끼어들 수 없고 마찬가지로 독립적임
    각각의 트랜잭션은 독립적이라 서로 간섭 불가능
  • 지속성 (Durability)
    트랜잭션이 성공적으로 완료됐을 경우, 결과는 영구적으로 반영되어야 한다
    보통 commit 이 된다면 지속성은 만족할 수 있음

Commit, Rollback 연산

Commit

하나의 트랜잭션이 성공적으로 끝나서 데이터베이스가 일관성있는 상태에 있음을 의미한다.

Rollback

트랜잭션의 원자성이 깨질 때, 즉 하나의 트랜잭션 처리가 비정상적으로 종료 되었을 때의 상태를 뜻함.
Rollback 이 이뤄진다면 트랜잭션을 다시 실행하거나 부분적으로 변경된 결과를 취소할 수 있다.

트랜잭션의 상태

상태

  • 활동(Active)
    • 트랜잭션이 현재 실행 중인 상태
  • 실패(Failed)
    • 트랜잭이 실행되다 오류가 발생해서 중단된 상태
  • 철회(Aborted)
    • 브랜잭션이 비정상 종료되어 Rollback 이 수행된 상태
  • 부분 완료(Partially Committed)
    • 트랜잭션의 연산이 마지막까지 실행되고 Commit이 되기 직전 상태
  • 완료(Committed)
    • 트랜잭션이 성공적으로 종료되어 Commit 연산을 실행한 후의 상태



출처