모두CBT

다음 두 트랜잭션이 테이블 R(A, B)에 대해 병행 수행되고 있다. … | [7급 국가직 데이터베이스론] 22년 1회차 기출문제 상세 페이지

1[7급 국가직 데이터베이스론] 22년 1회차
다음 두 트랜잭션이 테이블 R(A, B)에 대해 병행 수행되고 있다. 트랜잭션 T2에서 “select sum(B) from R;”의 결과가 항상 동일한 값을 출력하도록 보장하는 트랜잭션 고립성 수준(isolation level)은? (단, 테이블 R의 속성 A, B의 도메인은 정수이다)
T1T2
begin transaction;
insert into R values (3, 150);
commit;
begin transaction;
select sum(B) from R;
select sum(B) from R;
commit;
1
직렬가능(SERIALIZABLE)
2
반복 가능한 읽기(REPEATABLE READ)
3
커밋된 데이터 읽기(READ COMMITTED)
4
커밋되지 않은 데이터 읽기(READ UNCOMMITTED)
해설

직렬가능(SERIALIZABLE) 수준이어야 두 번의 sum(B) 결과가 항상 같다. T1의 insert는 새 투플을 추가하므로 팬텀 읽기를 막아야 한다.

두 select 사이에 T1이 (3, 150)을 삽입·커밋하면 두 번째 합계가 150만큼 커질 수 있다. SQL 표준 고립성 수준 중 팬텀까지 막는 것은 SERIALIZABLE뿐이다.

  • 반복 가능한 읽기: 이미 읽은 투플의 변경은 막지만 새로 삽입된 투플(팬텀)은 허용한다.
  • 커밋된 데이터 읽기: 반복 불가능 읽기와 팬텀이 모두 발생할 수 있다.
  • 커밋되지 않은 데이터 읽기: 오손 읽기까지 허용하는 가장 낮은 수준이다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[7급 국가직 데이터베이스론] 22년 1회차 25문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요7급 국가직 데이터베이스론 기출문제 암기장 전체 보기