다음은 A고객의 포인트 1000점을 B고객에게 전송하는 SQL문이다. 이 SQL문을 하나의 트랜잭션으로 처리할 때 이에 대한 설명으로 옳지 않은 것은? (단, A고객과 B고객의 ‘ID’는 각각 123과 456이며, 트랜잭션 수행 전 ‘포인트’는 각각 5000과 200이다)
UPDATE 고객SET 포인트 = 포인트 - 1000WHERE ID = 123; ·················(가)UPDATE 고객SET 포인트 = 포인트 + 1000WHERE ID = 456; ·················(나)
- ①동시 공유라는 데이터베이스의 특성으로 인해 (가)까지 수행된 결과를 다른 트랜잭션에서 접근할 수 있도록 허용해야 한다.
- ②(가)까지 수행한 직후 시스템이 다운되었다면, 시스템이 재가동된 후에 고객 테이블에서 A고객의 포인트는 5000점으로 되돌려야 한다.
- ③트랜잭션이 (나)까지 성공적으로 수행된 후에 고객 테이블에서 A고객과 B고객의 포인트 합은 5200점이다.
- ④트랜잭션이 (나)까지 성공적으로 완료되면 A고객과 B고객의 포인트 변경 결과는 장애가 발생하더라도 손실되지 않도록 보장되어야 한다.
정답 ①
출처: 인사혁신처 공개 기출(공공데이터포털, 이용허락 제한 없음)