정보시스템 감리 기출해설/데이터베이스 해설

(제 24회) 데이터베이스 / (63)~(64) 해설

아이티신비 2024. 8. 3. 09:00

63. 다음 STUDENT(학생)와 ENROLL(수강) 릴레이션에서“Cno가 ‘C413’인 과목을 수강한 학생의 Sname,Dept와 수강의 Grade를 검색하라.”는 질의를 SQL로 나타낸 문장으로 옳은 것은? (단, STUDENT와 ENROLL 릴레이션 각각의 기본 키는 Sno, (Sno, Cno)이다.)

 
STUDENT(Sno, Sname, Year, Dept)
ENROLL(Sno, Cno, Grade)

① SELECT Sname, Dept, Grade

FROM STUDENT JOIN ENROLL WITH(Sno)

WHERE ENROLL.Cno = 'C413';

② SELECT Sname, Dept, Grade

FROM STUDENT NATURAL JOIN ENROLL USING(Sno)

WHERE ENROLL.Cno = 'C413';

③ SELECT Sname, Dept, Grade

FROM STUDENT NATURAL JOIN ENROLL ON (STUDENT.Sno = ENROLL.Sno)

WHERE ENROLL.Cno = 'C413‘;

④ SELECT Sname, Dept, Grade

FROM STUDENT JOIN ENROLL ON (STUDENT.Sno = ENROLL.Sno)

WHERE ENROLL.Cno = 'C413';

 

▣ 문제풀이

 

① SELECT Sname, Dept, Grade FROM STUDENT JOIN ENROLL WITH(Sno)

WHERE ENROLL.Cno = 'C413';

→ WITH 절 대신 USING 사용

 

② SELECT Sname, Dept, Grade FROM STUDENT NATURAL JOIN ENROLL USING(Sno)

WHERE ENROLL.Cno = 'C413';

→ NATURAL 절과 USING 절은 함께 사용할 수 없음

 

③ SELECT Sname, Dept, Grade FROM STUDENT NATURAL JOIN ENROLL ON (STUDENT.Sno = ENROLL.Sno)

WHERE ENROLL.Cno = 'C413‘;

→ NATURAL 조인에 이용되는 컬럼은 명시하지 않아도 자동으로 조인에 사용

ON(STUDENT.Sno = ENROLL.Sno) 제거

 

정답 : ④

 

 

64. 다음 그림은 트랜잭션 T1~T5에 대해 각각의 수행 시간을 표기하였다. 트랜잭션 수행 중 체크 포인트를 실시하였고, 그 이후 시스템이 다운되었다. 시스템이 재가동될 때 수행되는 회복 기능으로 가장 적절한 것은?

 

① T2, T4 트랜잭션은 재수행한다.

② T2, T4 트랜잭션은 취소한다.

③ T3, T4, T5 트랜잭션은 재수행한다.

④ T3, T4, T5 트랜잭션은 취소한다.

 

▣ 체크 포인트

  • T1 트랜잭션은 체크포인트 이전에 정상 완료되었으므로 회복 미수행
  • T2 트랜잭션은 체크포인트 이전에 시작 체크포인트 이후에 정상 회복되었으므로 체크포인트 시점부터 종료까지 REDO 수행
  • T4 트랜잭션은 체크포인트 이후에 수행, 정상종료 되었으므로 처음부터 종료까지 REDO 수행
  • T3, T5 트랜잭션은 정상 종료되지 않았으므로 역순으로 전체 UNDO 수행

* UNDO 트랙잭션을 먼저 수행 후 REDO 트랜잭션 수행

 

<문제풀이>

① T2, T4 트랜잭션은 재수행한다.(O)

② T2, T4 트랜잭션은 취소한다.(X)

T3, T4, T5 트랜잭션은 재수행한다.(X)

④ T3, T4, T5 트랜잭션은 취소한다.(X)

 

정답 : ①

 

 




 

공감과 댓글은 아이티신비에게 큰 힘이 됩니다.

블로그 글이 유용하다면 블로그를 구독해주세요.♥