수강 정보를 관리하기 위한 [수강] 테이블을 아래와 같이 설계하려고 한… | [법원직 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문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요비슷한 기출
- student테이블에독일어과학생50명,중국어과학생30명,영어영문학과학생50명의정보가저장되어있을때,다음두sql문의실행결과튜플수는?(단,dept컬럼은학과명)20년-1, 2회차-정보처리기사-필기
- dba가사용자park에게테이블[student]의데이터를갱신할수있는시스템권한을부여하고자하는sql문을작성하고자한다.다음에주어진sql문의빈칸을알맞게채운것은?20년-4회차-정보처리기사-필기
- c언어에서사용할수없는변수명은? {"answer":2,"content":[{"content":"student2019","url":""},{"content20년-1, 2회차-정보처리기사-필기