모두CBT

트랜잭션 T_1, T_2, T_3에서 데이터 x, y, z에 대한 읽기… | [7급 국가직 데이터베이스론] 26년 1회차 기출문제 상세 페이지

1[7급 국가직 데이터베이스론] 26년 1회차
트랜잭션 T1T_1, T2T_2, T3T_3에서 데이터 x, y, z에 대한 읽기와 쓰기 작업의 스케쥴이 다음과 같을 때 옳은 것만을 모두 고르면?
시간T1T_1T2T_2T3T_3
read(y)
read(z)
read(x)
write(x)
read(z)
write(y)
read(y)
write(y)
write(z)
↓read(x)
ㄱ. T2T_2의 write(y) 연산이 없다면 충돌 직렬가능하지 않은 스케쥴이다.
ㄴ. T3T_3의 read(z) 연산이 없다면 충돌 직렬가능 스케쥴이다.
ㄷ. T3T_3의 read(x)가 write(z)로 대체된다면 충돌 직렬가능하지 않은 스케쥴이다.
1
ㄱ, ㄴ
2
ㄱ, ㄷ
3
ㄴ, ㄷ
4
ㄱ, ㄴ, ㄷ
해설

ㄱ, ㄴ, ㄷ 모두 옳다.

원래 스케줄의 충돌 간선은 y에서 T1→T2T_1 \to T_2, x에서 T2→T3T_2 \to T_3, z에서 T3→T1T_3 \to T_1(T3T_3의 read(z) 뒤 T1T_1의 write(z))이어서 사이클이 생긴다.

  • ㄱ: T2T_2의 write(y)를 빼도 T1T_1의 write(y) 뒤 T2T_2의 read(y)로 T1→T2T_1 \to T_2가 남아 사이클이 유지되므로 충돌 직렬가능하지 않다.
  • ㄴ: T3T_3의 read(z)를 빼면 T3→T1T_3 \to T_1이 사라져 T1→T2→T3T_1 \to T_2 \to T_3의 비순환 그래프가 되므로 충돌 직렬가능하다.
  • ㄷ: 마지막 연산이 write(z)가 되면 T2→T3T_2 \to T_3는 없어지지만, T1T_1의 read(z)·write(z) 뒤 T3T_3의 write(z)로 T1→T3T_1 \to T_3가 생기고 T3→T1T_3 \to T_1도 남아 사이클이 된다.

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

이어서 풀어보기

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