인덱스된 순차 화일 (ISF, Indexed Sequential File) - 1

■ 인덱스된 순차 화일은 순차데이터화일과 인덱스로 구성된다.

Index

 1/2/3/4/5/6/7/8/9/10...

 data1/data2/data3...

Sequential data file


이런 형태라 할 수 있겠다.

■ 즉, 인덱스는 순차데이터를 가리키는 포인터라 보면 된다. 그리하여 데이터의 직접 접근이 가능하다.


■ 위의 그림에서 인덱스블록에는 <최대키 값과 포인터>를 포함한다.

■ 포인터는 해당 키 값을 최대 키 값으로 갖는 

다음 레벨의 인덱스 블록 or 데이타 블록에 대한 주소이다.

■ 회색공간은 <자유공간>으로 레코드의 추가 삽입을 위한 예비 공간이다, 화일 생성 시 각 블록에 분산 배치된다.

■ 결국에 마지막 블록들은 모두 순차화일이어한다. 즉, 블록간에도 포인터로 연결해주어 다음 블록을 참조할 수가 있다.

■ 삽입과 삭제는 오버플로와 언더플로만 주의하면 크게 어려울 것 없을 것이다.

오버플로가 났을 때에는 발생한 블록의 중간 값을 이전 블록(부모노드)로 올려보내고 중간 값을 기준으로

재분배하면 될 것이다. 언더플로에 대해서는 잘 모르겠다. 추측을 해보면 포인터가 가리키는 블록에 데이터가 없다면 그 키 값은

다른 블록으로 다시 재분배가 될 것이다.

'computer' 카테고리의 다른 글

인덱스된 순차 화일 (ISF, Indexed Sequential File) - 2  (0) 2012.05.26
B+ Tree  (0) 2012.05.26
인덱스된 순차 화일 (ISF, Indexed Sequential File) - 1  (0) 2012.05.26
c++ get() 함수, 개행문자 읽기  (0) 2012.05.07
신호.  (0) 2012.04.30
Modeling (모델링).  (0) 2012.04.30