모두CBT

은행계좌 X와 Y에 대한 트랜잭션 T1과 T2가 수행되는 다음 스케줄에… | [7급 국가직 데이터베이스론] 22년 1회차 기출문제 상세 페이지

1[7급 국가직 데이터베이스론] 22년 1회차
은행계좌 X와 Y에 대한 트랜잭션 T1과 T2가 수행되는 다음 스케줄에 대한 설명으로 옳지 않은 것은? (단, 두 트랜잭션 수행 전 X계좌 잔액은 20 이상의 양수이고, Y계좌 잔액은 50 이상의 양수이다)
T1T2
read(X)
X := X + 50
write(X)
read(Y)
Y := Y + 20
write(Y)
read(Y)
Y := Y - 50
write(Y)
read(X)
X := X - 20
write(X)
1
사이클을 포함한 스케줄이다.
2
2단계 로킹 규약(two-phase locking protocol)으로 구현할 수 있다.
3
두 트랜잭션 수행 전과 수행 완료 후 X계좌와 Y계좌 잔액의 합(X + Y)은 같다.
4
두 트랜잭션 수행 완료 후 X계좌 잔액이 180이면, 두 트랜잭션 수행 전 X계좌 잔액은 150이다.
해설

이 스케줄을 2단계 로킹 규약으로 구현할 수 있다는 설명이 틀렸다. 선행 그래프에 사이클이 있어 충돌 직렬가능하지 않으므로 2PL로는 만들어질 수 없다.

X에서는 T1의 write(X)가 T2의 read(X)보다 앞서 T1→T2, Y에서는 T2의 write(Y)가 T1의 read(Y)보다 앞서 T2→T1이 생겨 사이클이 된다. 2PL은 충돌 직렬가능한 스케줄만 허용한다.

  • 사이클 포함: 위의 T1→T2, T2→T1 간선 때문에 옳다.
  • 잔액 합 보존: 각 연산이 직전에 쓰인 값을 읽어 갱신 손실이 없고, X는 +50−20, Y는 +20−50이라 합의 변화가 0이므로 옳다.
  • X 잔액 역산: X는 최종적으로 30 증가하므로 수행 후 180이면 수행 전은 150이라 옳다.

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

이어서 풀어보기

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