모두CBT

다음 중 아래 SQL문으로 생성된 테이블에서의 레코드 작업에 대한 설명… | [컴퓨터활용능력 1급 필기] 20년 1회차 기출문제 상세 페이지

1[컴퓨터활용능력 1급 필기] 20년 1회차
다음 중 아래 SQL문으로 생성된 테이블에서의 레코드 작업에 대한 설명으로 옳지 않은 것은? (단, 고객과 계좌 간의 관계는 1:M이다.)

CREATE TABLE 고객
  (고객ID    CHAR(20) NOT NULL,
   고객명    CHAR(20) NOT NULL,
   연락번호  CHAR(12),
   PRIMARY KEY (고객ID)
);
CREATE TABLE 계좌
  (계좌번호    CHAR(10) NOT NULL,
   고객ID      CHAR(20) NOT NULL,
   잔액 INTEGER DEFAULT 0,
   PRIMARY KEY (계좌번호),
   FOREIGN KEY (고객ID) REFERENCES 고객
);

1
<고객> 테이블에서 '고객ID' 필드는 동일한 값을 입력할 수 없다.
2
<계좌> 테이블에서 '계좌번호' 필드는 반드시 입력해야 한다.
3
<고객> 테이블에서 '연락번호' 필드는 원하는 값으로 수정하거나 생략할 수 있다.
4
<계좌> 테이블에서 '고객ID' 필드는 동일한 값을 입력할 수 없다.
해설

<고객> 테이블은 고객ID CHAR(20) NOT NULL, 고객명 CHAR(20) NOT NULL, 연락번호 CHAR(12)로 정의되고 PRIMARY KEY (고객ID)가 선언되어 있다. <계좌> 테이블은 계좌번호 CHAR(10) NOT NULL, 고객ID CHAR(20) NOT NULL, 잔액 INTEGER DEFAULT 0에 PRIMARY KEY (계좌번호)FOREIGN KEY (고객ID) REFERENCES 고객이 선언되어 있다.

<계좌>의 고객ID는 기본 키가 아니라 외래 키다. 외래 키는 참조하는 테이블의 기본 키에 존재하는 값이기만 하면 되고 유일할 필요가 없으며, 고객과 계좌가 1:M이라는 것은 한 고객이 여러 계좌를 갖는다는 뜻이므로 같은 고객ID가 여러 행에 반복해서 들어가는 것이 오히려 정상이다. 따라서 <계좌>의 고객ID에 동일한 값을 입력할 수 없다는 설명은 옳지 않다.

반대로 <고객>의 고객ID는 기본 키이므로 중복 값을 넣을 수 없고, <계좌>의 계좌번호는 기본 키이면서 NOT NULL이므로 반드시 입력해야 한다. <고객>의 연락번호는 자료 형식만 지정되고 NOT NULL이 붙어 있지 않으므로 값을 생략(Null)하거나 원하는 값으로 수정할 수 있다.

내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.