트랜잭션의 다음의 네 가지 특징을 가지며, 이를 한꺼번에 ACID 특징이라고 합니다.
“all or noting”
원자성(atomicity) 은 트랜잭션과 관련된 일이 모두 수행되었거나 되지 않았거나를 보장하는 특징입니다. 예를 들면 트랜잭션을 커밋했는데 문제가 발생하여 롤백하는 경우 그 이후에 모두 수행되지 않음을 보장하는 것을 말합니다.
구체적인 예로, 1000만원을 가진 홍철이가 0원을 가진 규영이에게 500만원을 이체한다고 해봅시다. 그렇다면 결과는 홍철이는 500만원, 규영이는 500만원을 가져야 합니다. 해당 결과는 다음과 같은 operation 단위들로 이루어진 과정을 거칩니다.
여기서 1~3의 operation 중 데이터베이스 사용자는 이 세 가지의 과정을 볼 수도 참여할 수도 없습니다. 다만 이 과정이 모두 끝난 이후의 상황인 홍철 500만원, 규영 500만 원인 상황만 보는 것입니다.
여기서 이 작업을 ‘취소’ 한다고 했을 때 홍철이는 다시 1000만원, 규영이는 0원을 가져야 합니다. 일부 operation 만 적용된 홍철이는 500만원, 규영이는 0원이 되지 않는 것을 의미합니다.
그래서 all or noting 인 것입니다.