본문 바로가기
카테고리 없음

[DB]트랜잭션 ACID

by codeZeroMan 2022. 4. 18.

원자성

  • 트랜잭션 내에서 실행한 작업들은 마치 하나의 작업인 것처럼 모두 성공 하거나 모두 실패해야한다.

일관성

  • 모든 트랜잭션은 일광성 있는 데이터베이스 상태를 유지해야 한다. 예를 들어 데이터베이스에서 정한 무결성 제약 조건을 항상 만족해야한다.

격리성

  • 동시에 실행되는 트랜잭션들이 서로에게 영향을 미치지 않도록 격리한다. 예를 들어 동시에 같은 데이터를 수정하지 못하도록 해야한다. 격리성은 동시성과 관련된 성능 이슈로 인해 트랜잭션 격리 수준(Isolation Level)을 선택할 수 있다.

지속성

  • 트랜잭션을 성공적으로 끝내면 그 결과가 항상 기록되어야 한다. 중간에 시스템에 문제가 발생해도 데이터베이스 로그 등을 사용해서 성공한 트랜잭션 내용을 복구해야 한다.

  • 트랜잭션은 원자성, 일관성 지속성을 보장한다.

트랜잭션 격리 수준 - Isolation Level

  • READ UNCOMMITED
  • READ COMMITTED
  • REPEATABLE READ
  • SERIAUZABLE