본문 바로가기
데이터 [Data]/데이터베이스론

데이터베이스론 보고서 10 : VSAM 화일 구조에서 논의되는 인덱스 구조

by 냉철하마 2021. 7. 17.

 

  우선 VSAM(Virtual Storage Access Method), 동적 인덱스 방법을 이용한 인덱스된 순차 파일의 구성 방식으로서 IBM이 지원하는 파일이다. VSAM 파일은 기본적으로 4개의 구역으로 구성된다. 데이터 레코드를 저장하는 제어 구간(control interval), 이러한 제어 구간 몇 개를 하나의 단위로 취업하는 제어 구역(control area), 제어 구역에 대한 인덱스를 저장하는 순차 세트(sequence set), 그리고 순차 세트의 상위 인덱스인 인덱스 세트(index set)로 이루어져 있다.

  여기서 제어 구간은 하나 이상의 레코드를 저장하는 저장 공간으로서 데이터 블록과 유사한 역할을 수행한다. 이 제어 구간에는 데이터 레코드와 함께 추가적인 삽입을 위해 자유 공간이 있고, 각 저장된 레코드에 대한 레코드 정의 필드(RDF ; Record Definition Field)와 제어 구간 정의 필드(CIDF ; Control Interval Definition Field)가 포함되어 있다. 각 레코드를 위한 RDF에는 화일 시작점을 기준으로 한 상대 바이트 주소(RBA ; Relative Byte Address)와 그 레코드의 바이트 수를 가지고 있다. 그리고 CIDF에는 제어 구간에 있는 자유 공간의 바이트수와 그 자유 공간의 위치에 대한 정보를 보관하고 있다.

레코드 1 레코드 2 레코드 3 레코드 4
레코드 5 레코드 6 자유 공간
자유 공간 RDF 6 RDF 5
RDF 4 RDF 3 RDF 2 RDF 1 CIDF

  하나의 제어 구간 내에서 레코드들은 그 키값에 따라 물리적 순차로 저장된다. 레코드들은 제어 구간의 앞쪽에서부터 저장되고 이 레코드들에 대한 RDF는 제어 구간의 뒤에서부터 저장되기 때문에 자유 공간은 제어 구간의 가운데에 위치하게 된다. 위 표에서 볼 수 있듯이 자유 공간에 대한 정보를 가지고 있는 CIDF는 제어 구간의 제일 끝에 위치한다. 이 제어 구간에 대한 삽입이나 삭제는 기존의 레코드들을 이동시켜서라도 저장된 레코드들 사이에 빈 공간이 없이 연속되게 유지한다.

  하나의 제어 구역은 일정한 수의 제어 구간의 그룹을 말하는데, 이는 일정 수의 트랙으로 구성된다. 한 제어 구역에 속하는 각 제어 구간의 최대 키값들은 순차 세트, 즉 최하위 단계의 인덱스 엔트리로 저장된다. 그러나 한 제어 구역에 속한 제어 구간들이 각 제어 구간에 있는 레코드의 최대 키값순으로 물리적 연속을 요구하는 것은 아니다. 이는 한 제어 구역 내에 있는 제어 구간들이 물리적으로 순서를 유지하지 않는다고 하더라도, 그 해당 제어 구역에 대한 순차 세트가 모든 제어 구간의 최대 키 값들을 그 주소와 함께 순차적으로 유지해 주기 때문이다. 이 순차 세트들은 파일의 모든 데이터 레코드들을 순차적으로 접근할 수 있게끔 체인으로 연결되어 있다.

  인덱스 세트는 키-포인터 쌍을 엔트리로 저장하는 인덱스 블록으로 구성된 트리 구조이다. -포인터 쌍은 트리에서 최하위 레벨의 인덱스 블록에 속하는 최대 키값과 그 인덱스 블록에 속하는 최대 키값과 그 인덱스 블록에 대한 주소가 된다. 이 인덱스 세트의 최하위 단계는 하나의 순차 세트를 지시한다. 또한 인덱스 블록 내에서 키-포인터 쌍들은 킷값의 크기 순서대로 저장되기 때문에 파일 전체에 대한 접근을 용이하도록 만들어준다.

 

댓글