트랜잭션과 ACID
ACID 란?
Atomicity, Consistency, Isolation, Durability의 약자로
데이터 베이스의 안정성을 보장하는데 사용되는 4가지 속성을 말한다.
Atomicity
Atomicity는 모든 트랜잭션 작업을 하나의 작업으로 간주한다는 의미이다.
그래서 더이상 나눠질 수 없는 원자(atom)성 이라고 말한다.
데이터베이스가 트랜잭션을 처리할 때 트랜잭션의 한 부분이라도 실패하면
전체 트랜잭션을 실패로 처리하는 것이다.
예를 들면 A는 자신의 계좌에서 50만원을 B의 계좌로 보내려고 한다.
여기서 “자신의 계좌에서 50만원을 인출하는 과정”과
“B의 계좌로 송금하는 과정” 두가지가 하나의 트랜잭션이 된다.
만약 A의 계좌에서 50만원을 인출을 완료한 다음
B의 계좌로 송금하는 과정에서 문제가 생겨서 송금이 실패했다면
A의 계좌에서 50만원을 인출한 처음 과정도 무효가 되는 것이다.
Consistency
Consistency는 모든 규칙과 제약 조건을 따르는
유효한 데이터만 데이터베이스에 기록되도록 하는 것이다.
트랜잭션이 유효하지 않은 데이터를 생성한다면 트랜잭션이 취소되고 원래 상태로 돌아간다.
이것은 데이터의 무결성을 유지하는데 유지하는데 중요하다.
유효하지 않은 데이터는 삭제되고 불일치를 유발할 수 있는
모든 트랜잭션은 중단되고 오류를 발생하거나 로그에 기록된다.
예를 들면, A가 자신의 계좌에서 100만원을 인출하려 하는데
계좌에는 50만원 밖에 없다면 해당 거래는 취소되게 된다.
Isolation
Isolation은 각 트랜잭션의 개별성을 보장한다는 의미이다.
어떤 트랜잭션이 다른 트랜잭션에 의해 간섭받지 않고 독립적으로 처리된다는 의미이다.
다만 순서를 보장하지는 않는다.
예를 들면 A와 B가 동시에 100만원을 Z의 계좌에서 인출하려고 한다.
A가 먼저 인출을 한다면 B는 A의 거래가 완전히 끝나야지만 인출을 할 수 있다.
Durability
Durability는 완료된 트랜잭션을 저장하는 속성이다.
트랜잭션이 한번 성공하면 트랜잭션에 의해 생성된 모든 변경사항이 영구적으로 반영된다.
어떤 트랜잭션이 완료되고 시스템이 다운되었다면
해당 트랜잭션은 이미 저장되었으므로 그대로 보존된다.
하지만 트랜잭션 진행중 시스템이 다운된다면
Atomicity 원칙에 다라 트랜잭션을 수행하기 전으로 돌아가게 된다.
내용 출처
위 내용은 아래 페이지를 번역한 것입니다.
Atomicity Consistency Isolation Durability (ACID)
Leave a comment