Transaction

  • 여러 작업(query)들을 하나로 묶은, 한번에 수행되어야 하는 단위이다.

 

ACID란

ACID는 데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 특징들을 의미한다.

Atomicity(원자성), Consistency(일관성), Isolation(고립성), Durability(지속성)의 약자아다.

 

Atomicity

  • 트랜잭션이 분해가 불가능한 최소 단위로서 원자처럼 동작하는 것을 뜻한다.
  • All or nothing
  • 반드시 전부 수행되거나 아예 수행되지 않는다(Rollback).
  • 보장
    • 수행하고 있는 트랜잭션에 의해 변경된 내역을 유지하면서, 이전에 commit된 상태를 임시 영역에 따로 저장함으로써 보장한다.

 

Consistency

  • 데이터는 이미 정해진 규칙 내에서만 수정이 가능하다.
  • 트랜잭션이 성공적으로 완료되면 일관적인 DB상태를 유지한다.
  • 보장
    • 트랜잭션 수행 전, 후에 데이터 모델의 모든 제약 조건(기본키, 외래키, 도메인, 도메인 제약조건 등)을 만족하는 것을 통해 보장한다.

 

Isolation

  • 트랜잭션 수행시 다른 트랜잭션의 작업이 끼어들지 못하도록 보장하는 것이다.
  • 트랜잭션 간에는 서로 간섭할 수 없다.
  • 트랜잭션들의 병행 처리(Concurrent Processing)시 보장되어야 한다.
  • 보장
    • OS의 세마포어와 비슷한 개념으로 lock & unlock을 통해 보장한다.
    • deadlock 상태를 막기 위한 추가 작업이 필요

 

Durability

  • 한번 반영된 트랜잭션은 영구적으로 적용된다.

 

참고

https://victorydntmd.tistory.com/129

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기