‘학생’ 릴레이션의 과목번호는 ‘과목’ 릴레이션의 과목번호를 참조하는 … | [7급 국가직 데이터베이스론] 24년 1회차 기출문제 상세 페이지
1[7급 국가직 데이터베이스론] 24년 1회차
‘학생’ 릴레이션의 과목번호는 ‘과목’ 릴레이션의 과목번호를 참조하는 외래키이다. 다음 설명 중 옳지 않은 것은? (단, 밑줄로 표기된 속성은 기본키를 의미한다)
| 학생 | ||
|---|---|---|
| 학번 | 이름 | 과목번호 |
| 1111 | 을지문덕 | 200 |
| 2222 | 신사임당 | 100 |
| 3333 | 이율곡 | 300 |
| 4444 | 유관순 | 400 |
| 5555 | 김만덕 | 400 |
| 과목 | |||
|---|---|---|---|
| 과목번호 | 과목명 | 담당교수 | 개설학과 |
| 100 | 인공지능개론 | 안창호 | AI소프트웨어학과 |
| 200 | 빅데이터분석 | 김구 | 컴퓨터공학과 |
| 300 | 머신러닝 | 윤봉길 | AI소프트웨어학과 |
| 400 | 생성형AI | 김좌진 | AI소프트웨어학과 |
1
“DELETE FROM 과목 WHERE 과목번호 = 400;”을 실행하면 참조 무결성 제약조건을 위반한다.
2
“UPDATE 학생 SET 과목번호 = 500 WHERE 학번 = 3333;”을 실행하면 참조 무결성 제약조건을 위반한다.
3
“INSERT INTO 학생(학번, 이름, 과목번호) VALUES (5555, ‘홍길동’, 200);”을 실행하면 기본키 제약조건을 위반한다.
4
“INSERT INTO 과목(과목번호, 과목명, 담당교수, 개설학과) VALUES (NULL, ‘데이터베이스’, ‘안중근’, ‘AI소프트웨어학과’);”를 실행하면 참조 무결성 제약조건을 위반한다.
해설
기본키에 NULL을 넣는 것은 개체 무결성 위반이므로, 과목번호가 NULL인 과목 삽입을 참조 무결성 위반이라 한 설명이 옳지 않다.
참조 무결성은 외래키 값이 참조 테이블의 기본키 값 중 하나(또는 NULL)여야 한다는 제약이고, 기본키의 NULL 금지는 개체 무결성이다.
- 과목 400 삭제: 유관순·김만덕이 참조하고 있으므로 참조 무결성 위반이다.
- 학번 3333의 과목번호를 500으로 변경: 과목 테이블에 500이 없으므로 참조 무결성 위반이다.
- 학번 5555로 학생 삽입: 김만덕의 학번과 중복되어 기본키 제약 위반이다.
오류나 개정된 내용이 보이면 알려주세요