다음 초기 데이터와 외래키 조건에서 각 연산을 독립적으로 수행할 때 허용 또는 거부 중 하나를 쓰시오. 외래키는 NULL을 허용하고 삭제 동작은 RESTRICT다.
| parent_id |
|---|
| 1 |
| 2 |
| child_id | parent_id(FK) |
|---|---|
| 11 | 1 |
| 12 | NULL |
| 구분 | 연산 |
|---|---|
| ① | CHILD에 (13, 3) 삽입 |
| ② | PARENT에서 parent_id=2 삭제 |
| ③ | PARENT에서 parent_id=1 삭제 |
모범답안
① 거부, ② 허용, ③ 거부
풀이와 판단 근거
①의 외래키 값 3은 PARENT에 없으므로 참조 무결성 위반으로 거부된다. ②의 부모 2를 참조하는 CHILD 행은 없으므로 삭제할 수 있다. ③의 부모 1은 child_id 11이 참조하고 있고 삭제 규칙이 RESTRICT이므로 삭제가 거부된다.
NULL 외래키 행은 특정 부모를 참조하지 않아 이 판단을 바꾸지 않는다.
자주 틀리는 지점
- 외래키에 어떤 값이든 먼저 삽입한 뒤 부모를 만들 수 있다고 봄
- NULL 행이 모든 부모를 참조한다고 오해함
- RESTRICT를 부모 삭제 시 자식 행도 함께 지우는 CASCADE로 해석함
자동 판정 방식
한글·영문 동의어와 문항별 필수 개념을 확인하며, 정답 단어가 부정되거나 반대 개념과 함께 쓰이면 자동 정답으로 확정하지 않습니다. 부분점수는 ITPASSLAB의 학습용 예상 점수입니다.