[Database] 13. ACID 란?
CMSSKKK opened this issue · 1 comments
CMSSKKK commented
ACID 란?
키워드
Transaction
, Spring의 @Transactional
CMSSKKK commented
ACID는 트랜잭션의 성질, 트랜잭션이 안전하게 수행되는 것을 보장하는 성질 4가지의 줄임말입니다.
Atomicity(원자성)
은 트랜잭션의 모든 연산들이 정상적으로 수행 완료되거나,
아니면 어떠한 연산도 수행되지 않은 상태(트랜잭션 시작 전 상태)을 보장하는 것을 말합니다.
트랜잭션 내의 특정 연산으로 인한 데이터의 변경이 실패한다면 정상적으로 성공한 로직 또한 롤백된다는 것을 의미합니다. (all or nothing)
Consistency(일관성)
은 트랜잭션의 성공(commit)은 유효한 상태로만 가능하다는 것을 뜻합니다.
기본 키, 외래 키 제약과 같은 명시적인 무결성 제약 조건이 지켜져야하는 것을 뜻하며, 비명시적으로도 연산의 결과가 일관적임을 보장하는 것을 말합니다. (계좌 이체의 경우 두 잔고의 합이 일치하는 것)
Isolation(독립성)
은 트랜잭션의 수행 중에 다른 트랜잭션의 영향을 받지않고 독립적으로 수행되는 것을 뜻합니다. (다른 트랜잭션과 격리)
트랜잭션이 독립적으로 수행되지 못한다면, 트랜잭션이 원래 상태로 되돌아갈 수 없게 됩니다.
Durability(지속성)
은 트랜잭션이 성공(commit)해서 트랜잭션으로 인한 변경이 장애가 발생하더라도 계속 보존되는 것을 뜻합니다.