Database - 물리적 설계 실습

Bomin Seo·2022년 7월 25일
0

물리적 설계

1. 할인점 데이터베이스에 아래와 같은 릴레이션이 저장되어 있다고 가정하자. 기본 키는 ITEM#이다. 단일 단계 인덱스를 생성하려 한다.

(1) 이 릴레이션에 대해서 인덱스 엔트리가 포함된 기본 인덱스를 그려라. 블록킹 인수가 3이라고 가정한다.

  • index file bloking 인수 = 4
  • 블록 포인터 사용
    (2) 밀집 인덱스에 대해서 (1)을 반복하라

**2. 블록 크기가 1024바이트인 디스크 장치를 고려해보자. 블록 포인터와 레코드 포인터는 각각 4, 8 바이트이다. 파일에는 30,000개의 고정 길이 사원 레코드가 들어 있다. 사원 레코드에는 이름(15바이트), 주민등록번호(13바이트), 부서번호(8바이트), 주소(37바이트), 전화번호(11바이트), 성별(1바이트), 직급(10바이트), 급여(4바이트) 필드가 있다.

(1) 레코드 길이가 몇 바이트인가?

  • 15 + 13 + 8 + 37 + 11 + 1 + 10 + 4 = 99bytes

(2) 블로킹 인수가 얼마인가?

  • Floor(1024/99) = 10

(3) 파일이 필요로 하는 최소 블록 수는 얼마인가?

  • 채우기 인수를 고려하지 않은 30000/10 = 3000 / 최소 3000개

(4) 파일이 주민등록번호 순으로 정렬되어 있다고 가정한다. 주민등록번호에 대해 희소 기본 인덱스를 생성하려 한다.

A. 인덱스 블로킹 인수가 얼마인가?

  • 인덱스 엔트리의 길이는 13 + 4 (희소 기본인덱스이므로 블록 포인터 사용) = 17 bytes
  • floor(1024/17) = 60

B. 1단계 인덱스 엔트리 수와 1단계 인덱스 블록 수를 계산하라

  • 1단계 인덱스 엔트리수 : 3000개
  • 1단계 엔트리 블록수 = 3000/60 = 50개

C. 다단계 인덱스를 구축할 때, 단계 별 블록 수는 얼마인가?

  • 1단계 : 50개
  • 2단계 : 1개

D. 인덱스를 사용하여 한 레코드를 검색할 때 몇 번의 블록 접근이 필요한가?

  • 마스터 인덱스가 주기억 장치에 상주하기 때문에 블록 접근 회수를 고려하지 않는다면 1번
  • 마스터 인덱스 접근 회수를 고려하면 2번의 블록 접근이 필요하다.
profile
KHU, SWCON

0개의 댓글