파일은 컴퓨터 시스템에서 사용되는 여러 가지 보조기억장치들 중 자기 디스크와 자기 테이프 유형의 기억장치가 주로 이용되며 컴퓨터에서 수행되는 프로그램이 액세스 할 수 있도록 데이터를 저장하는 주된 매체로 이용되고 있다.
이러한 저장매체에 데이터가 구성되고 액세스 되기 위한 파일 처리방법은 다음과 같다. 즉 데이터가 구성되는 방법으로는 순차적 구성, 상대적 혹은 직접적 구성, 인덱스 구성 이 있으며 구성된 데이터에 액세스 하는 방법으로는 순차 액세스와 임의 액세스가 있다.
구성과 액세스 방법의 적당한 선택은 응용 분야에서 데이터를 가장 효율적으로 처리할 수 있게 한다. 데이터가 보조 기억장치에 저장될 때는 논리적으로 구성되어야 한다.
보조기억장치에 데이터를 저장하는 데는 세 가지 주요한 파일 구조가 있다. 이와 같은 파일 구조에 대해 설명하면 이렇다.
1. 순차적 파일 구조
순차적으로 구성된 레코드들은 주어진 순서에 따라 차례로 저장된다. 저장되는 순서는 보통 레코드에 있는 키라고 하는 제어 필드에 기준을 둔다. 또한 순차적으로 구성된 레코드들은 처리를 위해 순차적으로 검색된다.
자기 테이프는 반드시 순차적 구조를 사용해야 하며 자기 디스크는 또한 순차적으로 사용할 수 있다. 이 구조는 주로 입력 레코드를 한꺼번에 모아 보조기억장치의 파일에 저장된 레코드와 같은 순서로 분류하는 일괄처리 시스템에서 사용된다. 순차적 파일은 순차적 액세스가 필요하기 때문에 신속한 레코드의 액세스가 요구되는 거래 지향 처리에서는 잘 사용하지 않고 있다.
2. 상대적 혹은 직접적 파일 구조
직접적 파일이라고도 불리는 상대적 파일은 파일 내의 상대적 위치에 레코드들을 저장하고 검색한다. 대부분의 경우 레코드가 저장될 장소를 레코드에 있는 키의 값을 기준으로 결정한다. 예를 들어 데이터가 저장되는 10개의 장소가 있는 파일을 만들 경우, 레코드에 있는 키가 한 자리 숫자 값 (0~9)라면 키값은 레코드가 있는 파일 내의 위치를 규정한다.
즉 키값이 3인 레코드는 상대 위치 3에 놓이고 키값이 6인 레코드는 상대 위치 6에 있게 된다. 그러나 상대적 파일의 사용은 그렇게 간단하진 않다. 그것은 데이터의 키값과 상대 주소인 디스크 내의 기억 장소의 주소를 효과적으로 연관시켜야 하기 때문이다.
레코드가 위치할 파일 내의 상대적인 장소를 계산하기 위해 일종의 계산식이 사용되어야 한다. 사용될 수 있는 한 가지 방법은 나누기/나머지 방법이다. 이 방법을 사용하려면 먼저 파일에 저장될 레코드 수에 가까운 소수를 선택한다. 소수는 1과 그 자신 외에는 나누어지지 않는 수이다.
예를 들면 97은 100을 넘지 않고 100에 가장 가까운 소수이다. 레코드 키를 선택된 소수로 나눌 때 나머지 느 레코드가 저장될 파일 내의 상대 위치이다. 레코드 키값이 3428이라면 레코드가 저장될 상대 위치는 33번째이다. 레코드가 상대적 파일 내의 상대 위치에 한 번 저장되고 나면 임의적 방법이든 순차적 방법이든 어느 방법으로나 검색할 수 있다.
순차적 검색은 첫 번째 상대 위치의 레코드를 검색하고 이어 두 번째, 세 번째 상대 위치의 레코드를 연속으로 검색함으로써 가능하다. 그러므로 파일에 있는 모든 레코드는 파일 내에 있는 레코드의 상대 위치에 따라 순차적으로 검색되며 키의 순서에 따라 검색되는 것은 아니라는 점을 알아야 한다. 그러나 상대적 파일의 보다 일반적인 액세스 방법은 임의 액세스이다. 상대적 파일에 저장된 레코드를 임의로 액세스 하기 위해 프로그램은 검색할 레코드의 키를 파악한 후 레코드를 저장할 때 계산한 방 법고 같은 방식으로 계산을 수행하여 액세스 한다.
상대적 파일 구조는 데이터를 가장 빠르게 액세스 할 수는 있지만 디스크 기억공간을 낭비할 가능성이 있다.
3. 인덱스 된 파일 구조
인덱스 된 파일은 레코드를 인덱스에 따라 저장하고 검색한다. 인덱스 된 파일은 레코드 키에 따라 오름차순이나 내림차순으로 정령 되어 있다. 하나의 인덱스는 파일에 있는 데이터 레코드 키와 레코드의 디스크 주소를 포함한다. 이 인덱스는 파일이 생성될 때 항상 디스크에 저장되고 파일의 레코드를 액세스 할 때 반드시 디스크에서부터 인출되어야 한다.
인덱스를 사용하여 인덱스 된 파일 내의 레코드들은 임의로 액세스 할 수 있다. 인덱스는 한 레코드의 키와 상응하는 디스크 번지를 포함한다. 인덱스 된 파일의 레코드를 순차적으로 검색하는 데는 두 가지 방법이 있다. 이 중 하나는 파일의 첫 번째 레코드에서부터 시작하여 전체 레코드를 차례대로 계속 검색하는 방법이고 또 다른 방법은 특정 키가 속한 인덱스의 처음 레코드부터 순차적으로 검색하는 방법이다.
인덱스 된 파일에서도 임의 액세스를 사용할 수 있고 인덱스 된 파일의 레코드를 임의로 액세스 하기 위해서는 검색하고자 하는 레코드가 발견될 때까지 인덱스를 찾는다. 인덱스 파일은 상대적 파일 사이에 절충안을 제공해주고 많은 응용에서 인덱스 된 파일은 임의 검색과 순차적 검색이 가능하여 이상적인 것으로 판명되었다.
'컴퓨터의 발전과 이해' 카테고리의 다른 글
데이터 모델 (0) | 2020.11.16 |
---|---|
데이터베이스 (0) | 2020.11.11 |
정보시스템의 발전 (0) | 2020.11.09 |
객체지향 개발방법론 (0) | 2020.11.06 |
소프트웨어 개발방법론 (0) | 2020.11.05 |