모두CBT

EMP(ENO, ENAME, DNO) 테이블에 대해 트랜잭션 T1, T… | [경찰간부후보생 데이터베이스론] 24년 1회차 기출문제 상세 페이지

1[경찰간부후보생 데이터베이스론] 24년 1회차
EMP(ENO, ENAME, DNO) 테이블에 대해 트랜잭션 T1, T2가 다음과 같이 실행될 때 발생 가능한 문제점을 해결하는 방법으로 가장 적절하지 않은 것은?
TID
시간
T1T2
1START TRANSACTION
SELECT ENAME FROM
EMP WHERE DNO = 1;
2START TRANSACTION
INSERT INTO EMP
VALUES(10, ‘홍길동’, 1);
COMMIT;
3SELECT ENAME FROM
EMP WHERE DNO = 1;
COMMIT;
1
EMP 테이블의 DNO 속성에 인덱스가 정의되어 있으면, 트랜잭션 T1이 시간 1에 DNO 인덱스에서 값이 1인 엔트리에 공유 로크를 설정한다.
2
트랜잭션 T1이 시간 1에 EMP 테이블에 공유 로크를 설정한다.
3
트랜잭션들이 2단계 로킹 프로토콜을 준수한다.
4
트랜잭션 고립 수준을 SERIALIZABLE로 설정한다.
해설

2단계 로킹 프로토콜 준수는 해결 방법으로 적절하지 않다. 이 스케쥴의 문제는 팬텀이고, 존재하지 않는 투플에는 로크를 걸 수 없기 때문이다.

T1의 두 번째 SELECT에서 T2가 삽입한 행이 나타난다. 2단계 로킹은 투플 단위 로크로는 새로 삽입되는 투플을 막지 못한다.

  • DNO 인덱스 엔트리의 공유 로크: 삽입에 필요한 인덱스 갱신이 대기하므로 팬텀을 막는다.
  • EMP 테이블의 공유 로크: 테이블 전체가 잠겨 T2의 삽입이 대기한다.
  • SERIALIZABLE 설정: 팬텀까지 방지하는 고립 수준이다.

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

이어서 풀어보기

[경찰간부후보생 데이터베이스론] 24년 1회차 40문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요경찰간부후보생 데이터베이스론 기출문제 암기장 전체 보기