Atomicity
원자성이란, 한 트랜잭션의 모든 쿼리는 성공해야 한다는 원칙입니다.
즉 한 트랜잭션이 데이터베이스의 작업 단위이며, 분할될 수 없습니다.
모종의 원인으로 실패한 쿼리가 있을 경우 해당 트랜잭션은 롤백되어야 합니다.
만약 데이터 베이스가 다운되어 롤백할 수 없다면,
데이터베이스가 다시 실행된 후 쿼리들이 성공했더라도 실패했다고 인지해야 합니다.
해당 트랜잭션이 최종적으로 커밋되지 않았기 때문입니다.
하지만 이러한 처리 방식은 데이터베이스의 종류에 따라 다릅니다.
예를들어, 다음과 같은 장부가 있습니다.
ACCOUNT_ID | BALANCE |
1 | $1000 |
2 | $500 |
Account 1에서 Account 2로 100$를 보낸다면
1. Account 1에서 -$100
2. Account 2에서 +$100
두 개의 쿼리가 한 트랜잭션 안에서 일어나야 합니다.
도중에 중단되거나 데이터베이스가 다운된다면 롤백을 수행해야 한다는 사실을 반드시 기억하고 있어야 합니다.
그렇지 않으면 도중에 $100가 온데간데 없이 사라질 테니까요.
이것이 원자성입니다.
'온라인강의' 카테고리의 다른 글
[udemy] 데이터 베이스 엔지니어링 - 데이터베이스 내부 이해 (0) | 2024.07.03 |
---|---|
[udemy] 데이터 베이스 엔지니어링 - Durabiltity (0) | 2024.07.01 |
[udemy] 데이터 베이스 엔지니어링 - Consistency (0) | 2024.07.01 |
[udemy] 데이터 베이스 엔지니어링 - Isolation (0) | 2024.06.30 |