ACID

신홍석·2022년 5월 3일
0

ACID
데이터들이 바뀔때 아주 중요한 요소들이다.
특히 결제 시스템에서는 필수적으로 필요하다. 은행에서의 출금 입금 시스템에도 아주 중요한 부분이 되겠다.

Atomicity (원자성)
모두 같이 실행이 되던지 아니면 다 같이 실행이 안되야 한다. 즉 부분적으로만 실행 되면 안된다는 뜻이다.
만약 돈을 출금 했는데, 중간에 오류가 나서 데이터 서버에는 돈이 출금이 안된것으로 기록이 남으면 아주아주 심각한 일이 된다. 결국 돈이 고객에게 출금 되기 전까지의 과정이 오류가 나면, 출금 또한 되지 않아야 한다.

Consistency (일관성)
트랜잭션이 실행이 완료된 후 일관성 있는 데이터들로 저장되어야 한다. 예를 들어서 은행 고객이 돈을 출금했는데 데이터 베이스 값이 -1000, 음수가 된다면 안되는 것이다. 즉 모든 은행 고객의 돈은 0 또는 양수로 유지되어야 한다.

Isolation (독립성)
transaction 이 진행중일 경우 다른 transaction이 중간에 끼어들면 안된다. 즉 순서대로 transaciton 이 이루어져야된다. 에를 들어서 은행 손님의 계좌에 10000원이 있는데 온라인 결제를 1번 사이트에서 5000원 2번 사이트에서 7000원을 동시에 할 경우 7000원은 결제불가로 떠야 하는 경우이다.

Durability (지속성)
지속성은 말 그대로 성공적으로 끝난 transaction은 데이터 베이스에 영원히 반영되어야 된다는 뜻이다.

profile
백엔드 개발자 공부

0개의 댓글