학습용 기출·복원자료 분류 확인SQLD · 2024년 52회 SQL 기본 및 활용 · 35번
아래와 같은 테이블에서 Department의 did가 '1'인 행이 삭제될 때, Employee의 did가 '1'인 행도 같이 삭제하도록 하는 방법으로 가장 적절한 것은? (단, Employee의 did는 Department에서 가져온 외래키이다.)?
테이블 구조
Employee(did, ename)
Department(did, dname, budget)
1
Employee 릴레이션을 생성할 때 PRIMARY KEY(did) 명령어를 추가한다.
오답 이유‘Employee 릴레이션을 생성할 때 PRIMARY KEY(did) 명령어를 추가한다.’은 이 문항에서 요구하는 ‘Employee 릴레이션을 생성할 때 FOREIGN KEY(did) REFERENCES Department(did) ON DELETE CASCADE 명령어를 추가한다.’의 정의·역할과 구분된다. 이 문항은 ‘아래와 같은 테이블에서 Department의 did가 '1'인 행이 삭제될 때, Employee의 did가 '1'인 행도 같이 삭제하도록 하는 방법으로 가장 적절한 것은? (단, Employee의 did는 Department에서 가져온 외래키이다.)’을 판단하는 문제다. ’이며, 따라서 1번 보기 ‘Employee 릴레이션을 생성할 때 PRIMARY KEY(did) 명령어를 추가한다.’의 적용 여부를 문제 조건과 대조해야 한다.
2
Department 릴레이션을 생성할 때 ON DELETE RESTRICT 명령어를 추가한다.
오답 이유‘Department 릴레이션을 생성할 때 ON DELETE RESTRICT 명령어를 추가한다.’ 구문은 ‘Employee 릴레이션을 생성할 때 FOREIGN KEY(did) REFERENCES Department(did) ON DELETE CASCADE 명령어를 추가한다.’과 실행 결과나 적용 조건이 다르다. 이 문항은 ‘아래와 같은 테이블에서 Department의 did가 '1'인 행이 삭제될 때, Employee의 did가 '1'인 행도 같이 삭제하도록 하는 방법으로 가장 적절한 것은? (단, Employee의 did는 Department에서 가져온 외래키이다.)’을 판단하는 문제다. ’이며, 따라서 2번 보기 ‘Department 릴레이션을 생성할 때 ON DELETE RESTRICT 명령어를 추가한다.’의 적용 여부를 문제 조건과 대조해야 한다.
3
Employee 릴레이션을 생성할 때 FOREIGN KEY(did) REFERENCES Department(did) ON DELETE CASCADE 명령어를 추가한다.
정답 근거이 문항은 ‘아래와 같은 테이블에서 Department의 did가 '1'인 행이 삭제될 때, Employee의 did가 '1'인 행도 같이 삭제하도록 하는 방법으로 가장 적절한 것은? (단, Employee의 did는 Department에서 가져온 외래키이다.)’을 판단하는 문제다. ’이며, 따라서 3번 보기 ‘Employee 릴레이션을 생성할 때 FOREIGN KEY(did) REFERENCES Department(did) ON DELETE CASCADE 명령어를 추가한다.’의 적용 여부를 문제 조건과 대조해야 한다.
4
Department 릴레이션을 생성할 때 CHECK(did) 명령어를 추가한다.
오답 이유‘Department 릴레이션을 생성할 때 CHECK(did) 명령어를 추가한다.’은 이 문항에서 요구하는 ‘Employee 릴레이션을 생성할 때 FOREIGN KEY(did) REFERENCES Department(did) ON DELETE CASCADE 명령어를 추가한다.’의 정의·역할과 구분된다. 이 문항은 ‘아래와 같은 테이블에서 Department의 did가 '1'인 행이 삭제될 때, Employee의 did가 '1'인 행도 같이 삭제하도록 하는 방법으로 가장 적절한 것은? (단, Employee의 did는 Department에서 가져온 외래키이다.)’을 판단하는 문제다. ’이며, 따라서 4번 보기 ‘Department 릴레이션을 생성할 때 CHECK(did) 명령어를 추가한다.’의 적용 여부를 문제 조건과 대조해야 한다.
ANSWER & EXPLANATION
정답 3번
핵심 판단은 3번 ‘Employee 릴레이션을 생성할 때 FOREIGN KEY(did) REFERENCES Department(did) ON DELETE CASCADE 명령어를 추가한다.’입니다. 이 문항은 ‘아래와 같은 테이블에서 Department의 did가 '1'인 행이 삭제될 때, Employee의 did가 '1'인 행도 같이 삭제하도록 하는 방법으로 가장 적절한 것은? (단, Employee의 did는 Department에서 가져온 외래키이다.)’을 판단하는 문제다. ’이며,