모두CBT

수강 정보를 관리하기 위한 [수강] 테이블을 아래와 같이 설계하려고 한… | [법원직 9급 전산·사서 컴퓨터일반] 26년 1회차 기출문제 상세 페이지

1[법원직 9급 전산·사서 컴퓨터일반] 26년 1회차
수강 정보를 관리하기 위한 [수강] 테이블을 아래와 같이 설계하려고 한다. 다음 중 [수강] 테이블의 STUDENT_ID가 [학생] 테이블에 존재하는 학생만을 참조하도록 보장하기 위한 가장 적절한 모델링 방법은?
[학생] 테이블
STUDENT_ID, STUDENT_NAME
[수강] 테이블
ENROLLMENT_ID, STUDENT_ID, COURSE_ID
1
[수강] 테이블에 STUDENT_ID 대신 학생의 이름을 직접 저장하여 중복 관리한다.
2
[수강] 테이블의 STUDENT_ID를 [학생] 테이블과 관계없는 독립적인 후보키(Candidate Key)로 지정하여 운용한다.
3
[수강] 테이블의 STUDENT_ID를 [학생] 테이블을 참조하는 기본키(Primary Key)로 선언하여 두 테이블을 하나의 키로 통합한다.
4
[수강] 테이블의 STUDENT_ID를 [학생] 테이블의 기본키인 STUDENT_ID를 참조하는 외래키(Foreign Key)로 정의한다.
해설

[수강].STUDENT_ID를 [학생]의 기본키를 참조하는 외래키(Foreign Key)로 정의해야 한다.

외래키는 참조되는 테이블에 있는 값만 입력되도록 DBMS가 강제하는 참조 무결성 제약이다.

  • 학생 이름을 직접 저장: 데이터가 중복되고, 존재하는 학생인지 보장하는 제약도 생기지 않는다.
  • 관계없는 독립 후보키로 지정: 후보키는 자기 테이블 안의 유일성만 보장하므로 [학생]의 값을 참조하지 못한다.
  • STUDENT_ID를 기본키로 선언해 통합: 수강 내역에서 STUDENT_ID가 유일해져 한 학생이 한 과목만 수강할 수 있게 된다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[법원직 9급 전산·사서 컴퓨터일반] 26년 1회차 25문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요법원직 9급 전산·사서 컴퓨터일반 기출문제 암기장 전체 보기