트랜잭션 조금 이해하기

4.1에 해당하는 새로운 커넥션은 롤백이 안된다.

3번 외부api 호출에 대해서는 다시 원상복구를 해줘야 함.

위의 문제가 발생하지 않도록

  • Non-Repeatable Read (반복 불가능 읽기): 한 트랜잭션 내에서 동일한 데이터를 두 번 읽었을 때, 그 사이에 값이 **수정(UPDATE)**되어 다른 결과가 나오는 문제.

  • Read Skew (읽기 왜곡): 한 트랜잭션 내에서 서로 다른 데이터를 읽는 동안 데이터 간의 논리적 일관성이 깨지는 문제. (Non-Repeatable Read의 특수한 형태)

Read Skew는 하나의 트랜잭션 안에서 두 개의 다른 데이터를 읽는 동안, 다른 트랜잭션이 그중 하나를 수정하여 데이터의 일관성(무결성)이 깨지는 현상입니다 논리적으로 맞지 않는(깨진) 데이터를 읽게 된 것입니다. 이것이 Read Skew입니다.

Phantom Read는 하나의 트랜잭션이 동일한 범위 조건으로 두 번의 쿼리를 실행했을 때, 그 사이에 다른 트랜잭션이 새로운 데이터를 추가하거나 삭제하여 결과 집합의 개수가 달라지는 문제입니다. 이는REPEATABLE READ 격리 수준에서도 발생할 수 있습니다.

"같은 데이터"!!

해결 방법

조건에 의해서 -> 당직자는 0명이면 안된다.

Last updated