문제
다음 중 아래 SQL문으로 생성된 테이블에서의 레코드 작업에 대한 설명으로 옳지 않은 것은? (단, 고객과 계좌 간의 관계는 1:M이다.)
① <고객> 테이블에서 '고객ID' 필드는 동일한 값을 입력할 수 없다. ② <계좌> 테이블에서 '계좌번호' 필드는 반드시 입력해야 한다. ③ <고객> 테이블에서 '연락번호' 필드는 원하는 값으로 수정하거나 생략할 수 있다. ④ <계좌> 테이블에서 '고객ID' 필드는 동일한 값을 입력할 수 없다.
정답
4번
해설
정답: 4. <계좌> 테이블의 '고객ID'는 외래 키이며, 고객 1명이 여러 계좌를 가지는 1:M 관계이므로 같은 고객ID가 여러 계좌 레코드에 중복 입력될 수 있다.
오답 풀이
- 1번: '고객ID'는 <고객>의 기본 키라서 중복 불가하므로 옳다.
- 2번: '계좌번호'는 기본 키이자 NOT NULL이라 반드시 입력해야 하므로 옳다.
- 3번: '연락번호'는 NOT NULL이 아니므로 생략·수정이 가능하여 옳다.
- 4번: 외래 키 '고객ID'는 1:M 관계상 중복될 수 있으므로 "동일 값 입력 불가"는 옳지 않다.
보충 개념 기본 키는 유일성·NOT NULL을 보장하지만, 외래 키는 참조 무결성만 보장할 뿐 값의 중복을 막지 않는다. 1:M의 '다' 쪽 외래 키는 중복이 자연스럽다.