데이터베이스 기초

사원 표(사원번호, 이메일주소, 이름, 부서)에서 사원번호와 이메일주소는 둘 다 사원마다 다르며 NULL이 되지 않는다. 이름과 부서는 다른 사원과 같아질 수 있다. 이 표의 후보 키를 모두 든 것은?

  1. A사원번호만
  2. B사원번호, 그리고 이메일주소(각각 단독으로 후보 키)
  3. C사원번호, 그리고 사원번호와 이름의 조합
정답과 해설 보기

정답: B. 사원번호, 그리고 이메일주소(각각 단독으로 후보 키)

후보 키는 행을 유일하게 식별할 수 있고, 게다가 거기서 열을 하나라도 빼면 유일하게 식별할 수 없게 되는 최소한의 열 조합입니다. 이 표에서는 사원번호도 이메일주소도 그것만으로 사원을 유일하게 식별할 수 있으므로 둘 다 후보 키입니다. 후보 키 중에서 하나를 골라 기본 키로 하고(여기서는 사원번호를 고르는 것이 자연스럽습니다), 선택되지 않은 이메일주소는 대체 키라고 합니다. 대체 키에 UNIQUE 제약과 NOT NULL 제약을 붙여 두면 중복을 막을 수 있습니다. 사원번호와 이름의 조합도 행을 유일하게 식별할 수 있지만, 이름을 빼도 유일성이 유지되므로 최소가 아니어서 후보 키가 아닙니다. 이처럼 유일하게 식별할 수 있지만 최소라고는 할 수 없는 열 조합을 슈퍼 키라고 합니다.

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

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

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