본문 바로가기
학교/데이터베이스

MS SQL Server 기반 데이터베이스 배움터 6장 (물리적 데이터베이스 설계) 연습문제 풀이

by 코드 이야기 2021. 5. 20.
728x90

https://book.naver.com/bookdb/book_detail.nhn?bid=7000196 

 

데이터베이스 배움터

『데이터베이스 배움터』는 데이터베이스의 기본적인 개념과 실용적인 이론을 중심으로 한 학기 동안 가르치기에 적절한 주제들을 정선하여 저술하였고, 개념을 알기 쉽게 보여주는 그림들을

book.naver.com

 

 

 

 

1. 인덱스를 사용하는 장점과 단점은 무엇인가?

장점: 검색 속도의 향상, 소수의 레코드들을 수정하거나 삭제하는 연산의 속도를 향상, 릴레이션이 매우 크고 질의에서 릴레이션 튜플 중 일부를 검색하고 WHERE절이 잘 표현되었을 때에 특히 성능에 도움이 된다.

단점: 인덱스 저장을 위한 추가 공간이 필요하다. 삽입, 삭제, 수정 연산 속도가 느리다.

 

3. 할인점 데이터베이스에 아래와 같은 릴레이션이 저장되어 있다고 가정하자. 기본키는 밑줄을 그어 표시했다. 단일 단계 인덱스를 생성하려 한다.

(1) 기본 인덱스의 구조를 설명하고, 이 릴레이션에 대해서 인덱스 엔트리가 포함된 ITEM이 기본 키인 기본 인덱스를 그려라.

기본 인덱스 구조: 탐색 키가 데이터 화일의 기본 키이다. 기본 키의 값에 따라 정렬된 데이터 화일에 대해 정의된다. 흔히 최소 인덱스로 유지할 수 있다. 각 릴레이션마다 최대 한 개의 기본 인덱스를 가질 수 있다.

(2) 밀집 인덱스에 대해서 (1)을 반복하라.

(3) 보조 인덱스에 대해서 (1)을 반복하라. (ITEMNAME이 기본 키)

 

 

6. 릴레이션 EMPLOYEE의 복합 애트리뷰트(AGE, SALARY, NAME)에 인덱스가 정의되어 있다. 다음 SELECT문 중에서 이 인덱스를 이용하여 효율적으로 수행될 수 있는 것을 모두 골라라.

(1) SELECT  AGE, SALARY, NAME

      FROM    EMPLOYEE

      WHERE AGE=30 AND SALARY=3000000;

(2) SELECT  SALARY, NAME

      FROM    EMPLOYEE

      WHERE AGE=30 AND SALARY=3000000 AND NAME="Kim";

(1) SELECT  AGE, SALARY

      FROM    EMPLOYEE

      WHERE  SALARY=3000000 AND NAME="Kim";

 

1, 2번은 효율적인 수행이 가능하다.
3번은 AGE에 대해 언급된 것이 없기 떄문에 효율적으로 수행될 수 없다.

 

 

7. 기본 인덱스와 보조 인덱스 유사점과 차이점을 설명하라.

유사점: 레코드를 빠르게 찾는다는 동일한 목적을 달성한다.
차이점: 희소 인덱스는 밀집 인덱스에 비해 모든 갱신과 대부분의 질의에 대해 더 효율적이다. 그러나 질의에서 인덱스가 정의된 애트리뷰트만 검색(예를 들어, COUNT질의)하는 경우에는 데이터 화일을 접근할 필요 없이 인덱스만 접근해서 질의를 수행할 수 있으므로 밀집 인덱스가 희소 인덱스보다 유리하다. 한 화일은 한 개의 희소 인덱스와 다수의 밀집 인덱스를 가질 수 있음.
기본 인덱스: 탐색 키 값이 정렬됨 -> 순차 접근이 효율적
보조 인덱스: 탐색 키 값에 따라 정렬되지 않은 데이터 화일에 저장 -> 순차 접근이 비효율적

 

 

 

 

8. 화일 내의 클러스터링과 화일 간의 클러스터링 비교하여 설명하라.

화일 내의 클러스터링: 한 화일 내에서 함께 검색될 가능성이 높은 레코드들을 디스크 상에서 물리적으로 가까운 곳에 모아두는 것.

화일 간의 클러스터리이 논리적으로 연관되어 함께 검색될 가능성이 높은 두 개 이상의 화일에 속한 레코드들을 디스크 상에서 물리적으로 가까운 곳에 저장하는 것.

 

 

 

 

 

 

 

 

 

728x90

댓글