다음과 같이 정의된 테이블에서 강좌 10 에 대한 수강신청이 있고, 그… | [SQLD] SQL 개발자 기출유형 모의고사 7회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 7회
다음과 같이 정의된 테이블에서 강좌 10 에 대한 수강신청이 있고, 그 신청에 대한 출석 기록도 있다. DELETE 문 실행 결과에 대한 설명으로 옳은 것은?
CREATE TABLE 수강신청 (
  신청번호 INT PRIMARY KEY,
  강좌번호 INT REFERENCES 강좌(강좌번호)
           ON DELETE CASCADE
);
CREATE TABLE 출석 (
  출석번호 INT PRIMARY KEY,
  신청번호 INT REFERENCES 수강신청(신청번호)
);

DELETE FROM 강좌 WHERE 강좌번호 = 10;
1
강좌만 삭제되고 수강신청은 남는다
2
출석 기록까지 모두 연쇄 삭제된다
3
오류가 나 어떤 행도 삭제되지 않는다
4
강좌와 수강신청만 함께 삭제된다
해설

강좌 삭제는 ON DELETE CASCADE 로 수강신청 삭제를 부르지만, 그 신청을 출석이 삭제 옵션 없는 기본 FK(제한)로 참조하고 있어 무결성 오류가 난다.

DELETE 문은 한 문장 단위로 처리되므로 연쇄 경로 어디에서든 오류가 나면 강좌·수강신청 모두 삭제되지 않는다.

  • CASCADE 가 지정돼 있어 강좌만 지우고 자식을 남기는 경우는 없다.
  • 수강신청까지 지우면 출석이 사라진 신청을 가리키게 되어 허용되지 않는다.
  • 출석 FK 에는 CASCADE 가 없으므로 출석까지 연쇄 삭제되지 않는다.

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

이어서 풀어보기

[SQLD] SQL 개발자 기출유형 모의고사 7회 50문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요SQLD SQL 개발자 실전 모의고사 암기장 전체 보기