6단원 데이터베이스의 내부적 운영 연습문제 풀이

r·2021년 2월 17일
0

데이터베이스

목록 보기
1/7
  1. 디스크에 저장되어 있는 데이터를 접근 할때, 접근 시간은 어떻게 구성되는지 설명하라.

일반적으로 디스크 접근 시간은 헤드가 임의의 장소에서부터 원하는 트랙에 있는 레코드를 찾아 전송하는데 걸리는 시간을 총친한다. 여기에는 seek time, rotational delay time, 실제 데이터 전송 시간을 포함한다.
각각의 용어에 대해 설명해보겠다.

seek time: 헤드가 판독이나 기록할 데이터가 있는 트랙까지 이동하는데 걸리는 시간
rotational delay: 그 트랙에서 원하는 레코드(sector or block) 이 헤드 밑에 회전하여 올때까지 기다리는 시간

  1. 저장 데이터베이스의 일반적인 접근 과정을 단계별로 설명하라.
    1. dbms 가 사용자가 요구하는 정보가 어떤 파일의 레코드인가를 결정에서 파일 관리자에게 그 레코드의 검색을 요구한다.
    1. 파일 관리자는 dbms 가 원하는 레코드가 어떤 페이지(블록) 에 저장되어있는지를 결정해서 disk manaager dp에게 그 페이지의 검색 요청을 위임한다. 여기서 page 는 입출력의 단위이다. (한번의 디스크 요청으로 접근되는 데이터가 전송되는 양) 보통 1kb, 2kb, 4kb 이다.
    1. 디스크 관리자는 파일 관리자가 요구하는 page 가 실제로 디스크에 저장된 물리적 위치를 알아 낸다. 경우에 따라서 이 page 가 다른 목적으로 수행된 명령에 의해 buffer 에 저장되어있을 때에는 굳이 디스크 관리자가 디스크 접근을 명령 할 필요가 없다.
    1. 디스크 -> 파일 ->dbms -> 사용자 순을 거꾸로 거(블록 검색 -> 페이지 반환 -> 레코드 반환 -> 결과)
      서 사용자는 원하는 정보를 얻게 된다.
  1. 디스크 관리자의 기능과 파일 관리자의 기능을 설명하고, 이들 간의 관계를 설명하라.

디스크 관리자는 다른 말로 basic i/o service 라고도 한다.
디스크 관리자는 operating system 의 한 구성요소로서, 모든 물리적 자료 입출력 연산에 관여한다.
디스크 관리자는 특정 자료의 물리적 주소를 알고 있어야 한다.

이와는 반대로, 파일 관리자는 특정 자료의 논리적 주소만 알고 있을 뿐, 물리적 주소를 알고 있진 않다.
파일 관리자는 디스크를 일정한 크기의 page 들의 집합인 page set 들의 집합으로 생각한다.
page set 는 고유한 id 를 갖고 있고, page set 를 구성하는 각 page 는 디스크 내에서 유일한 page number 를 가지고 있다.

디스크 관리자는 파일 관리자로부터 페이지 번호를 받으면 페이지 번호는 모든 페이지마다 다 다르기 때문에, 이 번호를
실제 디스크 물리적 주소로 변환하는 (상황에서 따라 buffer 에 저장된 경우도 있음) mapping 작업을 관리하고 수행한다.

상위레벨과 물리적 장비를 분리시키 구조라고 생각하면 된다.

  1. 데이터 밀집이 데이터 접근에 어떻게 영향을 주는지 설명해라.

음 찾으려는 데이터들이 가까이 붙어있다는 의미면 더 빠르겠지?
질문의 의도를 잘 모르겠다.

  1. what is record id, expalin the implementation method of recor id.
    record id 는 저장 레코드가 갖고 있는 유일한 id 를 의미하고,
    이는 파일 뿐만아니라 전체 디스크에서 유일하다.
    왜냐하면 rid 들은 page number + (그 페이지 내에서의 유일한 값)(offset)
    으로 구성되어있기 때문이다.
    레코드가 이루어서 페이지가 되고, 페이지가 이루어져서 페이지 set 이 되고 page set 이 이루어져서 파일 관리자가 관리하는 자료 집합이 된다.

  2. what is disk directory, and how it is applied?

디스크에는 여러 page set 들이 있는데, 각 page set 의 시작 부분은 다 다르고, 각 page set 의 원소 개수도 다를텐데, 어떻게 각 page set 의 시작 원소 주소를 디스크는 알 수 있는가???
시작 원소 주소만 알면, page head 에 있는 다음 페이지 포인터를 통해 자연스럽게 링크드 리스트 탐색하듯이 알 수 있어서 상관없는데 그래서 각 page set 의 시작 원소 주소를 디스크는 어떻게 알 수 있지??

이러한 문제를 해결하기 위해 디스크는 "특별한 페이지"에서 각 page set 의 시작 원소 주소를 저장하고 있다.
이 "특별한 페이지" 를 바로 disk directory 라고 한다.
또 다른 이름으로 page set directory 라고도 한다.
여기에는 현재 디스크에 있는 모든 page set 각각의 리스트와 첫번째 page 에 대한 포인터가 저장되어 있다.

여기서 궁금한게 생김. disk directory 에 왜 굳이 모든 page set 각각의 리스트를 저장해 놓은걸까??

6.7 디스크를 페이지 단위로 나누어 레코드를 저장할 때, 페이지의 구조와 페이지 관리 기법 레코드의 검색에 대해 설명하라.
우선 record 의 고유한 id 인 rid 는
위에서 한번 언급햇듯이
page number + page offset 으로 구성된다.
각 페이지에 있는 record 는 레코드 값이 오름차순으로 정렬되어 있다.
그러므로 특정 파일에 속한 저장레코드들을 순차적으로 접근 할 수 있다.

  1. 키 순차 파일 vs 파일

키 순차 파일에서 레코드 접근은 레코드가 저장되어 있는 물리적 순서에 따른다. 어느 한 레코드를 접근하기 위해선 링크드 리스트처럼 물리적으로 이 레코드 앞에 있는 모든 레코드들을 접근해야 한다.
따라서 이 키 순차 파일은 파일 복사와 같이 레코드들을 순차적으로 일괄 처리 (batch processing) 하는 응용에서 많이 사용한다.

엔트리 순차 파일은 레코드가 시스템에 처음 삽입되는 순서대로 만들어지는 파일을 의미하낟.

  1. isam vs vsam

isam: 인덱스가 실린더, 트랙과 같이 하드웨어의 물리적 특선에 맞게 설계되는 것
vsam: 인덱스는 트리 형태로 하드웨어에 독립적으로 구성됨

profile
프론트엔드 개발자를 꿈꿉니다.

0개의 댓글