다음 수강신청 테이블은 시퀀스로 부여한 인조식별자 신청ID 를 기본키로… | [SQLD] SQL 개발자 기출유형 모의고사 2회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 2회
다음 수강신청 테이블은 시퀀스로 부여한 인조식별자 신청ID 를 기본키로 쓴다. 한 학생은 같은 강좌를 한 번만 신청할 수 있을 때, 이 설계를 보완하는 방법으로 가장 적절한 것은?

수강신청

신청ID학번강좌코드신청일
12026001C102026-03-02
22026002C102026-03-02
32026001C202026-03-03
42026001C102026-03-04
1
학번+강좌코드에 유니크 제약을 둔다
2
신청ID 에 NOT NULL 제약을 추가한다
3
신청일을 기본키로 바꾸어 사용한다
4
학번 단독으로 유니크 제약을 건다
해설

인조식별자만 기본키로 두면 같은 학생의 같은 강좌 신청이 신청ID 만 달리해 중복 입력되며, 실제로 2026001·C10 신청이 두 행 저장되었다.

본질식별자인 (학번, 강좌코드)에 유니크 제약을 걸면 인조식별자를 유지하면서도 업무상 중복을 막을 수 있다.

  • 신청일은 여러 신청이 같은 날 생기므로 유일성이 없다.
  • 신청ID 는 기본키라 이미 NOT NULL 이며 중복을 막지 못한다.
  • 학번 단독 유니크는 한 학생의 여러 강좌 신청까지 막는다.

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

이어서 풀어보기

[SQLD] SQL 개발자 기출유형 모의고사 2회 50문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요SQLD SQL 개발자 실전 모의고사 암기장 전체 보기