학습용 기출·복원자료 분류 확인SQLD · 2023년 51회 SQL 기본 및 활용 · 11번
한 세션이 DML을 실행하고 아직 COMMIT하지 않은 상태에 관한 설명으로 옳지 않은 것은?
1
현재 세션에서는 자신이 변경한 값을 조회할 수 있다.
오답 이유한 트랜잭션은 자신이 수행한 미확정 변경을 볼 수 있다. 따라서 1번 보기 ‘현재 세션에서는 자신이 변경한 값을 조회할 수 있다.’의 적용 여부를 문제 조건과 대조해야 한다.
2
ROLLBACK하면 미확정 변경을 취소할 수 있다.
오답 이유COMMIT 전 변경은 ROLLBACK 대상이다. 따라서 2번 보기 ‘ROLLBACK하면 미확정 변경을 취소할 수 있다.’의 적용 여부를 문제 조건과 대조해야 한다.
3
다른 세션은 일반적으로 변경 전 확정값을 조회한다.
오답 이유Oracle의 일관된 읽기는 미확정 변경 대신 이전에 확정된 버전을 제공한다. 따라서 3번 보기 ‘다른 세션은 일반적으로 변경 전 확정값을 조회한다.’의 적용 여부를 문제 조건과 대조해야 한다.
4
다른 사용자가 같은 변경 대상 행을 자유롭게 수정할 수 있다.
정답 근거미확정 변경 행에는 일반적으로 배타적 잠금이 유지되어 다른 세션의 충돌하는 수정은 대기하거나 실패한다. 또한 일반적인 READ COMMITTED에서는 다른 세션이 미확정 변경값을 읽지 못한다. 따라서 4번 보기 ‘다른 사용자가 같은 변경 대상 행을 자유롭게 수정할 수 있다.’의 적용 여부를 문제 조건과 대조해야 한다.
ANSWER & EXPLANATION
정답 4번
이 문항에서 조건에 맞지 않는 보기는 4번 ‘다른 사용자가 같은 변경 대상 행을 자유롭게 수정할 수 있다.’입니다. 미확정 변경 행에는 일반적으로 배타적 잠금이 유지되어 다른 세션의 충돌하는 수정은 대기하거나 실패한다. 또한 일반적인 READ COMMITTED에서는 다른 세션이 미확정 변경값을 읽지 못한다.