본문 바로가기

CS/DB

[데이터베이스] 트랜잭션 ACID

Atomic 원자성

  • All or Nothing
  • 트랜잭션 작업 단위를 일부분만 실행하진 않는다.
    • 전부 실행하거나 하나도 실행하지 않는다.
  • 수행하고 있는 트랜잭션에 의해 변경된 내역은 테이블에 유지하면서, 이전에 commit된 상태 또한 임시 영역에 저장함.
    • 만약 현재 수행중인 트랜잭션에서 오류가 발생하면 임시 영역에 저장했던 상태로 rollback
    • rollback segment : 이전 데이터들이 임시로 저장되는 영역
    • save point를 지정해서, 확실하게 오류가 발생하지 않는 부분을 표시할 수 있음
      • 중간에 오류가 나서 트랜잭션을  다시 수행할 때 이 지점으로 되돌아가면 됨

Consistency 일관성

  • 트랜잭션이 성공적으로 완료되면 일관적인 DB상태를 유지하는 것
  • 일관성이란 domain이나 primary key, foreign key, check 조건과 같은 constraint(제약조건)를 지키는 것 

Isolation 격리성/고립성

  • 트랜잭션 수행 시 다른 트랜잭션의 작업이 끼어들지 못하도록 보장하는 것
  • 트랜잭션끼리 서로 간섭하지 못하도록

[데이터베이스] 격리성 관련 문제와 격리성 수준 (Isolation Level)

 

[데이터베이스] 격리성 관련 문제와 격리성 수준 (Isolation Level)

격리성 관련 문제점 1. Dirty Read 한 트랜잭션(T1)이 데이터에 접근하여 값을 'A'에서 'B'로 변경했고 아직 커밋을 하지 않았을때, 다른 트랜잭션(T2)이 해당 데이터를 Read 하면? T2가 읽은 데이터는 B가 될 것..

j-i-y-u.tistory.com

Durability 지속성

  • 성공적으로 수행된 트랜잭션은 영원히 반영 되는 것
  • commit 하면 현재 상태는 영원히 보장됨

 

 

References