본문/내용
[1] 직접화일의 개념
앞에서 다룬 순차화일에서는 저장된 순서에 따라 레코드를 엑세스하
여야 하므로 원하는 레코드를 검색하는데 많은 시간이 소비되지만, 직
접화일에서는 원하는 레코드를 위치를 지정하여 바로 엑세스할 수 있
어 레코드를 빠르게 검색할 수 있다. 이는 프로그래밍 언어에서 연결
리스트(linked list)를 이용하는 것과 배열을 이용하는 것의 차이점과
유사하다.
직접화일에서 원하는 레코드를 엑세스하기 위해서는 그 레코드의 상
대주소(즉, 그 레코드가 화일상의 몇 번째 레코드인가)를 알아야 한
다. 그러나 엑세스를 원하는 레코드의 지정은 그 레코드의 키를 통해
이루어진다. 키는 때에 따라서는 숫자가 아닐 수 있으며, 숫자라 하더
라도 레코드의 상대주소로 사용되기 어려운 경우가 대부분이다. 따라
서 레코드의 키로부터 화일내의 상대주소를 계산할 수 있는 관계, 즉
사상함수가 정의되어야 한다. 이러한 문제와 관련지어 다음 두가지의
문제가 제기된다.