다음 직원 테이블과 부서 테이블로 구성된 데이터베이스에서 ‘기본 인덱스… | [7급 국가직 데이터베이스론] 22년 1회차 기출문제 상세 페이지
1[7급 국가직 데이터베이스론] 22년 1회차
다음 직원 테이블과 부서 테이블로 구성된 데이터베이스에서 ‘기본 인덱스를 사용하여 여러 개의 레코드를 검색하는 방식’으로 구현되는 SELECT문으로 옳은 것은? (단, 직원 테이블의 부서번호 속성은 부서 테이블 기본키의 외래키이다)○ 직원(직원번호, 이름, 봉급, 부서번호)
○ 부서(부서번호, 부서명, 관리자)
1
SELECT * FROM 직원 WHERE 부서번호 = 5;
2
SELECT * FROM 부서 WHERE 부서번호 > 5;
3
SELECT * FROM 직원 WHERE 직원번호 = 100;
4
SELECT * FROM 직원 WHERE 부서번호 = 5 AND 봉급 > 30000;
해설
부서 테이블에서 기본키 부서번호 > 5로 검색하는 문장이 기본 인덱스로 여러 레코드를 찾는 방식이다.
기본 인덱스는 기본키 순으로 정렬된 파일에 대한 인덱스이므로, 인덱스로 부서번호 5의 위치를 찾은 뒤 그 다음 레코드들을 순서대로 읽어 범위 조건을 만족하는 여러 레코드를 가져온다.
- 직원의 부서번호 = 5: 부서번호는 직원 테이블의 기본키가 아닌 외래키라 클러스터링 또는 보조 인덱스를 쓰는 검색이다.
- 직원번호 = 100: 기본 인덱스를 쓰지만 기본키 동등 조건이라 레코드가 하나만 검색된다.
- 부서번호 = 5 AND 봉급 > 30000: 여러 조건을 결합한 접합(conjunctive) 선택으로, 기본키 조건이 없어 기본 인덱스로 처리되지 않는다.
오류나 개정된 내용이 보이면 알려주세요