데이터베이스 기초

수강 표(학생번호, 과목번호, 성적)는 어느 학생이 어느 과목을 수강하여 어떤 성적을 받았는지를 기록한다. 한 학생은 여러 과목을 수강하고, 한 과목은 여러 학생이 수강한다. 같은 학생이 같은 과목을 두 번 등록하는 일은 없을 때, 이 표의 기본 키로 적절한 것은?

  1. A학생번호
  2. B과목번호
  3. C학생번호와 과목번호의 조합
정답과 해설 보기

정답: C. 학생번호와 과목번호의 조합

한 학생이 여러 과목을 수강하므로 학생번호만으로는 같은 값의 행이 여러 개 생겨 행을 유일하게 식별할 수 없습니다. 마찬가지로 한 과목을 여러 학생이 수강하므로 과목번호만으로도 유일하지 않습니다. 학생번호와 과목번호를 조합하면, 같은 학생이 같은 과목을 두 번 등록하지 않는다는 조건에 따라 한 행이 유일하게 정해집니다. 이처럼 여러 열을 조합한 기본 키를 복합 키(연결 키)라고 하며, SQL에서는 PRIMARY KEY (학생번호, 과목번호)처럼 열을 나열하여 지정합니다. 수강 표의 학생번호와 과목번호는 각각 학생 표와 과목 표의 기본 키를 참조하는 외래 키도 되며, 이 표는 학생과 과목의 다대다 관계를 나타내고 있습니다.

이 분야 연습하기 분야로 돌아가기

데이터베이스 기초의 다른 문제

  1. 고객 표(고객ID, 이름)의 기본 키는 고객ID이며, 주문 표(주문ID, 고객ID)의 고객ID는 고객 표의 고객ID를 참조하는 외래 키로 정의되어 있다. 고객 표에는 고객ID가 'C1'과 'C2'인 행만 있다. 이 상태에서 INSERT INTO 주문 VALUES ('O9', 'C5')를 실행했을 때의 결과로 올바른 것은?
  2. SQL 문은 데이터 정의어(DDL), 데이터 조작어(DML), 데이터 제어어(DCL)로 나뉜다. DDL로 분류되는 것은?
  3. 상품 표에 (상품명, 가격)이 (펜, 120), (노트, 250), (지우개, 80), (파일, 300), (자, 150)인 5개 행이 있다. SELECT 상품명 FROM 상품 WHERE 가격 >= 150 ORDER BY 가격 DESC의 결과로 반환되는 행을 순서대로 나열한 것은?
  4. 사원 표의 부서 열에 위의 행부터 차례로 영업, 개발, 영업, 총무, 개발, 영업의 값이 들어 있다(전체 6행). SELECT DISTINCT 부서 FROM 사원의 결과는 몇 행이 되는가?
  5. SQL에서 DELETE FROM 사원을 WHERE 절 없이 실행했을 때의 결과로 올바른 것은?