Transaction

  • 데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위
  • 유사한 시스템이란 트랜잭션이 성공과 실패가 분명하고 상호 독립적이며, 일관되고 믿을 수 있는 시스템을 의미
  • 이론적으로 데이터베이스 시스템은 각각의 트랜잭션에 대해 원자성(Atomicity), 일관성(Consistency), 고립성(Isolation), 영구성(Durability)을 보장
  • 어떤 시스템들에서는 트랜잭션들은 논리적 작업 단위(LUW, Logical Units of Work)로 부름


ACID

데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질

  • 원자성(Atomicity)

    • 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력

  • 일관성(Consistency)

    • 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것을 의미

  • 고립성(Isolation)

    • 트랜잭션을 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것을 의미

  • 지속성(Durability)

    • 성공적으로 수행된 트랜잭션은 영원히 반영되어야 함을 의미한다. 시스템 문제, DB 일관성 체크 등을 하더라도 유지되어야 함


BASE

ACID와 대조적으로 가용성과 성능을 중시하는 특성을 가진 분산 시스템의 특성

  • Basically Available
    • 가용성을 중시, Optimistic Locking 및 큐 사용
    • 다수의 실패에도 가용성을 보장, 다수의 스토리지에 복사본 저장
  • Soft-State
    • 노드의 상태는 외부에서 전송된 정보를 통해 결정됨
    • 분산 노드 간 업데이트는 데이터가 노드에 도달한 시점에 갱신
  • Eventually Consistent
    • 일시적으로 비일관적인 상태가 되어도 최적으로는 일관성이 있는 상태가 되는 성질


BASE vs ACID

 속성

 BASE

 ACID

 적용분야

 NOSQL

 RDBMS

 범위

 시스템 전체에 대한 특성

 트랜잭션에 한정

 일관성측면

 약한 일관성

 강한 일관성

 중점사항

 Availability

 ‘Commit’에 집중

 시스템측면

 성능에 초점


 엄격한 데이터관리


 효율성

 쿼리디자인이 중요

 테이블 디자인이 중요


Reference

[1] 위키 (https://ko.wikipedia.org/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4_%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98)

[2] Ji-Dum (http://www.jidum.com/jidums/view.do?jidumId=906)


저작자 표시 비영리 변경 금지
신고

Leave a Comment


to Top