온라인강의

[udemy] 데이터 베이스 엔지니어링 - Atomicity

콩콩(๓° ˘ °๓)♡ 2024. 7. 1. 15:43

Atomicity

원자성이란, 한 트랜잭션의 모든 쿼리는 성공해야 한다는 원칙입니다.

즉 한 트랜잭션이 데이터베이스의 작업 단위이며, 분할될 수 없습니다.

모종의 원인으로 실패한 쿼리가 있을 경우 해당 트랜잭션은 롤백되어야 합니다.

만약 데이터 베이스가 다운되어 롤백할 수 없다면,

데이터베이스가 다시 실행된 후 쿼리들이 성공했더라도 실패했다고 인지해야 합니다.

해당 트랜잭션이 최종적으로 커밋되지 않았기 때문입니다.

하지만 이러한 처리 방식은 데이터베이스의 종류에 따라 다릅니다.

 

예를들어, 다음과 같은 장부가 있습니다.

 

ACCOUNT_ID BALANCE
1 $1000
2 $500

 

Account 1에서 Account 2로 100$를 보낸다면 

1. Account 1에서 -$100

2. Account 2에서 +$100

두 개의 쿼리가 한 트랜잭션 안에서 일어나야 합니다.

도중에 중단되거나 데이터베이스가 다운된다면 롤백을 수행해야 한다는 사실을 반드시 기억하고 있어야 합니다.

그렇지 않으면 도중에 $100가 온데간데 없이 사라질 테니까요.

이것이 원자성입니다.