모두CBT

다음 Student, Course, Enrollment 테이블에 대한 … | [7급 국가직 데이터베이스론] 22년 1회차 기출문제 상세 페이지

1[7급 국가직 데이터베이스론] 22년 1회차
다음 Student, Course, Enrollment 테이블에 대한 SQL 구문들을 수행하였을 때, COUNT(*) 값은? (단, Enrollment 테이블 생성 시 sno 속성과 cno 속성은 각각 Student 테이블과 Course 테이블 기본키의 외래키이며, 두 외래키에 모두 ON DELETE CASCADE 조건이 적용된다)
Student
snosnameyeardept
100John4Com
200David3EE
300Tom1Com
400Mark4Com
500Simon2ME

Course
cnocnamecreditdeptprofessor
C123Java3ComAndy
C312Data Structure3ComJoseph
C324File System3ComHelen
C413Database3ComLuna
E412OS3EEElsa

Enrollment
snocnogrademidtermfinal
200C123B8580
300C312A9095
400C312A9095
500C312B8580
300C324C7575
400C324A9590
100C413A9095
300C413A9590
400C413B8085
100E412A9595
400E412C6575

SQL 구문
DELETE FROM Student WHERE sname= ‘Simon’;
DELETE FROM Course WHERE cname= ‘OS’;
SELECT COUNT(*) FROM Enrollment;
1
6
2
7
3
8
4
9
해설

두 DELETE 후 Enrollment에 남는 행은 8개이다. ON DELETE CASCADE로 삭제된 학생·과목을 참조하던 수강 행이 함께 삭제된다.

처음 Enrollment는 11행이다.
Simon(sno 500) 삭제 → (500, C312) 1행 연쇄 삭제 → 10행
OS(cno E412) 삭제 → (100, E412), (400, E412) 2행 연쇄 삭제 → 8행

  • 6행: 5행이 삭제되어야 나오는 값이지만 연쇄 삭제 대상은 모두 3행뿐이다.
  • 7행: 4행이 삭제되어야 나오는 값으로, sno 500·cno E412를 참조하는 행 수와 맞지 않는다.
  • 9행: OS를 수강한 2행 중 하나만 지운 경우의 값이다.

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

이어서 풀어보기

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