SQLD · 제52회 · 3번

Q.32024521과목 · 데이터 모델링의 이해
아래 학생·학과 ERD와 ON DELETE CASCADE 정책에서 DELETE FROM 학과 WHERE 학과코드 = 'CS'; 실행 결과로 옳은 것은?
보기 소속1N학과학과코드 (PK)학과명학생학번 (PK)이름학과코드 (FK)
[학과 (실행 전)]
학과코드학과명
CS컴퓨터공학과
EE전자공학과
[학생 (실행 전)]
학번이름학과코드
1001김철수CS
1002이영희CS
1003박민수EE
-- FK 정의 (학생 테이블 생성 시)
CREATE TABLE 학생 (
  학번      VARCHAR2(10) PRIMARY KEY,
  이름      VARCHAR2(20),
  학과코드  VARCHAR2(4),
  CONSTRAINT FK_학생_학과 FOREIGN KEY (학과코드)
    REFERENCES 학과(학과코드) ON DELETE CASCADE
);

-- 부모 행 삭제
DELETE FROM 학과 WHERE 학과코드 = 'CS';
  • 1학과 한 행이 삭제되고, 해당 학과를 참조하던 학생 행도 함께 삭제된다.
  • 2학과를 학생이 참조하고 있어 참조 무결성 오류로 삭제가 중단된다.
  • 3학과 행은 그대로 남고 학생 행만 삭제된다.
  • 4학과 한 행이 삭제되고 학생.학과코드 가 모두 NULL로 갱신된다.

정답: 1 · 학과 한 행이 삭제되고, 해당 학과를 참조하던 학생 행도 함께 삭제된다.

해설
해설 불러오는 중…
이 회차 문제 풀어보기 →SQLD 더 풀기