[DB] 트랜잭션의 ACID 속성

Manx·2022년 4월 29일
0

SQL 레벨업

목록 보기
3/11

트랜잭션

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

데이터베이스의 상태를 변경시킨다는 것은 SELECT, UPDATE, INSERT, DELETE와 같은 질의어(SQL)을 통해 데이터베이스에 접근하는 것을 의미한다.

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

트랜잭션의 ACID속성

  • Atomicity (원자성)

    • Either all of a transaction be executed or none of it is
    • 원자성은 트랜잭션이 데이터베이스 모두 반영되던가, 아니면 전혀 반영되지 않아야 한다는 것.
  • Consistency (일관성)

    • 트랜잭션의 작업 처리 결과가 항상 일관성이 있어야 한다.
    • 시스템이 가지고 있는 고정요소는 트랜잭션 수행 전과 수행 완료 후의 상태가 같아야 한다.
  • Isolation (독립성, 격리성)

    • When two or more transactions run concurrently, their effects must be isolated from one another. (Locking)
    • 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없다.
    • 수행 중인 트랜잭션은 완전히 완료될 때까지 다른 트랜잭션에서 수행 결과를 참조할 수 없다.
  • Durabillity (영속성, 지속성)

    • If a transaction has completed its work, its effect should not get lost, even if the system fails immediately (Logging technique)
    • 성공적으로 완료된 트랜잭션의 결과는 영구적으로 반영되어야 한다.

Reference

profile
백엔드 개발자

0개의 댓글