brunch

You can make anything
by writing

C.S.Lewis

by 라트 Apr 27. 2024

힙(heap) vs 순차(sequential)

주간 라트 2417

먼저 할 것인가

나중에 할 것인가

이것이 문제로다


평생 살면서

하는 고민이다.




실제 데이터베이스 내의 파일은 수천, 수만여 개의 블럭으로 구성되기 때문에 더욱 복잡한 구조로 레코드를 관리한다. 특히 특정 레코드에 대한 접근을 위해 어떤 레코드가 어느 블럭에 저장되어야 하는지 관리할 필요가 있다. 이를 파일 구조(file erganization)라고 하며, 파일 구조화 방법에는 다음 세 가지 유형이 있다.

1. 힙(heap) 파일 구조: 모든 레코드는 파일 내 임의 블럭에 저장될 수 있는 방식으로, 각 레코드들의 저장 순서를 고려하지 않는다.

2. 순차(sequential) 파일 구조: 레코드들이 특정 컬럼에 대한 값을 기준으로 정렬되어 저장되는 방식으로, 일반적으로 정렬키로 탐색키를 사용한다.

3. 해시(hash) 파일 구조: 해시 함수를 이용하는 방식으로, 해시 함수는 레코드 탐색키를 입력받아 레코드가 저장될 블럭 주소를 반환하고 해당 주소에 레코드를 저장한다.

<정재화, 2020, 데이터베이스 시스템, 한국방송통신대학교출판문화원> 296쪽




힙구조는 일단 데이터가 들어오면 저장 순서를 고려하지 않고 현재 비어있는 공간이면 아무 곳에나 넣어 두었다가 나중에 필요할 때에 찾아서 사용하는 방식이고, 순차구조는 데이터가 들어오면 순서에 맞춰서 정렬하여 저장하였다가 필요할 때에 찾아서 사용하는 방식이다. 힙구조는 일단 데이터를 저장하는 것은 간단하지만 나중에 필요할 때 데이터를 찾기 위해서는 많은 노력이 필요하다. 반면에 순차구조는 처음에 데이터를 저장하기 위해서는 제 자리를 찾아 정렬하여 저장해야 하므로 힘이 들지만 나중에 필요할 때는 손쉽게 찾아 사용할 수 있다. 집안정리를 비롯한 주변의 많은 일이 비슷하다. 귀찮다고 아무렇게나 던져 놓으면 나중에 그 이상의 수고를 해야 만 한다. 



커버 이미지 출처: pixabay.com

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari