트랜잭션 T_1, T_2, T_3에서 데이터 x, y, z에 대한 읽기… | [7급 국가직 데이터베이스론] 26년 1회차 기출문제 상세 페이지
1[7급 국가직 데이터베이스론] 26년 1회차
트랜잭션 , , 에서 데이터 x, y, z에 대한 읽기와 쓰기 작업의 스케쥴이 다음과 같을 때 옳은 것만을 모두 고르면?
| 시간 | |||
|---|---|---|---|
| read(y) | |||
| read(z) | |||
| read(x) | |||
| write(x) | |||
| read(z) | |||
| write(y) | |||
| read(y) | |||
| write(y) | |||
| write(z) | |||
| ↓ | read(x) |
ㄱ. 의 write(y) 연산이 없다면 충돌 직렬가능하지 않은 스케쥴이다.
ㄴ. 의 read(z) 연산이 없다면 충돌 직렬가능 스케쥴이다.
ㄷ. 의 read(x)가 write(z)로 대체된다면 충돌 직렬가능하지 않은 스케쥴이다.
ㄴ. 의 read(z) 연산이 없다면 충돌 직렬가능 스케쥴이다.
ㄷ. 의 read(x)가 write(z)로 대체된다면 충돌 직렬가능하지 않은 스케쥴이다.
1
ㄱ, ㄴ
2
ㄱ, ㄷ
3
ㄴ, ㄷ
4
ㄱ, ㄴ, ㄷ
해설
ㄱ, ㄴ, ㄷ 모두 옳다.
원래 스케줄의 충돌 간선은 y에서 , x에서 , z에서 (의 read(z) 뒤 의 write(z))이어서 사이클이 생긴다.
- ㄱ: 의 write(y)를 빼도 의 write(y) 뒤 의 read(y)로 가 남아 사이클이 유지되므로 충돌 직렬가능하지 않다.
- ㄴ: 의 read(z)를 빼면 이 사라져 의 비순환 그래프가 되므로 충돌 직렬가능하다.
- ㄷ: 마지막 연산이 write(z)가 되면 는 없어지지만, 의 read(z)·write(z) 뒤 의 write(z)로 가 생기고 도 남아 사이클이 된다.
오류나 개정된 내용이 보이면 알려주세요