SQLD 기출문제 예상문제 273

다음 문제를 풀어보세요.

다음은 두 개의 세션에서 동시에 실행되는 SQL 작업 시나리오이다. 데이터베이스의 기본 트랜잭션 격리 수준(READ COMMITTED)을 가정할 때, 각 시점의 SELECT 결과로 가장 적절한 것을 고르시오.

[테이블 구조 및 초기 데이터]

CREATE TABLE ACCOUNT (
    ACC_NO VARCHAR2(10) PRIMARY KEY,
    BALANCE NUMBER
);
INSERT INTO ACCOUNT (ACC_NO, BALANCE) VALUES ('A001', 10000);
COMMIT;

[SQL 작업 시나리오]

-- 세션 1
UPDATE ACCOUNT SET BALANCE = 9000 WHERE ACC_NO = 'A001';

-- 세션 2 (세션 1의 UPDATE 실행 직후)
SELECT BALANCE FROM ACCOUNT WHERE ACC_NO = 'A001'; -- (A) 지점의 SELECT 결과

-- 세션 1
ROLLBACK;

-- 세션 2 (세션 1의 ROLLBACK 실행 직후)
SELECT BALANCE FROM ACCOUNT WHERE ACC_NO = 'A001'; -- (B) 지점의 SELECT 결과